tizen 2.0 init 2.0alpha master 2.0_alpha submit/master/20120920.151056
authorSangchul Lee <sc11.lee@samsung.com>
Tue, 21 Aug 2012 13:48:17 +0000 (22:48 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Tue, 21 Aug 2012 13:48:17 +0000 (22:48 +0900)
749 files changed:
ChangeLog
Makefile.am
Makefile.in
NEWS
RELEASE
aclocal.m4
autoregen.sh [deleted file]
common/Makefile.in
common/check-exports
common/gst.supp
common/gstdoc-scangobj
common/gtk-doc-plugins.mak
common/gtk-doc.mak
common/m4/Makefile.in
common/m4/gst-args.m4
common/m4/gst-feature.m4
common/m4/gst-glib2.m4
common/m4/introspection.m4
common/m4/orc.m4
common/scangobj-merge.py
compile
config.guess
config.h.in
config.sub
configure
configure.ac
debian/changelog
debian/control
debian/gstreamer0.10-plugins-base.install
debian/rules
depcomp
docs/Makefile.in
docs/design/Makefile.in
docs/design/design-audiosinks.txt
docs/design/design-decodebin.txt
docs/design/design-encoding.txt
docs/design/design-orc-integration.txt
docs/design/draft-keyframe-force.txt
docs/design/draft-va.txt
docs/libs/Makefile.am
docs/libs/Makefile.in
docs/libs/gst-plugins-base-libs-docs.sgml
docs/libs/gst-plugins-base-libs-overrides.txt [new file with mode: 0644]
docs/libs/gst-plugins-base-libs-sections.txt
docs/libs/gst-plugins-base-libs.types
docs/libs/html/annotation-glossary.html
docs/libs/html/api-index-deprecated.html
docs/libs/html/api-index-full.html
docs/libs/html/compiling.html
docs/libs/html/gst-plugins-base-libs-appsink.html
docs/libs/html/gst-plugins-base-libs-appsrc.html
docs/libs/html/gst-plugins-base-libs-encoding-profile.html
docs/libs/html/gst-plugins-base-libs-gstaudio.html
docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
docs/libs/html/gst-plugins-base-libs-gstbaseaudiosink.html
docs/libs/html/gst-plugins-base-libs-gstbaseaudiosrc.html
docs/libs/html/gst-plugins-base-libs-gstbasertpaudiopayload.html
docs/libs/html/gst-plugins-base-libs-gstbasertpdepayload.html
docs/libs/html/gst-plugins-base-libs-gstbasertppayload.html
docs/libs/html/gst-plugins-base-libs-gstcddabasesrc.html
docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
docs/libs/html/gst-plugins-base-libs-gstfft.html
docs/libs/html/gst-plugins-base-libs-gstfftf32.html
docs/libs/html/gst-plugins-base-libs-gstfftf64.html
docs/libs/html/gst-plugins-base-libs-gstffts16.html
docs/libs/html/gst-plugins-base-libs-gstffts32.html
docs/libs/html/gst-plugins-base-libs-gstfloatcast.html
docs/libs/html/gst-plugins-base-libs-gstmixer.html
docs/libs/html/gst-plugins-base-libs-gstmixeroptions.html
docs/libs/html/gst-plugins-base-libs-gstmixertrack.html
docs/libs/html/gst-plugins-base-libs-gstmultichannel.html
docs/libs/html/gst-plugins-base-libs-gstnavigation.html
docs/libs/html/gst-plugins-base-libs-gstnetbuffer.html
docs/libs/html/gst-plugins-base-libs-gstpbutils.html
docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gstpropertyprobe.html
docs/libs/html/gst-plugins-base-libs-gstriff.html
docs/libs/html/gst-plugins-base-libs-gstringbuffer.html
docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
docs/libs/html/gst-plugins-base-libs-gstrtspbase64.html
docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
docs/libs/html/gst-plugins-base-libs-gsttag.html
docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
docs/libs/html/gst-plugins-base-libs-gsttagexif.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gsttagid3.html
docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gsttagmux.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gsttuner.html
docs/libs/html/gst-plugins-base-libs-gsttunerchannel.html
docs/libs/html/gst-plugins-base-libs-gsttunernorm.html
docs/libs/html/gst-plugins-base-libs-gstvideo.html
docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html [new file with mode: 0644]
docs/libs/html/gst-plugins-base-libs-gstvideosink.html
docs/libs/html/gst-plugins-base-libs-gstxoverlay.html
docs/libs/html/gst-plugins-base-libs.devhelp [deleted file]
docs/libs/html/gst-plugins-base-libs.devhelp2
docs/libs/html/gstreamer-app.html
docs/libs/html/gstreamer-audio.html
docs/libs/html/gstreamer-base-utils.html
docs/libs/html/gstreamer-cdda.html
docs/libs/html/gstreamer-ffft.html
docs/libs/html/gstreamer-floatcast.html
docs/libs/html/gstreamer-interfaces.html
docs/libs/html/gstreamer-libs-hierarchy.html
docs/libs/html/gstreamer-netbuffer.html
docs/libs/html/gstreamer-plugins-base.html
docs/libs/html/gstreamer-riff.html
docs/libs/html/gstreamer-rtp.html
docs/libs/html/gstreamer-rtsp.html
docs/libs/html/gstreamer-sdp.html
docs/libs/html/gstreamer-tag.html
docs/libs/html/gstreamer-video.html
docs/libs/html/index.html
docs/libs/html/index.sgml
docs/plugins/Makefile.am
docs/plugins/Makefile.in
docs/plugins/gst-plugins-base-plugins-overrides.txt [new file with mode: 0644]
docs/plugins/gst-plugins-base-plugins.args
docs/plugins/gst-plugins-base-plugins.hierarchy [new file with mode: 0644]
docs/plugins/gst-plugins-base-plugins.interfaces
docs/plugins/gst-plugins-base-plugins.prerequisites
docs/plugins/html/GstPlayBaseBin.html
docs/plugins/html/ch01.html
docs/plugins/html/ch02.html
docs/plugins/html/ch03.html
docs/plugins/html/gst-plugins-base-plugins-adder.html
docs/plugins/html/gst-plugins-base-plugins-alsamixer.html
docs/plugins/html/gst-plugins-base-plugins-alsasink.html
docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
docs/plugins/html/gst-plugins-base-plugins-appsink.html
docs/plugins/html/gst-plugins-base-plugins-appsrc.html
docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
docs/plugins/html/gst-plugins-base-plugins-audiorate.html
docs/plugins/html/gst-plugins-base-plugins-audioresample.html
docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
docs/plugins/html/gst-plugins-base-plugins-decodebin.html
docs/plugins/html/gst-plugins-base-plugins-decodebin2.html
docs/plugins/html/gst-plugins-base-plugins-encodebin.html
docs/plugins/html/gst-plugins-base-plugins-ffmpegcolorspace.html
docs/plugins/html/gst-plugins-base-plugins-gdpdepay.html
docs/plugins/html/gst-plugins-base-plugins-gdppay.html
docs/plugins/html/gst-plugins-base-plugins-giosink.html
docs/plugins/html/gst-plugins-base-plugins-giosrc.html
docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
docs/plugins/html/gst-plugins-base-plugins-gnomevfssink.html
docs/plugins/html/gst-plugins-base-plugins-gnomevfssrc.html
docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
docs/plugins/html/gst-plugins-base-plugins-oggmux.html
docs/plugins/html/gst-plugins-base-plugins-playbin.html
docs/plugins/html/gst-plugins-base-plugins-playbin2.html
docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
docs/plugins/html/gst-plugins-base-plugins-plugin-decodebin.html
docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
docs/plugins/html/gst-plugins-base-plugins-plugin-ffmpegcolorspace.html
docs/plugins/html/gst-plugins-base-plugins-plugin-gdp.html
docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
docs/plugins/html/gst-plugins-base-plugins-plugin-gnomevfs.html
docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
docs/plugins/html/gst-plugins-base-plugins-plugin-uridecodebin.html
docs/plugins/html/gst-plugins-base-plugins-plugin-video4linux.html
docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
docs/plugins/html/gst-plugins-base-plugins-textrender.html
docs/plugins/html/gst-plugins-base-plugins-theoradec.html
docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
docs/plugins/html/gst-plugins-base-plugins-videorate.html
docs/plugins/html/gst-plugins-base-plugins-videoscale.html
docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
docs/plugins/html/gst-plugins-base-plugins-volume.html
docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
docs/plugins/html/gst-plugins-base-plugins.devhelp [deleted file]
docs/plugins/html/gst-plugins-base-plugins.devhelp2
docs/plugins/html/index.html
docs/plugins/html/index.sgml
docs/plugins/inspect/plugin-adder.xml
docs/plugins/inspect/plugin-alsa.xml
docs/plugins/inspect/plugin-app.xml
docs/plugins/inspect/plugin-audioconvert.xml
docs/plugins/inspect/plugin-audiorate.xml
docs/plugins/inspect/plugin-audioresample.xml
docs/plugins/inspect/plugin-audiotestsrc.xml
docs/plugins/inspect/plugin-cdparanoia.xml
docs/plugins/inspect/plugin-decodebin.xml
docs/plugins/inspect/plugin-encoding.xml
docs/plugins/inspect/plugin-ffmpegcolorspace.xml
docs/plugins/inspect/plugin-gdp.xml
docs/plugins/inspect/plugin-gio.xml
docs/plugins/inspect/plugin-gnomevfs.xml
docs/plugins/inspect/plugin-libvisual.xml
docs/plugins/inspect/plugin-ogg.xml
docs/plugins/inspect/plugin-pango.xml
docs/plugins/inspect/plugin-playback.xml
docs/plugins/inspect/plugin-subparse.xml
docs/plugins/inspect/plugin-tcp.xml
docs/plugins/inspect/plugin-theora.xml
docs/plugins/inspect/plugin-typefindfunctions.xml
docs/plugins/inspect/plugin-uridecodebin.xml
docs/plugins/inspect/plugin-videorate.xml
docs/plugins/inspect/plugin-videoscale.xml
docs/plugins/inspect/plugin-videotestsrc.xml
docs/plugins/inspect/plugin-volume.xml
docs/plugins/inspect/plugin-vorbis.xml
docs/plugins/inspect/plugin-ximagesink.xml
docs/plugins/inspect/plugin-xvimagesink.xml
docs/plugins/scanobj-build.stamp [new file with mode: 0644]
ext/Makefile.in
ext/alsa/Makefile.in
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/alsa/gstalsamixer.h
ext/alsa/gstalsasink.c
ext/alsa/gstalsasrc.c
ext/cdparanoia/Makefile.in
ext/cdparanoia/gstcdparanoiasrc.c
ext/cdparanoia/gstcdparanoiasrc.h
ext/gio/Makefile.in
ext/gio/gstgiobasesink.c
ext/gio/gstgiobasesrc.c
ext/gnomevfs/Makefile.in
ext/gnomevfs/gstgnomevfssink.c
ext/gnomevfs/gstgnomevfssrc.c
ext/gnomevfs/gstgnomevfssrc.h
ext/libvisual/Makefile.in
ext/libvisual/visual.c
ext/ogg/Makefile.in
ext/ogg/README
ext/ogg/gstoggaviparse.c
ext/ogg/gstoggdemux.c
ext/ogg/gstoggdemux.h
ext/ogg/gstoggmux.c
ext/ogg/gstoggmux.h
ext/ogg/gstoggparse.c
ext/ogg/gstoggstream.c
ext/ogg/gstoggstream.h
ext/ogg/gstogmparse.c
ext/pango/Makefile.am
ext/pango/Makefile.in
ext/pango/gstclockoverlay.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
ext/pango/gsttextrender.c [changed mode: 0755->0644]
ext/pango/gsttextrender.h [changed mode: 0755->0644]
ext/pango/gsttimeoverlay.c
ext/theora/Makefile.in
ext/theora/gsttheoradec.c
ext/theora/gsttheoradec.h
ext/theora/gsttheoraenc.c
ext/theora/gsttheoraenc.h
ext/theora/gsttheoraparse.c
ext/vorbis/Makefile.am
ext/vorbis/Makefile.in
ext/vorbis/gstvorbisdec.c
ext/vorbis/gstvorbisdec.h
ext/vorbis/gstvorbisenc.c
ext/vorbis/gstvorbisenc.h
ext/vorbis/gstvorbisparse.c
gst-libs/Makefile.in
gst-libs/gst/Makefile.am
gst-libs/gst/Makefile.in
gst-libs/gst/app/Makefile.in
gst-libs/gst/app/gstappsink.c
gst-libs/gst/app/gstappsrc.c
gst-libs/gst/app/gstappsrc.h
gst-libs/gst/audio/Makefile.am
gst-libs/gst/audio/Makefile.in
gst-libs/gst/audio/audio.c
gst-libs/gst/audio/audio.h
gst-libs/gst/audio/gstaudioclock.h
gst-libs/gst/audio/gstaudiodecoder.c [new file with mode: 0644]
gst-libs/gst/audio/gstaudiodecoder.h [new file with mode: 0644]
gst-libs/gst/audio/gstaudioencoder.c [new file with mode: 0644]
gst-libs/gst/audio/gstaudioencoder.h [new file with mode: 0644]
gst-libs/gst/audio/gstaudiofilter.c
gst-libs/gst/audio/gstaudiofilter.h
gst-libs/gst/audio/gstaudioiec61937.c [new file with mode: 0644]
gst-libs/gst/audio/gstaudioiec61937.h [new file with mode: 0644]
gst-libs/gst/audio/gstaudiosink.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/audio/gstaudiosrc.h
gst-libs/gst/audio/gstbaseaudiosink.c
gst-libs/gst/audio/gstbaseaudiosink.h
gst-libs/gst/audio/gstbaseaudiosrc.c
gst-libs/gst/audio/gstringbuffer.c
gst-libs/gst/audio/gstringbuffer.h
gst-libs/gst/audio/multichannel.c
gst-libs/gst/audio/multichannel.h
gst-libs/gst/cdda/Makefile.in
gst-libs/gst/cdda/gstcddabasesrc.c
gst-libs/gst/cdda/gstcddabasesrc.h
gst-libs/gst/fft/Makefile.in
gst-libs/gst/fft/gstfft.h
gst-libs/gst/fft/gstfftf32.c
gst-libs/gst/fft/gstfftf32.h
gst-libs/gst/fft/gstfftf64.c
gst-libs/gst/fft/gstfftf64.h
gst-libs/gst/fft/gstffts16.c
gst-libs/gst/fft/gstffts16.h
gst-libs/gst/fft/gstffts32.c
gst-libs/gst/fft/gstffts32.h
gst-libs/gst/floatcast/Makefile.in
gst-libs/gst/glib-compat-private.h [new file with mode: 0644]
gst-libs/gst/interfaces/Makefile.in
gst-libs/gst/interfaces/cameracontrol.c
gst-libs/gst/interfaces/cameracontrol.h
gst-libs/gst/interfaces/cameracontrolchannel.c
gst-libs/gst/interfaces/cameracontrolchannel.h
gst-libs/gst/interfaces/colorbalance.c
gst-libs/gst/interfaces/colorbalance.h
gst-libs/gst/interfaces/colorbalancechannel.h
gst-libs/gst/interfaces/mixer.c
gst-libs/gst/interfaces/mixer.h
gst-libs/gst/interfaces/mixeroptions.h
gst-libs/gst/interfaces/navigation.c
gst-libs/gst/interfaces/navigation.h
gst-libs/gst/interfaces/propertyprobe.c
gst-libs/gst/interfaces/streamvolume.h
gst-libs/gst/interfaces/tuner.h
gst-libs/gst/interfaces/xoverlay.c
gst-libs/gst/interfaces/xoverlay.h
gst-libs/gst/netbuffer/Makefile.in
gst-libs/gst/netbuffer/gstnetbuffer.c
gst-libs/gst/pbutils/Makefile.am
gst-libs/gst/pbutils/Makefile.in
gst-libs/gst/pbutils/codec-utils.c
gst-libs/gst/pbutils/codec-utils.h
gst-libs/gst/pbutils/descriptions.c
gst-libs/gst/pbutils/encoding-profile.c
gst-libs/gst/pbutils/encoding-profile.h
gst-libs/gst/pbutils/encoding-target.c
gst-libs/gst/pbutils/encoding-target.h
gst-libs/gst/pbutils/gstdiscoverer-types.c
gst-libs/gst/pbutils/gstdiscoverer.c
gst-libs/gst/pbutils/gstdiscoverer.h
gst-libs/gst/pbutils/gstpluginsbaseversion.c
gst-libs/gst/pbutils/install-plugins.h
gst-libs/gst/pbutils/pbutils-private.h
gst-libs/gst/riff/Makefile.in
gst-libs/gst/riff/riff-ids.h
gst-libs/gst/riff/riff-media.c
gst-libs/gst/riff/riff-read.c
gst-libs/gst/rtp/Makefile.in
gst-libs/gst/rtp/gstbasertpaudiopayload.c
gst-libs/gst/rtp/gstbasertpaudiopayload.h
gst-libs/gst/rtp/gstbasertpdepayload.c
gst-libs/gst/rtp/gstbasertpdepayload.h
gst-libs/gst/rtp/gstbasertppayload.c
gst-libs/gst/rtp/gstbasertppayload.h
gst-libs/gst/rtp/gstrtcpbuffer.c
gst-libs/gst/rtp/gstrtcpbuffer.h
gst-libs/gst/rtp/gstrtpbuffer.c
gst-libs/gst/rtsp/Makefile.in
gst-libs/gst/rtsp/gstrtspconnection.c
gst-libs/gst/rtsp/gstrtspdefs.c
gst-libs/gst/rtsp/gstrtspdefs.h
gst-libs/gst/rtsp/gstrtspextension.h
gst-libs/gst/rtsp/gstrtsprange.c
gst-libs/gst/rtsp/gstrtsptransport.c
gst-libs/gst/rtsp/gstrtspurl.c
gst-libs/gst/sdp/Makefile.in
gst-libs/gst/sdp/gstsdpmessage.c
gst-libs/gst/tag/Makefile.am
gst-libs/gst/tag/Makefile.in
gst-libs/gst/tag/gstexiftag.c
gst-libs/gst/tag/gstid3tag.c
gst-libs/gst/tag/gsttagdemux.c
gst-libs/gst/tag/gsttagmux.c [new file with mode: 0644]
gst-libs/gst/tag/gsttagmux.h [new file with mode: 0644]
gst-libs/gst/tag/gstvorbistag.c
gst-libs/gst/tag/gstxmptag.c
gst-libs/gst/tag/id3v2.c [new file with mode: 0644]
gst-libs/gst/tag/id3v2.h [new file with mode: 0644]
gst-libs/gst/tag/id3v2frames.c [new file with mode: 0644]
gst-libs/gst/tag/lang.c
gst-libs/gst/tag/license-translations.dict [new file with mode: 0644]
gst-libs/gst/tag/licenses-tables.dat [new file with mode: 0644]
gst-libs/gst/tag/licenses.c [new file with mode: 0644]
gst-libs/gst/tag/mklicensestables.c [new file with mode: 0644]
gst-libs/gst/tag/tag.h
gst-libs/gst/tag/tags.c
gst-libs/gst/tag/xmpwriter.c
gst-libs/gst/tag/xmpwriter.h
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/Makefile.in
gst-libs/gst/video/convertframe.c
gst-libs/gst/video/gstvideofilter.h
gst-libs/gst/video/gstvideosink.h
gst-libs/gst/video/video-blend.c [new file with mode: 0644]
gst-libs/gst/video/video-blend.h [new file with mode: 0644]
gst-libs/gst/video/video-overlay-composition.c [new file with mode: 0644]
gst-libs/gst/video/video-overlay-composition.h [new file with mode: 0644]
gst-libs/gst/video/video.c
gst-libs/gst/video/video.h
gst-libs/gst/video/videoblendorc-dist.c [new file with mode: 0644]
gst-libs/gst/video/videoblendorc-dist.h [new file with mode: 0644]
gst-libs/gst/video/videoblendorc.orc [new file with mode: 0644]
gst-plugins-base.doap
gst-plugins-base.spec.in
gst/Makefile.in
gst/adder/Makefile.in
gst/adder/gstadder.c
gst/adder/gstadder.h
gst/app/Makefile.in
gst/app/gstapp.c
gst/audioconvert/Makefile.am
gst/audioconvert/Makefile.in
gst/audioconvert/audioconvert.c
gst/audioconvert/gstaudioconvert.c
gst/audiorate/Makefile.in
gst/audiorate/gstaudiorate.c
gst/audioresample/Makefile.am
gst/audioresample/Makefile.in
gst/audioresample/gstaudioresample.c
gst/audioresample/resample.c
gst/audioresample/resample_sse.h
gst/audioresample/speex_resampler_double.c
gst/audioresample/speex_resampler_float.c
gst/audiotestsrc/Makefile.in
gst/audiotestsrc/gstaudiotestsrc.c
gst/audiotestsrc/gstaudiotestsrc.h
gst/encoding/Makefile.in
gst/encoding/gstencodebin.c
gst/encoding/gstsmartencoder.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/ffmpegcolorspace/Makefile.in
gst/ffmpegcolorspace/avcodec.h
gst/ffmpegcolorspace/gstffmpegcodecmap.c
gst/ffmpegcolorspace/gstffmpegcolorspace.c
gst/ffmpegcolorspace/imgconvert.c
gst/ffmpegcolorspace/imgconvert_template.h
gst/ffmpegcolorspace/mem.c
gst/gdp/Makefile.in
gst/gdp/gstgdpdepay.c
gst/gdp/gstgdppay.c
gst/playback/Makefile.am
gst/playback/Makefile.in
gst/playback/README
gst/playback/gstdecodebin.c
gst/playback/gstdecodebin2.c
gst/playback/gstplay-enum.h
gst/playback/gstplay-marshal.c [new file with mode: 0644]
gst/playback/gstplay-marshal.h [new file with mode: 0644]
gst/playback/gstplaybasebin.c
gst/playback/gstplaybasebin.h
gst/playback/gstplaybin.c
gst/playback/gstplaybin2.c
gst/playback/gstplaysink.c
gst/playback/gstplaysink.h
gst/playback/gstplaysinkaudioconvert.c [new file with mode: 0644]
gst/playback/gstplaysinkaudioconvert.h [new file with mode: 0644]
gst/playback/gstplaysinkconvertbin.c [new file with mode: 0644]
gst/playback/gstplaysinkconvertbin.h [new file with mode: 0644]
gst/playback/gstplaysinkvideoconvert.c [new file with mode: 0644]
gst/playback/gstplaysinkvideoconvert.h [new file with mode: 0644]
gst/playback/gststreamselector.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gstsubtitleoverlay.h
gst/playback/gsturidecodebin.c
gst/subparse/Makefile.in
gst/subparse/gstssaparse.c
gst/subparse/gstsubparse.c
gst/tcp/Makefile.in
gst/tcp/gstmultifdsink.c
gst/tcp/gsttcp.c
gst/tcp/gsttcpclientsink.c
gst/tcp/gsttcpclientsrc.c
gst/tcp/gsttcpserversrc.c
gst/typefind/Makefile.am
gst/typefind/Makefile.in
gst/typefind/gsttypefindfunctions.c
gst/videorate/Makefile.am
gst/videorate/Makefile.in
gst/videorate/gstvideorate.c
gst/videorate/gstvideorate.h
gst/videoscale/Makefile.am
gst/videoscale/Makefile.in
gst/videoscale/gstvideoscale.c
gst/videoscale/gstvideoscale.h
gst/videoscale/vs_4tap.c
gst/videoscale/vs_fill_borders.c
gst/videoscale/vs_image.h
gst/videoscale/vs_lanczos.c [new file with mode: 0644]
gst/videotestsrc/Makefile.am
gst/videotestsrc/Makefile.in
gst/videotestsrc/generate_sine_table.c
gst/videotestsrc/gstvideotestsrc.c
gst/videotestsrc/videotestsrc.c
gst/volume/Makefile.in
gst/volume/gstvolume.c
gst/volume/gstvolumeorc-dist.c
gst/volume/gstvolumeorc.orc
install-sh
ltmain.sh [changed mode: 0755->0644]
m4/Makefile.in
m4/freetype2.m4
m4/glibc2.m4 [deleted file]
m4/intl.m4 [deleted file]
m4/intldir.m4 [deleted file]
m4/intmax.m4 [deleted file]
m4/libtool.m4
m4/lock.m4 [deleted file]
m4/longlong.m4 [deleted file]
m4/ltoptions.m4
m4/ltversion.m4
m4/lt~obsolete.m4
m4/printf-posix.m4 [deleted file]
m4/size_max.m4 [deleted file]
m4/visibility.m4 [deleted file]
m4/wchar_t.m4 [deleted file]
m4/wint_t.m4 [deleted file]
m4/xsize.m4 [deleted file]
missing
packaging/gst-plugins-base.spec
pkgconfig/Makefile.in
po/LINGUAS
po/Makevars.template [deleted file]
po/af.gmo
po/af.po
po/az.gmo
po/az.po
po/bg.gmo
po/bg.po
po/ca.gmo
po/ca.po
po/cs.gmo
po/cs.po
po/da.gmo
po/da.po
po/de.gmo
po/de.po
po/el.gmo
po/el.po
po/en_GB.gmo
po/en_GB.po
po/eo.gmo [new file with mode: 0644]
po/eo.po [new file with mode: 0644]
po/es.gmo
po/es.po
po/eu.gmo
po/eu.po
po/fi.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/gl.gmo
po/gl.po
po/gst-plugins-base-0.10.pot
po/hu.gmo
po/hu.po
po/id.gmo
po/id.po
po/it.gmo
po/it.po
po/ja.gmo
po/ja.po
po/lt.gmo
po/lt.po
po/lv.gmo
po/lv.po
po/nb.gmo
po/nb.po
po/nl.gmo
po/nl.po
po/or.gmo
po/or.po
po/pl.gmo
po/pl.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/sk.gmo
po/sk.po
po/sl.gmo
po/sl.po
po/sq.gmo
po/sq.po
po/sr.gmo
po/sr.po
po/sv.gmo
po/sv.po
po/tr.gmo
po/tr.po
po/uk.gmo
po/uk.po
po/vi.gmo
po/vi.po
po/zh_CN.gmo
po/zh_CN.po
stamp-h.in [deleted file]
sys/Makefile.in
sys/v4l/Makefile.in
sys/v4l/gstv4lsrc.c
sys/v4l/videodev_mjpeg.h
sys/ximage/Makefile.in
sys/ximage/ximagesink.c
sys/xvimage/Makefile.in
sys/xvimage/xv_types.h
sys/xvimage/xvimagesink.c
sys/xvimage/xvimagesink.h
tests/Makefile.in
tests/check/Makefile.am
tests/check/Makefile.in
tests/check/elements/adder.c
tests/check/elements/audiorate.c
tests/check/elements/audioresample.c
tests/check/elements/audiotestsrc.c
tests/check/elements/decodebin.c
tests/check/elements/decodebin2.c
tests/check/elements/ffmpegcolorspace.c
tests/check/elements/gnomevfssink.c
tests/check/elements/playbin.c
tests/check/elements/playbin2-compressed.c [new file with mode: 0644]
tests/check/elements/playbin2.c
tests/check/elements/textoverlay.c
tests/check/elements/videorate.c
tests/check/elements/videoscale.c
tests/check/elements/volume.c
tests/check/elements/vorbisdec.c
tests/check/elements/vorbistag.c
tests/check/gst-plugins-base.supp
tests/check/libs/libsabi.c
tests/check/libs/navigation.c
tests/check/libs/profile.c
tests/check/libs/rtp.c
tests/check/libs/struct_arm.h [new file with mode: 0644]
tests/check/libs/tag.c
tests/check/libs/video.c
tests/check/pipelines/basetime.c
tests/check/pipelines/theoraenc.c
tests/check/pipelines/vorbisdec.c
tests/check/pipelines/vorbisenc.c
tests/examples/Makefile.am
tests/examples/Makefile.in
tests/examples/app/Makefile.in
tests/examples/audio/Makefile.am [new file with mode: 0644]
tests/examples/audio/Makefile.in [new file with mode: 0644]
tests/examples/audio/audiomix.c [new file with mode: 0644]
tests/examples/audio/testchannels.c [moved from gst-libs/gst/audio/testchannels.c with 95% similarity]
tests/examples/audio/volume.c [moved from tests/examples/volume/volume.c with 98% similarity]
tests/examples/dynamic/Makefile.in
tests/examples/encoding/Makefile.am
tests/examples/encoding/Makefile.in
tests/examples/encoding/encoding.c
tests/examples/fft/Makefile.am [new file with mode: 0644]
tests/examples/fft/Makefile.in [moved from tests/examples/volume/Makefile.in with 82% similarity]
tests/examples/fft/fftrange.c [new file with mode: 0644]
tests/examples/gio/Makefile.in
tests/examples/overlay/Makefile.in
tests/examples/overlay/gtk-xoverlay.c
tests/examples/overlay/qt-xoverlay.cpp
tests/examples/playrec/Makefile.in
tests/examples/seek/Makefile.in
tests/examples/seek/jsseek.c
tests/examples/seek/scrubby.c
tests/examples/seek/seek.c
tests/examples/snapshot/Makefile.in
tests/examples/v4l/Makefile.am
tests/examples/v4l/Makefile.in
tests/examples/volume/Makefile.am [deleted file]
tests/files/Makefile.am
tests/files/Makefile.in
tests/files/license-uris [new file with mode: 0644]
tests/files/test.mp3 [new file with mode: 0644]
tests/icles/Makefile.in
tests/icles/playback/Makefile.in
tests/icles/stress-playbin.c
tests/icles/test-colorkey.c
tests/icles/test-xoverlay.c
tools/Makefile.in
tools/gst-discoverer.c
win32/common/_stdint.h
win32/common/audio-enumtypes.c
win32/common/config.h
win32/common/config.h-new [deleted file]
win32/common/gstrtsp-enumtypes.c
win32/common/libgstaudio.def
win32/common/libgstpbutils.def
win32/common/libgsttag.def
win32/common/libgstvideo.def

index 883a765..ac8629d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+=== release 0.10.36 ===
+
+2012-02-20  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         releasing 0.10.36, "Better"
+
+2012-02-20 23:19:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * po/ca.po:
+       * po/id.po:
+         po: update translations
+
+2012-02-17 15:08:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * win32/common/libgstaudio.def:
+         docs: add new audio base class API to docs and .def file
+
+2012-01-30 15:55:26 +0100  Ognyan Tonchev <ognyan@axis.com>
+
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+         rtspconnection: only send new data immediately if there are no queued messages
+         Even if watch->messages->length is 0 there may still be some
+         data from a message that was only written partially at the
+         previous attempt stored in watch->write_data, so check for
+         that as well. We don't want to write data into the middle
+         of another message, which could happen when there wasn't
+         enough bandwidth.
+         https://bugzilla.gnome.org/show_bug.cgi?id=669039
+
+2012-02-16 12:19:20 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+         audiodecoder: add some properties to tweak baseclass behaviour
+         ... so subclass can also rely upon never being bothered with some NULL buffer
+         it can't do any interesting with, or with any data before it received
+         any format configuration (and setup properly).
+
+2012-02-16 12:18:03 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         audioencoder: add some properties to tweak baseclass behaviour
+         ... so subclass can also rely upon never being bothered with less data
+         than it desires or with some NULL buffer it can't do any interesting with.
+
+2012-02-16 12:15:47 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: assert some more that subclass parsed frame has proper len
+
+2012-02-14 19:23:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: try harder to obtain a duration if we don't get one right away
+         If we don't get a duration right away, set the pipeline to playing
+         and sleep a bit, then try again. This is ugly, but the least worst
+         we can do right now. The alternative would be to make parsers etc.
+         return some bogus duration estimate even after only having pushed
+         a single frame, for example.
+         Fixes discoverer showing 0 durations for some mp3 and aac files
+         (e.g. soweto-adts.aac).
+
+2012-02-05 13:55:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * win32/common/_stdint.h:
+       * win32/common/config.h:
+         0.10.35.3 pre-release
+
+2012-02-01 15:28:45 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggstream.c:
+       * ext/ogg/gstoggstream.h:
+         oggdemux: fix granpos interpolation violating max keyframe distance
+         In case many packets fit on a page, we may not see a granpos for
+         a while, and granpos interpolation can wrap the 'frames since last
+         keyframe' part of the granpos, generating a granpos which is smaller
+         than what it should be.
+         This is fixed by detecting keyframe packets (at least for Theora),
+         and updating the last keyframe granpos from this.
+         This may still be generating potentially wrong granpos for streams
+         which have a Theora like granpos (keyframes, a max keyframe distance
+         and a count of frames since last keyframe), and which allow implicit
+         granules on packets. For these streams, a custom keyframe detection
+         routine should be plugged into their GstOggStream mapper.
+         https://bugzilla.gnome.org/show_bug.cgi?id=669164
+
+2012-02-01 16:46:13 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisparse.c:
+         vorbisparse: pedantically recognize undefined headers too
+
+2012-02-01 16:32:24 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisparse.c:
+         vorbisparse: fix header detection
+         It was matching non header packets.
+         This fixes various leaks, where buffers would be pushed onto a headers
+         list, but never popped.
+         Might also fix corruption as those buffers were dropped from the output
+         silently...
+         https://bugzilla.gnome.org/show_bug.cgi?id=669167
+
+2012-01-23 09:28:18 -0800  David Schleef <ds@schleef.org>
+
+       * gst-libs/gst/interfaces/propertyprobe.c:
+         propertyprobe: fix documentation
+
+2012-01-18 14:58:08 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: do not try to deactivate an inactive group
+         A group may have failed to activate due to an error (for instance,
+         having set the URI to a non existent location in about-to-finish).
+         https://bugzilla.gnome.org/show_bug.cgi?id=666395
+
+2012-01-17 16:05:41 +0200  Anssi Hannula <anssi.hannula@iki.fi>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: fix state change stall on PAUSED->READY->PAUSED
+         After a PAUSED->READY change the sink pads are currently not set to
+         blocking state. When the element is set back to PAUSED, the change will
+         be done asynchronously, but as the _pad_blocked_cb() callback is now not
+         called, the state change never completes.
+         Fix that by setting the sink pads to blocking state on a PAUSED->READY
+         change, which ensures that the _pad_blocked_cb() is called when needed
+         on any future READY->PAUSED change. The sink pads are already put to
+         blocking state on NULL->READY change, so this behavior is consistent.
+         Fixes bug #668097.
+
+2012-01-19 16:40:22 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gststreamsynchronizer.c:
+         streamsynchronizer: avoid unlikely NULL dereference
+
+2012-01-19 16:35:54 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/videoscale/vs_fill_borders.c:
+         videoscale: prevent implicit upgrade to integer type and sign extension
+
+2012-01-19 16:35:04 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * tools/gst-discoverer.c:
+         gst-discoverer: remove extraneous variable
+
+2012-01-19 16:32:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: verify linking to overlay element
+
+2012-01-19 16:32:05 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: avoid finding sink in NULL bin in corner case
+
+2012-01-19 16:29:53 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+         tag: exif: add missing break
+
+2012-01-17 18:19:30 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: initialize variable
+         ... to help out challenged compiler.
+
+2012-01-16 11:43:25 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/alsa/gstalsasink.c:
+         alsasink: fix high sample rates being rejected
+         An ALSA sink may select a different rate (as we use the _set_rate_near
+         API, which is not guaranteed to set the exact target rate).
+         The rest of the code seems to already handle this well, as output
+         from a 88200 Hz file seems to have the correct pitch when selecting
+         a 96 kHz rate.
+
+2012-01-16 11:40:47 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/alsa/gstalsasink.c:
+         alsasink: fix rate match message mistaking error code for sample rate
+
+2012-01-13 16:57:15 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+       * Android.mk:
+         Android, Add explicit path for zlib
+         This change fixes building gst-libs/gst/tag/ code with
+         the Android buildsystem.
+
+2012-01-13 14:50:49 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+       * ext/vorbis/gstvorbisdec.c:
+         Fix wrong access to undefined struct member
+         For the USE_TREMOLO case, GstVorbisDec doesn't have
+         a vb member. Besides, Tremolo's vorbis_dsp_synthesis()
+         expects a vorbis_dsp_state to be passed as first
+         argument. Not a vorbis_block.
+
+2012-01-13 14:47:13 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+       * ext/vorbis/gstvorbisdec.c:
+         Fix TREMELO -> TREMOLO typo
+
+2012-01-12 16:24:01 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraparse.c:
+         theoraparse: fix array leak
+
+2012-01-12 14:26:05 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix structure leak
+         I hit the 'misc' one, but let's also make sure the topology
+         one get freed as well, though I do not know if this can happen
+         twice.
+
+2012-01-11 20:47:00 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+       * gst-libs/gst/video/Makefile.am:
+         Add missing DEFAULT_INCLUDES on androgenizer call
+         Fix building of the libgstvideo module on Android by adding the
+         missing and needed $(DEFAULT_INCLUDES) to CFLAGS for the
+         androgenizer call on gst-libs/gst/video/Makefile.am
+         Before this change, building was failing due to gst-plugins-base/
+         and gst-plugins-base/gst-libs/gst/video being left out of the
+         include path.
+
+2012-01-11 16:17:42 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: fix push mode chain leak
+         When I first implemented push mode seeking, I removed the chain
+         freeing there as it could be used later. The current code does not
+         seem to do that though, so I'm restoring the previous freeing,
+         which plugs the leak while apparently not reintroducing use of
+         freed data with chained and normal files, both with gst-launch
+         playbin2 and Totem.
+
+2012-01-11 12:52:17 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+         discoverer: fix leaks caused by some base class dtors not being called
+
+2012-01-11 12:16:28 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix caps and discoverer object ref leaks
+
+2012-01-11 11:55:59 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: add a few consts where appropriate
+
+2012-01-11 11:55:36 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix pad leak
+
+2012-01-10 18:27:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: use GST_TYPE_TAG_LIST for tag lists
+         They may not be structures in 0.11/1.0.
+
+2012-01-10 18:07:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix potential tag list leaks
+         Not that I have ever seen these in practice, but if they
+         can't happen we may just as well just assign the new tag
+         list. Merge properly to be on the safe side, and also
+         avoid a useless tag list copy in the normal case where
+         there is no tag list yet.
+
+2012-01-10 17:48:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix potential caps leak
+         in last else chunk.
+
+2012-01-10 16:57:04 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: fix tag list leak
+
+2012-01-10 16:51:09 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: fix pad leak
+
+2012-01-10 16:14:29 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: fix hang on small truncated files
+         A first hang was happening when trying to locate a page backwards,
+         where we'd sync forever on the same page.
+         With that fixed, a second hang would happen after preparing an EOS
+         event, but with no chain created yet to send it to, the pipeline
+         would stay idle forever.
+         An element error is now emitted for this case.
+
+2012-01-09 12:31:02 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gstplay-enum.h:
+         playback: document DEINTERLACE flag
+
+2011-12-16 15:27:24 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: assume live stream if byte size cannot be determined
+         This prevents trying to seek and failing, then ending up unable
+         to stream because we can't get back at the headers.
+         A more robust way would be to find a good place to reinject the
+         headers when a seek fails, but I can't seem to get this to work.
+
+2012-01-07 20:12:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+         rtspconnection: make hostname lookup more thread-safe
+         Don't write IP number string to return into a static
+         array which is shared amongst all threads (note: of
+         course a copy is returned).
+         https://bugzilla.gnome.org/show_bug.cgi?id=666711
+
+2012-01-07 19:39:42 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: make is_subtitle_caps thread-safe
+
+2011-11-01 17:57:59 +0100  Havard Graff <havard.graff@tandberg.com>
+
+       * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+       * gst-libs/gst/tag/tags.c:
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+       * gst/encoding/gstsmartencoder.c:
+       * gst/playback/gstplaysink.c:
+       * tools/gst-discoverer.c:
+         Fix various unlikely, but still potential memoryleaks in error code paths
+         https://bugzilla.gnome.org/show_bug.cgi?id=667311
+
+2011-10-22 16:41:23 +0200  Havard Graff <havard.graff@tandberg.com>
+
+       * gst-libs/gst/app/gstappsrc.c:
+         appsrc: implement get_caps vfunc
+         This allows downstream elements to query what caps are available.
+         https://bugzilla.gnome.org/show_bug.cgi?id=667312
+
+2012-01-05 12:23:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tools/gst-discoverer.c:
+         tools: avoid unportable vararg macro construct in gst-discoverer
+         https://bugzilla.gnome.org/show_bug.cgi?id=667306
+
+2012-01-01 20:44:08 +0100  Idar Tollefsen <itollefs@cisco.com>
+
+       * configure.ac:
+         build: Run platform check for platform specific configuration.
+
+2011-10-12 11:28:10 +0200  Pascal Buhler <pabuhler@cisco.com>
+
+       * gst-libs/gst/rtp/gstrtcpbuffer.c:
+         rtcpbuffer: prevent overflow of 16bit header length.
+         RTCP header can be  (2^16 + 1) * 4 bytes long, so when validating a bogus
+         packet it was possible to get a 16bit overflow resulting in a length of 0.
+         This would put the gst_rtcp_buffer_validate_data function in a endless loop.
+         https://bugzilla.gnome.org/show_bug.cgi?id=667313
+
+2011-09-24 14:05:42 +0200  Havard Graff <havard.graff@tandberg.com>
+
+       * gst/videotestsrc/videotestsrc.c:
+         videotestsrc: keep the calculation fixed-point
+         https://bugzilla.gnome.org/show_bug.cgi?id=667315
+
+2011-08-04 11:30:05 +0200  Idar Tollefsen <itollefs@cisco.com>
+
+       * ext/pango/gstclockoverlay.c:
+       * ext/pango/gsttimeoverlay.c:
+         pango: changes includes from brackets to quotes for local files
+         https://bugzilla.gnome.org/show_bug.cgi?id=667316
+
+2012-01-04 19:39:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From 63d592e to cb5da59
+
+2012-01-03 11:04:23 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gststreamsynchronizer.c:
+         streamsynchronizer: force fallback buffer_alloc when other pad not available
+         ... to avoid unnecessary spurious errors (upon e.g. shutdown).
+         If a real error is applicable in this unusual circumstance (missing other pad),
+         other (STREAM_LOCK protected) call paths can take care of that.
+
+2012-01-03 11:02:17 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gststreamsynchronizer.c:
+         streamsynchronizer: avoid crashing when operating on released pad
+
+2011-12-27 14:37:26 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: fix leak when initializing pads
+         Pads are initialized twice: when requesting pads and when
+         initializing collectpads. Avoid double initialization by
+         checking if collectpads are still going to be initialized when
+         creating request pads.
+
+2011-12-23 22:51:59 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: fix template caps creation on big endian systems
+
+2011-12-23 22:24:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+       * tests/check/libs/tag.c:
+         tag: fix writing of Exif tag payloads <= 4 bytes
+         When the payload for an Exif tag is less than or equal to 4 bytes,
+         the data is simply put into the offset field. Fix writing these
+         kinds of payloads on big endian systems (and possibly also on
+         little endian systems). The caller will have already formatted
+         the bytes in memory according to the writer's endianness, so just
+         write out the bytes as they are in this case. Fixes tags unit test
+         on big endian systems.
+
+2011-12-22 16:54:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: add a few more debug statements
+
+2011-12-22 16:53:49 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+         audiodecoder: tweak documentation
+
+2011-12-22 07:53:39 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+       * tests/check/libs/tag.c:
+         tag: xmp: Keep compatibility with our old generated xmp
+         We used to add a trailing \n to the end of generated xmp packets.
+         Windows viewer was unhappy with it and we fixed it in
+         96d2120c2bb0b29e1849098198f5fbef81939cdd
+         The problem is that this caused xmp generated before this fix
+         to not be recognized and parsed anymore. This patch makes it
+         recognize xmp with the trailing \n and without, fixing the
+         regression. Also adds tests for it.
+
+2011-12-14 16:34:39 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/video/video-blend.c:
+         gstvideo: fix a RGB ordering mixup in colorspace conversion code
+
+2011-12-20 12:42:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+         audiodecoder: set a non-zero default maximum tolerated errors
+         Whereas the previous default 0 was backwards compatible in that it lead
+         to erroring out immediately upon any error, elements that are really
+         ported and using the base class error macro can be assumed to intend to
+         improve behaviour rather than maintaining the old one.  So, make it easy
+         on those and any future one and tolerate some errors by default, as intended.
+         Fixes #666579.
+
+2011-12-15 11:01:01 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+         tag: exif: do not include \0 in size passed to g_convert
+         When using g_convert, we should only pass the length
+         of the string content (without the \0) as g_convert will
+         only parse the real contents when changing formats. Including
+         the \0 causes it to add another \0, increasing the string
+         size when not needed.
+         For example, when writting a North geo location ref entry, that should
+         be a string with a single N letter, it would write:
+         "N\0\0", causing the string to have size 3, instead of 2 as expected.
+         In our case, we can pass -1 and let g_convert calculate the strlen as
+         we don't use the length anywhere else.
+         This fixes jifmux's tests on gst-plugins-bad.
+
+2011-10-03 14:51:56 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: tweak chain topology description
+         ... to also properly indicate chain's endpad if no elements are in the
+         chain (due to the endpad being a raw demuxer pad, or one setup without
+         decoders since uridecodebin or higher up decided not to need those).
+
+2011-12-13 12:55:45 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: fix late buffer leak
+
+2011-12-12 11:54:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/glib-compat-private.h:
+         glib-compat: Add license boilerplate for LGPL
+
+2011-12-10 02:08:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * win32/common/_stdint.h:
+       * win32/common/audio-enumtypes.c:
+       * win32/common/config.h:
+       * win32/common/gstrtsp-enumtypes.c:
+         0.10.35.2 pre-release
+
+2011-12-10 01:36:14 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * po/LINGUAS:
+       * po/cs.po:
+       * po/eo.po:
+       * po/es.po:
+       * po/gl.po:
+       * po/lv.po:
+       * po/sr.po:
+         po: update translations
+
+2011-12-09 15:39:12 +0000  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+       * gst-plugins-base.spec.in:
+         Add latest header file to spec file
+
+2011-12-09 01:31:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefindfunctions: only typefind text with a BOM as text/utf16 or text/utf32
+         We added the utf typefinder because the mp3 typefinder was a tad
+         overzealous when it came to typefinding things as mp3, and replaced
+         it with even more overzealous utf16/32 typefinders.
+         Fixes unit test.
+
+2011-12-07 18:45:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/video-overlay-composition.c:
+       * gst-libs/gst/video/video-overlay-composition.h:
+         video: make composition_blend() return a boolean
+         Not that anyone will ever check that, and it's not clear what
+         they're supposed to do if it fails, but at least it's there.
+
+2011-12-07 18:31:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/video/video-overlay-composition.c:
+       * gst-libs/gst/video/video-overlay-composition.h:
+         docs: add new API to docs
+
+2011-12-07 17:57:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/video-overlay-composition.c:
+       * gst-libs/gst/video/video-overlay-composition.h:
+       * tests/check/libs/video.c:
+       * win32/common/libgstvideo.def:
+         video: add seqnum getters for overlay compositions and rectangles
+         API: gst_video_overlay_composition_get_seqnum()
+         API: gst_video_overlay_rectangle_get_seqnum()
+
+2011-11-23 15:45:57 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * gst-libs/gst/video/video.c:
+         video: support any type of video in _parse_caps
+         Slight change in semantics for convenience. Shouldn't cause any
+         problems since this function is usually only used on pre-filtered
+         caps and not random caps, and it's hard to imagine a situation
+         where someone would want to rely on the previous behaviour.
+
+2011-12-06 21:57:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         videorate: don't leak previous buffer when shutting down
+         Implement stop vfunc after port to basetransform, so we
+         can clean up properly. Fixes make elements/videorate.valgrind
+
+2011-12-06 20:30:55 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/libs/video.c:
+         tests: fix calculation of last pixel offset in video unit test
+         And check the right buffer (pix2) in one case.
+
+2011-12-06 15:01:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/fft/Makefile.am:
+         examples: fix build of fft example
+         Should link against our own libgstfft-0.10.
+
+2011-12-06 14:55:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/video.c:
+         video: fix leak in gst_video_format_new_template_caps()
+         g_value_reset() is not the same as g_value_unset()
+
+2011-11-23 15:43:46 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: add suport for hardware accelerated videos
+         Don't plug converters for non-raw video.
+
+2011-12-05 15:48:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/video-overlay-composition.c:
+         video: don't use deprecated GStaticMutex with newer glib versions
+
+2011-12-05 15:34:42 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/Makefile.am:
+         examples: dist fft sub-directory
+
+2011-11-28 10:05:50 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: unpremultiply text image
+         The GstVideoOverlayComposition only supports unpremultiplied ARGB
+         (for now anyway, support for pre-multiplied alpha is planned.)
+
+2011-11-23 12:49:02 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * ext/pango/gsttextoverlay.c:
+       * ext/pango/gsttextoverlay.h:
+         textoverlay: Attach OverlayComposition to buffers when needed
+         Add video/x-surface support in the caps
+         We should then attach it whenever the sink supports it, but this
+         is working for the time being
+
+2011-11-18 13:22:52 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * ext/pango/gsttextoverlay.c:
+       * ext/pango/gsttextoverlay.h:
+         textoverlay: Make the text_image data a buffer
+         This way we won't free data that would be attached to some buffer.
+
+2011-11-18 11:04:47 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: Sync the caps with the new supported formats
+         Thanks to the use of the new video composition library, we gain support to
+         more colospaces and formats, let's state it.
+
+2011-11-16 17:54:43 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * ext/pango/gsttextoverlay.c:
+       * ext/pango/gsttextoverlay.h:
+         textoverlay: Make use of the new video blending utility
+
+2011-11-25 16:46:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/libs/video.c:
+         tests: add basic unit test for video overlay composition and rectangles
+
+2011-11-12 14:59:35 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/Makefile.am:
+       * gst-libs/gst/video/video-overlay-composition.c:
+       * gst-libs/gst/video/video-overlay-composition.h:
+       * win32/common/libgstvideo.def:
+         video: add video overlay composition API for subtitles
+         Basic API to attach overlay rectangles to buffers,
+         or blend them directly onto raw video buffers.
+         To be used primarily for things like subtitles or
+         logo overlays, not meant to replace videomixer.
+         Allows us to associate subtitle overlays with
+         non-raw video surface buffers, so that subtitles
+         are not lost and can instead be rendered later
+         when those surfaces are displayed or converted,
+         whilst re-using all the existing overlay plugins
+         and not having to teach them about our special
+         video surfaces. Could also have been made part
+         of the surface buffer abstraction of course, but
+         a secondary goal was to consolidate the blending
+         code for raw video into libgstvideo, and this
+         kind of API allows us to do both in a way that's
+         minimally invasive to existing elements, and at
+         the same time is fairly intuitive.
+         More features and extensions like the ability to
+         pass the source data or text/markup directly will
+         be added later.
+         https://bugzilla.gnome.org/show_bug.cgi?id=665080
+         API: gst_video_buffer_get_overlay_composition()
+         API: gst_video_buffer_set_overlay_composition()
+         API: gst_video_overlay_composition_new()
+         API: gst_video_overlay_composition_add_rectangle()
+         API: gst_video_overlay_composition_n_rectangles()
+         API: gst_video_overlay_composition_get_rectangle()
+         API: gst_video_overlay_composition_make_writable()
+         API: gst_video_overlay_composition_copy()
+         API: gst_video_overlay_composition_ref()
+         API: gst_video_overlay_composition_unref()
+         API: gst_video_overlay_composition_blend()
+         API: gst_video_overlay_rectangle_new_argb()
+         API: gst_video_overlay_rectangle_get_pixels_argb()
+         API: gst_video_overlay_rectangle_get_pixels_unscaled_argb()
+         API: gst_video_overlay_rectangle_get_render_rectangle()
+         API: gst_video_overlay_rectangle_set_render_rectangle()
+         API: gst_video_overlay_rectangle_copy()
+         API: gst_video_overlay_rectangle_ref()
+         API: gst_video_overlay_rectangle_unref()
+
+2011-11-23 00:31:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/Makefile.am:
+       * gst-libs/gst/video/video-blend.h:
+         video: hide private video-blend.[ch] from gobject-introspection
+         And remove unused fields from helper structure.
+
+2011-11-15 18:00:00 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/videoblendorc-dist.c:
+       * gst-libs/gst/video/videoblendorc-dist.h:
+         video: add fallbacks for compilation without orc
+
+2011-10-17 17:25:11 +0200  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * gst-libs/gst/video/.gitignore:
+       * gst-libs/gst/video/Makefile.am:
+       * gst-libs/gst/video/video-blend.c:
+       * gst-libs/gst/video/video-blend.h:
+       * gst-libs/gst/video/videoblendorc.orc:
+         video: add some internal helper functions for image blending
+         This could be improved if we decide we don't need it to
+         be this generic/flexible.
+
+2011-12-05 09:38:33 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/interfaces/xoverlay.c:
+         xoverlay: Fix mistakes in the sample code
+         Fixes bug #665430.
+
+2011-12-04 20:50:25 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsamixer.c:
+       * ext/ogg/gstoggdemux.c:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       * gst/playback/gstdecodebin.c:
+       * gst/playback/gstdecodebin2.c:
+       * gst/playback/gstplaybin2.c:
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gststreamsynchronizer.c:
+       * gst/tcp/gstmultifdsink.c:
+         Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
+         GStaticRecMutex is part of our API/ABI, not much we can do here
+         in 0.10 for most of these.
+
+2011-12-04 20:38:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsamixer.c:
+       * ext/alsa/gstalsamixer.h:
+         alsamixer: use GRectMutext instead of GStaticRecMutex with newer glib versions
+
+2011-12-04 20:21:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsamixer.c:
+       * ext/alsa/gstalsamixer.h:
+         alsamixer: embed static mutexes into the mixer structure
+         instead of allocating them dynamically
+
+2011-12-04 17:02:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/encoding/encoding.c:
+       * tests/examples/overlay/gtk-xoverlay.c:
+       * tests/examples/overlay/qt-xoverlay.cpp:
+       * tests/examples/seek/jsseek.c:
+       * tests/examples/seek/scrubby.c:
+       * tests/examples/seek/seek.c:
+       * tests/icles/stress-playbin.c:
+       * tests/icles/test-colorkey.c:
+       * tests/icles/test-xoverlay.c:
+       * tools/gst-discoverer.c:
+         tools, tests: g_thread_init() is deprecated in glib master
+         It's not needed any longer.
+
+2011-12-04 16:43:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsadeviceprobe.c:
+       * ext/alsa/gstalsamixer.c:
+       * ext/alsa/gstalsasink.c:
+       * ext/alsa/gstalsasrc.c:
+       * ext/ogg/gstoggdemux.c:
+       * ext/pango/gsttextoverlay.c:
+       * gst-libs/gst/Makefile.am:
+       * gst-libs/gst/app/gstappsink.c:
+       * gst-libs/gst/app/gstappsrc.c:
+       * gst-libs/gst/audio/gstaudiosink.c:
+       * gst-libs/gst/audio/gstaudiosrc.c:
+       * gst-libs/gst/audio/gstringbuffer.c:
+       * gst-libs/gst/glib-compat-private.h:
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+       * gst-libs/gst/video/convertframe.c:
+       * gst/encoding/gststreamcombiner.c:
+       * gst/encoding/gststreamsplitter.c:
+       * gst/playback/gstdecodebin.c:
+       * gst/playback/gstdecodebin2.c:
+       * gst/playback/gstplaybasebin.c:
+       * gst/playback/gstplaybin2.c:
+       * gst/playback/gstplaysinkconvertbin.c:
+       * gst/playback/gststreamsynchronizer.c:
+       * gst/playback/gstsubtitleoverlay.c:
+       * gst/playback/gsturidecodebin.c:
+       * gst/tcp/gstmultifdsink.c:
+       * sys/ximage/ximagesink.c:
+       * sys/xvimage/xvimagesink.c:
+         Work around deprecated thread API in glib master
+         Add private replacements for deprecated functions such as
+         g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
+         to avoid the deprecation warnings. We'll change these
+         over to the new API once we depend on glib >= 2.32.
+         Replace g_thread_create() with g_thread_try_new().
+
+2011-12-04 15:23:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/xmpwriter.c:
+         xmpwriter: update for thread API deprecations in glib master
+
+2011-12-04 13:43:06 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+       * tests/examples/fft/Makefile.am:
+         fft-example: re-add Makefile.am
+
+2011-12-02 23:35:50 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+       * configure.ac:
+         configure: trim trailing whitespace
+
+2011-12-02 23:34:47 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+       * configure.ac:
+       * tests/examples/Makefile.am:
+       * tests/examples/fft/.gitignore:
+       * tests/examples/fft/fftrange.c:
+         tests: add a test for fft result value-ranges
+         Add a small example that uses ffts of various types and parameters and check the
+         result value ranges.
+
+2011-09-13 21:10:43 +0200  Piotr Fusik <fox@scene.pl>
+
+       * docs/design/design-audiosinks.txt:
+       * docs/design/design-decodebin.txt:
+       * docs/design/design-encoding.txt:
+       * docs/design/design-orc-integration.txt:
+       * docs/design/draft-keyframe-force.txt:
+       * docs/design/draft-va.txt:
+       * ext/alsa/gstalsamixer.c:
+       * ext/libvisual/visual.c:
+       * ext/ogg/README:
+       * ext/ogg/gstoggdemux.c:
+       * ext/theora/gsttheoradec.c:
+       * ext/theora/gsttheoradec.h:
+       * ext/theora/gsttheoraparse.c:
+       * ext/vorbis/gstvorbisdec.c:
+       * gst-libs/gst/app/gstappsink.c:
+       * gst-libs/gst/app/gstappsrc.c:
+       * gst-libs/gst/app/gstappsrc.h:
+       * gst-libs/gst/audio/audio.c:
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       * gst-libs/gst/audio/gstbaseaudiosrc.c:
+       * gst-libs/gst/audio/gstringbuffer.c:
+       * gst-libs/gst/audio/multichannel.h:
+       * gst-libs/gst/fft/gstfftf32.c:
+       * gst-libs/gst/fft/gstfftf64.c:
+       * gst-libs/gst/fft/gstffts16.c:
+       * gst-libs/gst/fft/gstffts32.c:
+       * gst-libs/gst/interfaces/navigation.c:
+       * gst-libs/gst/interfaces/xoverlay.c:
+       * gst-libs/gst/netbuffer/gstnetbuffer.c:
+       * gst-libs/gst/pbutils/descriptions.c:
+       * gst-libs/gst/pbutils/encoding-profile.c:
+       * gst-libs/gst/pbutils/encoding-target.h:
+       * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+       * gst-libs/gst/rtp/gstbasertpaudiopayload.c:
+       * gst-libs/gst/rtp/gstrtcpbuffer.c:
+       * gst-libs/gst/rtp/gstrtpbuffer.c:
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+       * gst-libs/gst/rtsp/gstrtsprange.c:
+       * gst-libs/gst/tag/gstexiftag.c:
+       * gst-libs/gst/tag/gstvorbistag.c:
+       * gst-libs/gst/tag/gstxmptag.c:
+       * gst-libs/gst/tag/id3v2.3.0.txt:
+       * gst-libs/gst/tag/id3v2.4.0-frames.txt:
+       * gst-libs/gst/tag/id3v2.4.0-structure.txt:
+       * gst/adder/gstadder.c:
+       * gst/audioconvert/audioconvert.c:
+       * gst/audiorate/gstaudiorate.c:
+       * gst/audioresample/gstaudioresample.c:
+       * gst/audioresample/resample.c:
+       * gst/encoding/gststreamsplitter.c:
+       * gst/ffmpegcolorspace/avcodec.h:
+       * gst/ffmpegcolorspace/gstffmpegcodecmap.c:
+       * gst/ffmpegcolorspace/imgconvert.c:
+       * gst/ffmpegcolorspace/imgconvert_template.h:
+       * gst/ffmpegcolorspace/mem.c:
+       * gst/playback/README:
+       * gst/playback/gstdecodebin.c:
+       * gst/playback/gstdecodebin2.c:
+       * gst/playback/gstplaybasebin.c:
+       * gst/playback/gstplaybasebin.h:
+       * gst/playback/gstplaybin.c:
+       * gst/playback/gstplaybin2.c:
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gsturidecodebin.c:
+       * gst/tcp/gstmultifdsink.c:
+       * gst/tcp/gsttcp.c:
+       * gst/typefind/gsttypefindfunctions.c:
+       * gst/videotestsrc/gstvideotestsrc.c:
+       * m4/freetype2.m4:
+       * sys/v4l/v4lmjpegsrc_calls.c:
+       * sys/v4l/videodev_mjpeg.h:
+       * sys/ximage/ximagesink.c:
+       * sys/xvimage/xvimagesink.c:
+       * sys/xvimage/xvimagesink.h:
+       * tests/check/elements/adder.c:
+       * tests/check/elements/audioresample.c:
+       * tests/check/elements/gnomevfssink.c:
+       * tests/check/elements/textoverlay.c:
+       * tests/examples/encoding/encoding.c:
+         various: typo fixes
+         Fix typos in code and docs. Fixes. #658984
+
+2011-12-01 11:59:17 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+       * gst/adder/gstadder.c:
+         adder: be more graceful in the clipfunction
+         Doing dynamic pipelines is hard in 0.10. As we don't have the sticky events in
+         0.10 and sending such events in special elements like adder and tee was outvoted
+         on last attempt, be graceful to the misbehaviour instead.
+
+2011-12-01 01:22:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/elements/audioresample.c:
+         tests: fix caps leak in audioresample tests
+
+2011-12-01 01:07:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/pipelines/basetime.c:
+         tests: fix memory leak in basetime test
+
+2011-11-30 23:58:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: tone down debug message about file URIs with spaces
+         Complain a bit less loudly about URIs that have not been
+         escaped properly.
+
+2011-11-30 23:15:35 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+       * ext/alsa/gstalsasrc.h:
+         Revert "alsasrc: Improve timestamp accuracy"
+         This reverts commit 0b774e0b7cf7a8ef1780fb6100228ca6e8ca8bcf.
+
+2011-11-30 23:15:22 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+         Revert "alsasrc: Fix some compilation errors"
+         This reverts commit 2b84f5bd74ddb50f7832917ea8b4dd38d005631b.
+
+2011-11-30 23:15:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+         Revert "alsa: Remove unused but set variable"
+         This reverts commit e9aed7f31c7e9e415f733e147140ce3ef2f57a61.
+
+2011-11-30 23:15:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+       * ext/alsa/gstalsasrc.h:
+         Revert "alsasrc: fail gracefully when ALSA does not give timestamps"
+         This reverts commit c7282a5718c7f31f84fb31b2c38fab0f9a38e2b0.
+
+2011-11-30 23:14:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+         Revert "alsasrc: handle the case where the drivers don't supply timestamps"
+         This reverts commit 8154b69112cdc4830cd6002ec6c1f2917d30437b.
+
+2011-11-28 10:55:39 +0100  Stefan Sauer <ensonic@google.com>
+
+       * ext/alsa/gstalsasrc.c:
+         Revert "alsasrc: style fix"
+         This reverts commit f70ca6d4cbfd2b672dcc7215814bf6b39ce2c3f8.
+
+2011-11-30 14:25:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Don't send undefined NEWSEGMENT events to the internal elements
+         This happens when the internal elements are added before any NEWSEGMENT
+         event arrived and in that case we shouldn't send a NEWSEGMENT event
+         to the internal elements at all. They will get the NEWSEGMENT event
+         from upstream later.
+
+2011-11-29 14:15:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Fix decoder-sink compatibility check for raw audio/video formats
+         If the sink supports raw audio/video, we first check
+         if the decoder could output any raw audio/video format
+         and assume it is compatible with the sink then. We don't
+         do a complete compatibility check here if converters
+         are plugged between the decoder and the sink because
+         the converters will convert between raw formats and
+         even if the decoder format is not supported by the decoder
+         a converter will convert it.
+         We assume here that the converters can convert between
+         any raw format.
+         Fixes bug #665120.
+
+2011-11-29 09:11:21 +0100  Alessandro Decina <alessandro.d@gmail.com>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: fix compiler warning
+
+2011-11-29 08:49:53 +0100  Alessandro Decina <alessandro.d@gmail.com>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/video/video.c:
+       * gst-libs/gst/video/video.h:
+       * win32/common/libgstvideo.def:
+         libgstvideo: minor fixes to key unit events
+         Make out args to gst_video_event_parse_{downstream|upstream}_force_key_unit
+         optional, update libgstvideo.def and fix docs a bit.
+         API: gst_video_event_new_upstream_force_key_unit
+         API: gst_video_event_new_downstream_force_key_unit
+         API: gst_video_event_is_force_key_unit
+         API: gst_video_event_parse_upstream_force_key_unit
+         API: gst_video_event_parse_downstream_force_key_unit
+         https://bugzilla.gnome.org/show_bug.cgi?id=607742
+
+2011-06-05 01:49:38 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+       * gst-libs/gst/video/video.c:
+       * gst-libs/gst/video/video.h:
+         libgstvideo: Add force key unit events
+
+2011-11-28 20:11:09 +0100  Philippe Normand <philn@igalia.com>
+
+       * gst-libs/gst/fft/gstfft.h:
+       * gst-libs/gst/fft/gstfftf32.h:
+       * gst-libs/gst/fft/gstfftf64.h:
+       * gst-libs/gst/fft/gstffts16.h:
+       * gst-libs/gst/fft/gstffts32.h:
+         fft: Bracket public headers
+         This is especially needed if the gstfftw library is used from C++
+         code.
+         Fixes #665074
+
+2011-11-28 20:10:18 +0100  Philippe Normand <phil@base-art.net>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefindfunctions: Fix compiler warning
+
+2011-11-28 19:03:50 +0100  Alexey Fisher <bug-track@fisher-privat.net>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: fix build error
+         fix build errors:
+         gsttypefindfunctions.c:248:25: error: 'low' may be used uninitialized in this function [-Werror=uninitialized]
+         gsttypefindfunctions.c:239:24: error: 'high' may be used uninitialized in this function [-Werror=uninitialized]
+         Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
+
+2011-11-28 19:06:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Fix stupid mistake in last commit
+
+2011-11-28 19:03:54 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Only return the converter caps if we actually have raw caps
+         Fixes bug #664818 (hopefully).
+
+2011-11-28 17:59:32 +0100  Kipp Cannon <kcannon@cita.utoronto.ca>
+
+       * gst/audioresample/gstaudioresample.c:
+         audioresample: Don't emit DISCONT buffers if no discontinuity happened
+         audioresample is derived from GstBaseTransform, and one of
+         GstBaseTransform's traits is that if the derived element does not
+         produce an output buffer from some input buffer then the first output
+         buffer after that gets flaged as a discontinuity, whether or not the
+         buffer actually is discontinuous from the output buffer that preceded
+         it. When downsampling, the audioresample element requires more than
+         one input sample for each output sample, and if the ratio of input to
+         output sample rates is high enough and the input buffers short enough
+         it can come to pass that the resampler does not receive enough samples
+         on its input to produce any output.  Currently the resampler returns
+         GST_BASE_TRANSFORM_FLOW_DROPPED from the transform() method in this case,
+         causing the next buffer to be flagged as a discontinuity. If subsequent
+         elements in the pipeline reset themselves on disconts, this can cause
+         clicks and other undesireable behaviour.
+         Fixes bug #665004.
+
+2011-09-30 20:00:50 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/typefind/Makefile.am:
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: typefind UTF-16 and UTF-32
+         This avoids the MP3 typefinder from getting the highest score
+         every time it thinks there's something it might possibly be
+         able to parse.
+         https://bugzilla.gnome.org/show_bug.cgi?id=607619
+
+2011-11-28 13:27:29 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoradec.c:
+       * ext/theora/gsttheoradec.h:
+         Revert "theoradec: move the QoS logic to libgstvideo"
+         This reverts commit 149a4ce390a78e21309b210f7daba9db5d42afe6.
+         *grumble* I managed to merge something I did not mean to.
+
+2011-11-28 13:26:53 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/video/video.c:
+       * gst-libs/gst/video/video.h:
+       * win32/common/libgstvideo.def:
+         Revert "libgstvideo: add a new API to handle QoS events and dropping logic"
+         This reverts commit eb03323fb683e06ed8e7f557037f13252f150c25.
+         *grumble* I managed to merge something I did not mean to.
+
+2011-11-28 12:51:22 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/alsa/gstalsasink.c:
+       * ext/alsa/gstalsasrc.c:
+       * ext/gio/gstgiobasesink.c:
+       * ext/gio/gstgiobasesrc.c:
+       * ext/gnomevfs/gstgnomevfssink.c:
+       * ext/gnomevfs/gstgnomevfssrc.c:
+       * ext/libvisual/visual.c:
+       * ext/ogg/gstoggaviparse.c:
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggparse.c:
+       * ext/ogg/gstogmparse.c:
+       * ext/pango/gsttextoverlay.c:
+       * ext/pango/gsttextrender.c:
+       * ext/theora/gsttheoradec.c:
+       * ext/theora/gsttheoraenc.c:
+       * ext/theora/gsttheoraparse.c:
+       * ext/vorbis/gstvorbisdec.c:
+       * ext/vorbis/gstvorbisenc.c:
+       * ext/vorbis/gstvorbisparse.c:
+       * gst-libs/gst/app/gstappsink.c:
+       * gst-libs/gst/app/gstappsrc.c:
+       * gst-libs/gst/cdda/gstcddabasesrc.c:
+       * gst-libs/gst/tag/gsttagdemux.c:
+       * gst/adder/gstadder.c:
+       * gst/audioconvert/gstaudioconvert.c:
+       * gst/audiorate/gstaudiorate.c:
+       * gst/audioresample/gstaudioresample.c:
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+       * gst/encoding/gstencodebin.c:
+       * gst/encoding/gstsmartencoder.c:
+       * gst/encoding/gststreamcombiner.c:
+       * gst/encoding/gststreamsplitter.c:
+       * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
+       * gst/gdp/gstgdpdepay.c:
+       * gst/gdp/gstgdppay.c:
+       * gst/playback/gstdecodebin.c:
+       * gst/playback/gstdecodebin2.c:
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gststreamselector.c:
+       * gst/playback/gststreamsynchronizer.c:
+       * gst/playback/gstsubtitleoverlay.c:
+       * gst/playback/gsturidecodebin.c:
+       * gst/subparse/gstssaparse.c:
+       * gst/subparse/gstsubparse.c:
+       * gst/tcp/gstmultifdsink.c:
+       * gst/tcp/gsttcpclientsink.c:
+       * gst/tcp/gsttcpclientsrc.c:
+       * gst/tcp/gsttcpserversrc.c:
+       * gst/videorate/gstvideorate.c:
+       * gst/videoscale/gstvideoscale.c:
+       * gst/videotestsrc/gstvideotestsrc.c:
+       * sys/v4l/gstv4lmjpegsink.c:
+       * sys/v4l/gstv4lmjpegsrc.c:
+       * sys/v4l/gstv4lsrc.c:
+       * sys/ximage/ximagesink.c:
+       * sys/xvimage/xvimagesink.c:
+       * tests/check/elements/audiorate.c:
+       * tests/check/elements/decodebin.c:
+       * tests/check/elements/decodebin2.c:
+       * tests/check/elements/playbin.c:
+       * tests/check/elements/playbin2-compressed.c:
+       * tests/check/elements/playbin2.c:
+       * tests/check/elements/videoscale.c:
+         various: fix pad template leaks
+         https://bugzilla.gnome.org/show_bug.cgi?id=662664
+
+2011-09-07 16:04:14 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoradec.c:
+       * ext/theora/gsttheoradec.h:
+         theoradec: move the QoS logic to libgstvideo
+         https://bugzilla.gnome.org/show_bug.cgi?id=658241
+
+2011-09-05 13:56:05 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/video/video.c:
+       * gst-libs/gst/video/video.h:
+       * win32/common/libgstvideo.def:
+         libgstvideo: add a new API to handle QoS events and dropping logic
+         https://bugzilla.gnome.org/show_bug.cgi?id=658241
+
+2011-11-28 11:30:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         audioencoder: elaborate some documentation
+
+2011-11-28 11:28:06 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+         audiodecoder: add some documentation
+
+2011-11-21 14:26:54 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: really discard NULL decoded frame altogether
+         ... including any timestamp, rather than having that one influence base_ts.
+
+2011-11-28 10:55:39 +0100  Stefan Sauer <ensonic@google.com>
+
+       * ext/alsa/gstalsasrc.c:
+         alsasrc: style fix
+         Use timestamp==0 instead of mixing it with !timestamp style checks.
+
+2011-11-28 09:12:37 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+       * ext/alsa/gstalsasrc.c:
+         alsasrc: handle the case where the drivers don't supply timestamps
+         If highres-timestamp is 0, try lowres and if that fails fallback to system clock
+         timestamps.
+
+2011-11-01 15:21:54 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: set collectpads2 not to wait on sparse streams
+         https://bugzilla.gnome.org/show_bug.cgi?id=663174
+
+2011-11-25 15:35:39 +0100  Josep Torra <n770galaxy@gmail.com>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: make identiy silent
+
+2011-11-25 13:11:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/vorbis/Makefile.am:
+       * gst-libs/gst/audio/Makefile.am:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         audio: remove unstable API guards from the audio decoder and encoder base classes
+
+2011-11-25 12:58:22 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         docs: mention explicitly that playbin2 signals are emitted from a streaming thread
+
+2011-11-25 11:11:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Set the multiqueue limits to the playing limits after overrun too
+         We don't expect any new pads anymore and prerolling is finished now.
+
+2011-11-25 11:08:58 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
+         After preroll the multiqueue limits are still set to the preroll
+         limits if use-buffering is set to TRUE. In that case we only want
+         time limits on the multiqueue if upstream is seekable.
+
+2011-11-08 13:55:58 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: fix prerolling for low bitrate streams from hlsdemux
+         Such streams were detected as seekable, as the query on the typefind
+         element was testing the m3u8 file listing the actual streams, and
+         not going through the demuxer(s).
+         We now check for seekability for each multiqueue following a demuxer,
+         so the query will flow through the elements which might prevent seeking.
+         https://bugzilla.gnome.org/show_bug.cgi?id=647769
+
+2011-10-24 11:46:05 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: minor cleanup
+
+2011-09-27 16:45:26 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/riff/riff-ids.h:
+         libgstriff: add a couple tags that need skipping
+         Found in a sample in the wild, appears to be ID3 tag.
+         https://bugzilla.gnome.org/show_bug.cgi?id=660249
+
+2011-11-24 14:41:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         videorate: Rename ARG_ enums to PROP_
+         This is more consistent with other code and these are
+         properties anyway, not arguments
+
+2011-11-24 14:29:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+       * gst/videorate/gstvideorate.h:
+         videorate: Add property to force an output framerate
+         API: GstVideoRate:force-fps
+         Changing the framerate during playback is not possible
+         with a capsfilter downstream if upstream is not using
+         gst_pad_alloc_buffer(). In that case there's no way in
+         0.10 to signal to videorate that the preferred framerate
+         has changed.
+         This new property will force the output framerate to
+         a specific value and can be changed during playback.
+
+2011-11-24 12:38:54 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
+         We might need to add converters and worked in passthrough mode before.
+
+2011-11-24 12:37:58 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Override acceptcaps function for the two ghostpads
+         The ghostpad acceptcaps functions are not valid in this case because
+         we don't only accept the caps accepted by the target but could also
+         insert converters. Fixes bug #663892.
+
+2011-11-24 11:34:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+         playsinkaudioconvert: use-volume and use-converters are no construct-only properties anymore
+         Fixes bug #663893.
+
+2011-10-22 20:29:26 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: skip the second bisection when possible
+         If we already saw the keyframes that we need to find,
+         we do not need to bisect to find them.
+         This will always be the case for streams with audio only,
+         where each frame acts as a keyframe, but will occasionally
+         also happen for streams with video.
+         https://bugzilla.gnome.org/show_bug.cgi?id=662475
+
+2011-10-22 20:20:38 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggdemux.h:
+         oggdemux: improve push time seeking
+         Various tweaks to improve convergence, in particular for
+         the worst case, which is now cut in about half.
+         https://bugzilla.gnome.org/show_bug.cgi?id=662475
+
+2011-10-21 19:38:19 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggdemux.h:
+         oggdemux: gather some more stats about bisection
+         https://bugzilla.gnome.org/show_bug.cgi?id=662475
+
+2011-11-23 16:09:13 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisenc.c:
+         vorbisenc: do not accept 256 channels, 255 is the max vorbis supports
+
+2011-11-22 13:29:10 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: extract opus comments if available
+
+2011-11-22 13:15:33 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: recognize opus headers from data, not packet count
+         Opus streams outside of Ogg may not have headers, and oggstream
+         may be used by oggmux to mux an Opus stream which does not come
+         from Ogg - thus without headers.
+         Determining headerness by packet count would strip the first two
+         packets from such an Opus stream, leading to a very small amount
+         of audio being clipped at the beginning of the stream.
+
+2011-11-22 13:01:35 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: add some more debug info when determining start time
+
+2011-11-22 12:55:56 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: fix opus duration calculation
+
+2011-11-22 12:00:58 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: early out on headers when determining packet duration
+
+2011-11-21 17:03:21 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+       * ext/ogg/gstoggstream.h:
+         oggstream: account for opus pre-skip in granpos/time mapping
+
+2011-11-22 10:04:12 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: avoid removing children from bin twice
+         GstBin base class removes children in dispose, so we need to do the same.
+
+2011-11-19 16:06:09 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggstream.c:
+         ogg: add opus support
+
+2011-11-16 19:00:44 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisenc.c:
+         vorbisenc: reset tag setter interface when appropriate
+
+2011-11-16 19:00:30 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: invalidate format info when setup negotiation failed
+         ... which ensures nothing subsequently tries to slip past _chain
+         and into a possibly improperly setup subclass.
+
+2011-11-15 13:29:31 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: accept dropped buffers before we know the format
+         This allows flacdec to not emit audio for headers, while allowing
+         the base audio decoder to keep its timestamps in sync.
+
+2011-11-14 12:45:31 +0100  Robert Swain <robert.swain@gmail.com>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audio: Remove some unused variables
+
+2011-08-30 18:27:09 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst-libs/gst/rtp/gstrtcpbuffer.h:
+         rtcpbuffer: Add feedback message types from RFC 5104
+         These are Codec Control messages (CCM)
+         https://bugzilla.gnome.org/show_bug.cgi?id=658419
+
+2011-10-19 16:30:27 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: improve reverse playback
+         ... by doing some more (reverse) timestamp interpolating and
+         refactoring downstream pushing.
+         Fixes #661983.
+
+2011-11-13 13:18:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.h:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audio: add GST_AUDIO_INFO_IS_VALID macro and use in audio decoder base class
+         API: GST_AUDIO_INFO_IS_VALID
+
+2011-11-12 15:51:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * tests/examples/seek/jsseek.c:
+       * tests/examples/seek/seek.c:
+       * tests/icles/test-colorkey.c:
+       * tests/icles/test-xoverlay.c:
+         tests: require Gtk+ 3.0 for examples and Gtk-based test apps
+         The Gtk+ dependency is entirely optional, we're just not
+         supporting Gtk+ 2.x any longer.
+
+2011-11-07 17:36:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/Makefile.am:
+         audio: fix order in LIBADD
+         Local libs must come first.
+
+2011-11-11 13:32:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: fix visualisations again
+         Make caps writable before merging other caps into them.
+
+2011-11-10 15:55:31 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: make unsigned properties unsigned, not signed
+
+2011-11-09 00:36:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * common:
+       * configure.ac:
+         configure: suppress warnings about unused variables if debugging system is disabled in core
+         https://bugzilla.gnome.org/show_bug.cgi?id=662952
+
+2011-10-27 14:48:52 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: continue processing text when silent
+         This prevents playback wegding when text buffers are
+         left to pile up.
+         https://bugzilla.gnome.org/show_bug.cgi?id=662829
+
+2011-11-08 00:16:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * win32/common/libgstaudio.def:
+         win32: update .def file for new audiosink API
+         API: gst_base_audio_sink_get_alignment_threshold()
+         API: gst_base_audio_sink_set_alignment_threshold()
+         API: gst_base_audio_sink_get_discont_wait()
+         API: gst_base_audio_sink_set_discont_wait()
+
+2011-11-07 23:41:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/seek/seek.c:
+         examples: sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS in seek test utility
+         https://bugzilla.gnome.org/show_bug.cgi?id=630497
+
+2011-11-07 23:05:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/pango/gsttextoverlay.c:
+       * gst-libs/gst/audio/gstaudioiec61937.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.h:
+       * gst-libs/gst/video/video.c:
+         docs: fix up some Since: markers
+
+2011-11-04 10:34:27 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: fix speed level failure test
+         It was testing the opposite of what it thought it was.
+         https://bugzilla.gnome.org/show_bug.cgi?id=663390
+
+2011-11-04 10:57:40 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: make logically static const data just so
+         https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 10:58:15 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: use th_packet_iskeyframe instead of peeking at bits
+         https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 10:59:00 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: trivial comment typos fixes
+         https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 10:59:12 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: warn when trying to set an ignored obsolete property
+         https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 11:10:46 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: refuse to get to READY if the encoder was disabled
+         https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-10-18 17:58:49 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: survive skeleton finding length behind our backs in push mode
+         In push mode, we determine duration by doing a seek to the end of the
+         stream. However, a skeleton stream with an index will cause the duration
+         to be known already, and we end up never setting the push_time_duration
+         variable which we use to know duration has been determined.
+         https://bugzilla.gnome.org/show_bug.cgi?id=662049
+
+2011-10-05 15:29:54 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * tests/check/gst-plugins-base.supp:
+         valgrind: add ALSA leaks fixed by snd_config_update_free_global
+         If they go when calling snd_config_update_free_global, they're
+         not really bug leaks, but more like intentional ones we don't
+         want to get told about.
+         https://bugzilla.gnome.org/show_bug.cgi?id=615342
+
+2011-05-02 13:05:28 +0300  Felipe Contreras <felipe.contreras@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.h:
+         baseaudiosink: make discont-wait configurable
+         Now we can configure how much time to wait before deciding that a
+         discont has happened.
+         Also, adds getter and setter to allow derived implementations to set
+         this value upon construction.
+         Suggestions and several improvements by Havard Graff.
+         Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
+
+2011-11-07 11:31:47 +0100  Felipe Contreras <felipe.contreras@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: delay the resyncing of timestamp vs ringbuffertime
+         A common problem for audio-playback is that the timestamps might not
+         be completely linear. This is specially common when doing streaming over
+         a network, where you can have jittery and/or bursty packettransmission,
+         which again will often be reflected on the buffertimestamps.
+         Now, the current implementation have a threshold that says how far the
+         buffertimestamp is allowed o drift from the ideal aligned time in the
+         ringbuffer. This was an instant reaction, and ment that if one buffer
+         arrived with a timestamp that would breach the drift-tolerance, a resync
+         would take place, and the result would be an audible gap for the
+         listener.
+         The annoying thing would be that in the case of a "timestamp-outlier",
+         you would first resync one way, say +100ms, and then, if the next
+         timestamp was "back on track", you would end up resyncing the other way
+         (-100ms) So in fact, when you had only one buffer with slightly off
+         timestamping, you would end up with *two* audible gaps. This is the
+         problem this patch addresses.
+         The way to "fix" this problem with the previous implementation, would
+         have been to increase the "drift-tolerance" to a value that was greater
+         than the largest timestamp-outlier one would normally expect.  The big
+         problem with this approach, however, is that it will allow normal
+         operations with a huge offset timestamp vs running-time, which is
+         detrimental to lip-sync. If the drift-tolerance is set to 200ms, it
+         basically means that lip-sync can easily end up being off by that much.
+         This patch will basically start a timer when the first breach of
+         drift-tolerance is detected. If any following timestamp for the next n
+         nanoseconds gets "back on track" within the threshold, it has basically
+         eliminated the effect of an outlier, and the timer is stopped.  If,
+         however, all timestamps within this time-limit are breaching the
+         threshold, we are probably facing a more permanent offset in the
+         timestamps, and a resync is allowed to happen.
+         So basically this patch offers something as rare as both higher
+         accuracy, it terms of allowing smaller drift-tolerances, as well as much
+         smoother, less glitchy playback!
+         Commit message and improvments by Havard Graff.
+         Fixes bug #640859.
+
+2011-11-07 11:18:34 +0100  Felipe Contreras <felipe.contreras@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: rename some variables
+
+2011-05-21 16:16:42 +0300  Felipe Contreras <felipe.contreras@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: use gst_util_uint64_scale_int when appropriate
+         It's probably safer this way.
+
+2011-05-21 15:49:20 +0300  Felipe Contreras <felipe.contreras@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.h:
+         baseaudiosink: split drift-tolerance into alignment-threshold
+         So that drift-tolerance is used for clock slaving resync, and
+         alignment-threshold is for timestamp drift.
+
+2011-05-21 16:02:36 +0300  Felipe Contreras <felipe.contreras@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: trivial comment fixes
+         Some found by Havard Graff.
+         Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
+
+2011-11-04 10:37:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: Use gst_caps_merge() instead of gst_caps_union()
+         This keeps the caps order and is more efficient.
+
+2011-11-04 10:36:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Use gst_caps_merge() instead of gst_caps_union()
+         This keeps the caps order and is more efficient.
+
+2011-11-03 21:35:38 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+       * gst-libs/gst/tag/Makefile.am:
+         Add missing default include paths to androgenizer call
+         Fixes building tag/ with Android's NDK
+
+2011-11-03 14:10:31 +0200  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Post all source pads in stream-topology messages as "element-srcpad" values
+         This allows us to easily get ahold of all pads on a stream-topology message, including
+         pre-decoder ones, while "pad" only gives us access to the raw pads (as used by discoverer).
+
+2011-10-20 13:04:52 +0300  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Use existing "caps" quark for one of the structure sets
+
+2011-11-03 10:07:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Don't add identity multiple times
+
+2011-10-19 14:13:39 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsink: send flush start/stop event when we switch elements
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-19 14:13:30 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkconvertbin.c:
+       * gst/playback/gstplaysinkconvertbin.h:
+         playsink: re-add identity where appropriate
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-19 14:12:01 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+         playsink: lock the new {set,get}_property functions
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 23:14:54 +0000  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Be more consistent with ghostpad targets
+         Set up targets on READY->PAUSED state change to passthrough by
+         default. This prevents the targets from being unset on the
+         first run, while the 'raw' variable would mean that some
+         target is set.
+
+2011-10-17 22:41:49 +0000  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: No need to remove the identity
+         The identity element should be handled by the GstBin's cleanup,
+         removing it on the remove_elements function might remove it
+         too soon, as this function can be called directly from playsink
+
+2011-10-17 22:41:11 +0000  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsinkconvertbin: Adding some debug messages
+         Adds a couple debug messages and some g_assert to make debugging
+         easier
+
+2011-10-17 22:02:03 +0000  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst/playback/gstplaysinkvideoconvert.c:
+         playsink-videoconvert: Fix warning on build
+         Remove unused variable
+
+2011-10-17 21:05:30 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkaudioconvert.h:
+       * gst/playback/gstplaysinkconvertbin.c:
+       * gst/playback/gstplaysinkconvertbin.h:
+       * gst/playback/gstplaysinkvideoconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.h:
+         playsink: handle after-the-fact changes in converters/volume booleans
+         The playsink was nastily poking a boolean in the structure.
+         Make those booleans properties, so we are told when they change,
+         and rebuild the conversion bin when they do.
+         Some cleanup to go with it too.
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 18:43:06 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsink: handle NULL cached caps in getcaps
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 18:06:00 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsink: consider both passthrough and converter caps in getcaps
+         Since we can switch between both modes.
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 17:54:27 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+       * gst/playback/gstplaysinkconvertbin.h:
+         playsink: cache inner converter bin caps
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 17:26:48 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsink: keep both raw and non raw pipelines at all times
+         and switch between them as needed.
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 17:29:50 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkconvertbin.c:
+         playsink: only compare against the media type we expect
+         ie, audio/x-raw- for audio, video/x-raw- for video.
+         Add a trailing - to be more specific. I doubt there's anything
+         like audio/x-rawhide or something, but you never know.
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 16:55:30 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/Makefile.am:
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkaudioconvert.h:
+       * gst/playback/gstplaysinkconvertbin.c:
+       * gst/playback/gstplaysinkconvertbin.h:
+       * gst/playback/gstplaysinkvideoconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.h:
+         playsink: refactor the converter bins since they are almost identical
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 13:00:05 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkaudioconvert.h:
+       * gst/playback/gstplaysinkvideoconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.h:
+         playsink: fix passthrough mode (hopefully)
+         The code was doing counterintuitive rewiring of pads when the
+         bin did not contain any elements. We now add an identity element
+         in that case, which makes it simpler, and should fix the AC3
+         passthrough mode when using pulseaudio (but I don't see the bug
+         here so can't test).
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-07 11:16:44 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.c:
+         playsink: handle NULL ghost pad target
+         For the src pad anyway.
+         https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-11-03 09:56:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+         Revert "playsinkaudioconvert: Fix warning when there is no target pad yet"
+         This reverts commit f35c51c14915729f0fdf2b348f351ea7e81027cc.
+         Better patch coming soon.
+
+2011-10-28 10:07:42 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: Remove obsolete #include
+
+2011-11-02 23:33:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/design/draft-subtitle-overlays.txt:
+         docs: add draft for subtitle overlays to design docs
+         Main purpose is to provide a generic way to make subtitles work on
+         top of non-raw video (vaapi, vdpau, etc.).
+
+2011-11-02 15:31:11 -0400  Colin Walters <walters@verbum.org>
+
+       * common:
+       * configure.ac:
+         configure: Allow setting GLIB_EXTRA_CFLAGS
+         Similar to gstreamer commit bb2020b1e794210cf7d44c6626122f611016a620
+
+2011-10-30 20:00:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: don't use soon-to-be-deprecated gst_filter_run()
+
+2011-10-28 13:58:47 +0200  Mersad Jelacic <mersad@axis.com>
+
+       * gst-libs/gst/audio/gstaudiosink.c:
+         audiosink: avoid deadlocking audioringbuffer thread
+         ... when it goes into wait for ringbuffer starting just after such
+         having been signalled.
+         Fixes #661738.
+
+2011-04-26 22:20:29 +0200  Philip Jägenstedt <philipj@opera.com>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: extract SOF marker in jpeg typefinder
+         The SOF types are defined by http://www.w3.org/Graphics/JPEG/itu-t81.pdf
+         This is needed to make sure that we plug a jpeg decoder that
+         can handle the type of JPEG we have (e.g. lossless JPEG)
+         https://bugzilla.gnome.org/show_bug.cgi?id=556648
+
+2009-08-10 01:48:29 +0000  Thiago Santos <thiagoss@embedded.ufcg.edu.br>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggmux.h:
+         oggmux: port to gstcollectpads2
+
+2011-10-27 23:39:31 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * tests/examples/Makefile.am:
+         build: Fix build for moved volume subdir
+
+2011-10-27 09:51:46 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * Makefile.am:
+       * configure.ac:
+       * tests/examples/Makefile.am:
+       * tests/examples/audio/.gitignore:
+       * tests/examples/audio/Makefile.am:
+       * tests/examples/audio/volume.c:
+       * tests/examples/volume/.gitignore:
+       * tests/examples/volume/Makefile.am:
+       * tests/examples/volume/volume.c:
+         volume: move volume example to audio
+
+2011-10-27 09:42:36 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * tests/examples/audio/Makefile.am:
+         audio examples. fix the makefile
+
+2011-10-27 09:33:55 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * tests/examples/volume/volume.c:
+         volume: make global vars static
+
+2011-10-27 09:33:01 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * tests/examples/audio/.gitignore:
+       * tests/examples/audio/Makefile.am:
+       * tests/examples/audio/audiomix.c:
+         audiomix: add a simple audiomix example
+
+2011-10-25 20:04:06 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+         playsinkaudioconvert: Fix warning when there is no target pad yet
+
+2011-10-13 11:34:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Link elements before testing if they can reach the READY state
+         This is made possible by filtering errors. This is required to let
+         harware accelerated element query the video context. The video context
+         is used to determine if the HW is capable, and thus if the element is
+         supported or not.
+         Fixes bug #662330.
+
+2011-10-21 21:57:17 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+       * gst/playback/gstplaybasebin.c:
+         playbasebin: remove avoidable call to gst_object_set_name
+
+2011-10-21 21:41:03 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: remove avoidable call to gst_object_set_name
+
+2011-10-21 21:39:01 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+       * gst/audioconvert/Makefile.am:
+       * gst/audioconvert/channelmixtest.c:
+         audioconvert: bury dead test program
+
+2011-10-20 10:13:46 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+       * Android.mk:
+         Disable ext/vorbis for the android ndk build
+         It currently makes the build fail. Idea is to enable
+         it back again once its building problems get sorted
+         out.
+
+2011-10-19 19:44:06 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: fix leaks of pad templates and internal proxy pads
+
+2011-10-19 19:37:07 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: fix leak of element reference through pad block
+         If the pad block never happens because there is no data flow at all, the
+         callback is never fired and the reference is never released. This causes a
+         reference cycle between the pad and element, so valgrind is not very vocal
+         about it (memory is still reachable).
+
+2011-10-18 21:42:21 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: having gather queue contents implies some draining is in order
+         ... which ensures e.g. processing and sending last fragment of reverse playback
+         downstream at EOS.
+
+2011-10-19 15:28:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisdec.c:
+         vorbisdec: do not try to read past the buffer array
+         https://bugzilla.gnome.org/show_bug.cgi?id=662108
+
+2011-10-18 21:40:54 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisdec.c:
+         vorbisdec: only finish header packet frame if received in-stream
+         ... rather than scaring audiodecoder with a frame extracted from caps.
+         Fixes #662108 (partially).
+
+2011-10-19 10:41:31 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * sys/ximage/ximagesink.c:
+       * sys/xvimage/xvimagesink.c:
+         x(v)imagesink: make it more clean that "synchronous" props are not for avsync
+
+2011-10-19 00:32:13 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: fix unused variable compiler warning if debugging in core is disabled
+         https://bugzilla.gnome.org/show_bug.cgi?id=660150
+
+2011-10-18 13:00:29 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: fix event unref in (rare) error case
+
+2011-10-07 17:41:32 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: fire drained signal where appropriate
+         This will allow playbin2 to send its about-to-finish signal.
+         Taken out (apparently by mistake) by the EOS rewrite in july.
+         https://bugzilla.gnome.org/show_bug.cgi?id=661202
+
+2011-10-16 11:32:41 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not retry seeking indefinitely
+         https://bugzilla.gnome.org/show_bug.cgi?id=661897
+
+2011-10-10 13:11:59 +0200  Brian Cameron <brian.cameron@oracle.com>
+
+       * gst/videotestsrc/Makefile.am:
+         videotestsrc: fix LDADD missing GST_LIBS
+
+2011-10-09 21:19:32 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/vorbis/gstvorbisenc.c:
+       * ext/vorbis/gstvorbisenc.h:
+         vorbisenc: only push header buffers following initial events
+
+2011-10-09 16:48:18 +0200  Alessandro Decina <alessandro.d@gmail.com>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audioencoder: fix compile warning
+
+2011-10-08 20:17:43 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * tests/check/pipelines/vorbisenc.c:
+         tests: vorbisenc: adjust discontinuity checking to audioencoder behaviour
+         ... which still detects gaps and marks DISCONT, depending on configuration,
+         but may come up with somewhat different timestamps when crossing the gap.
+
+2011-10-08 20:16:04 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * tests/check/pipelines/vorbisdec.c:
+         tests: vorbisdec: properly configure audiodecoder when requiring perfect ts
+
+2011-10-08 20:14:27 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * tests/check/elements/vorbisdec.c:
+         tests: vorbisdec: remove empty header buffer check
+         ... as empty buffers are discarded, and header buffers are now
+         also optionally retrieved from caps anyway.
+
+2011-10-08 20:13:11 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: only resync to upstream upon discont in perfect ts mode
+         ... as documented, where discont is marked here if tolerance has been
+         exceeded.
+
+2011-10-08 20:11:22 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: fix timestamp tolerance handling
+
+2011-10-08 20:09:09 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: handle empty input by discarding
+
+2011-10-07 14:52:33 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/vorbis/Makefile.am:
+       * ext/vorbis/gstvorbisdec.c:
+       * ext/vorbis/gstvorbisdec.h:
+         vorbisdec: port to audiodecoder
+
+2011-10-07 14:33:04 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: make upstream queries MT-safe
+
+2011-10-07 14:32:33 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: make upstream queries and events MT-safe
+
+2011-10-05 15:43:35 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/vorbis/Makefile.am:
+       * ext/vorbis/gstvorbisenc.c:
+       * ext/vorbis/gstvorbisenc.h:
+         vorbisenc: port to audioencoder
+
+2011-10-06 18:21:29 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * tests/check/elements/audiotestsrc.c:
+         tests: actually test what we said we would
+         All tests were testing the default sine wave
+         https://bugzilla.gnome.org/show_bug.cgi?id=661106
+
+2011-10-06 18:20:32 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+         audiotestsrc: add missing break
+         And make violet noise usable
+         https://bugzilla.gnome.org/show_bug.cgi?id=661105
+
+2011-10-06 15:38:49 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.c:
+         playsink: fix caps negotiation through the new convenience bins
+         The bins' getcaps was bypassing the inner elements, and thus
+         failing to account for the caps transformations they allow,
+         which caused YUV video pipelines to fail with ximagesink, which
+         does not support YUV, even though the convenience bin includes
+         a colorspace converter for just this purpose.
+         https://bugzilla.gnome.org/show_bug.cgi?id=660816
+
+2011-10-06 11:53:26 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: fix mismatch between video/ and video/x-dvd-subpicture
+         The new code was checking for a prefix, and would find video/
+         first. Check in two passes, first checking for a perfect match,
+         and falling back to a prefix check if nothing was found.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657261
+
+2011-10-04 21:17:37 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Re-enable parsers
+         Re-enable parsers in encodebin to allow more passthrough scenarios
+         to work. Specially the ones that require changing 'stream formats'.
+         i.e. h264 in mkv to mpegts.
+
+2011-10-05 12:45:19 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Add audio- and text-sink props
+
+2011-10-04 23:09:42 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+         auditestsrc: indent fix
+
+2011-10-04 16:22:55 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Add video-sink property
+         The video-sink property allows manual specification via g_object_set ()
+         of the video sink element to be used.
+
+2011-10-03 15:20:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Minor cleanup of decoder-sink compatibility checking code
+
+2011-09-30 12:29:34 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Make sure that the decoders we plug are compatible with the fixed sink
+         The fact that a decoder is not compatible with the fixed sink
+         is currently happenning in the case where we have hardware accelerated
+         video decoders on the system (especially vaapi elements that are actually plugged),
+         and the user is providing a sink that doesn't support the surface.
+         A simple example that shows how it used to crash on a system where gstreamer-vaapi
+         is installed:
+         gst-launch playbin2 video-sink=xvimagesink uri=/codec/supported/by/vaapi
+         What we are now doing in this case, is avoid using the accelerated
+         decoder and plug a "normal" decoder instead (if avalaible).
+         This commit doesn't handle the case where we have hardware accelerated
+         demuxing.
+
+2011-02-18 11:48:37 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/pbutils/encoding-profile.c:
+       * gst-libs/gst/pbutils/encoding-profile.h:
+       * win32/common/libgstpbutils.def:
+         encoding-profile: add a function to create a profile from a discoverer info
+         Only A/V streams are added at the moment, there does not seem to be
+         a similar way to add other streams (eg, subtitles).
+         https://bugzilla.gnome.org/show_bug.cgi?id=642878
+
+2011-09-27 00:26:29 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+       * ext/alsa/gstalsasrc.h:
+         alsasrc: fail gracefully when ALSA does not give timestamps
+         https://bugzilla.gnome.org/show_bug.cgi?id=660170
+
+2011-10-03 10:55:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Use a TIME limit for pre-rolling in live streams and not in non-live streams
+         Fixes bug #647769 for real.
+
+2011-10-01 01:05:00 +0100  Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: add YV12 support
+         Basically the same as I420, just with chroma planes swapped.
+         https://bugzilla.gnome.org/show_bug.cgi?id=660604
+
+2011-09-30 09:44:12 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Fix typo on formatter adding condition
+         The condition is if the muxer doesn't have tag setter *and* isn't
+         a formatter itself. Any of those two conditions makes the muxer
+         good enough to not need a formatter.
+
+2011-09-28 15:41:16 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: really push pending events
+
+2011-09-28 14:32:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: remove more tags from upstream tag events such as bitrate tags
+         We want to remove all codec specific tags.
+
+2011-09-28 01:56:42 +0300  Raimo Järvi <raimo.jarvi@gmail.com>
+
+       * gst/videotestsrc/videotestsrc.c:
+         videotestsrc: Fix compiler warning on 64 bit mingw-w64
+         Fixes bug #660304.
+
+2011-09-28 01:11:30 +0300  Raimo Järvi <raimo.jarvi@gmail.com>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Fix compiler warnings on 64 bit mingw-w64
+         Fixes bug #660301.
+
+2011-09-27 16:18:05 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: only got_data if we really got some
+         ... which avoids going loopy with casual subclass.
+
+2011-09-27 16:57:45 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: really push pending events
+
+2011-09-27 16:16:54 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: send tag event after pending events
+         ... which probably includes a pending newsegment event.
+
+2011-09-27 16:16:29 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: protect pending_events with proper lock
+
+2011-09-27 15:31:20 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: clean up some documentation
+
+2011-09-27 00:32:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: minor docs fix
+
+2011-09-26 16:36:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: Adjust for GstAudioEncoder API changes
+
+2011-09-26 16:36:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * win32/common/libgstaudio.def:
+         win32: Adjust for GstAudioEncoder API changes
+
+2011-09-26 16:35:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: Improve set_frame_sample_{min,max} documentation
+
+2011-09-26 16:22:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+         audiodecoder: Fix thread safety issues if both pads have different streaming threads
+
+2011-09-26 16:19:42 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: Delay sending of serialized events to finish_frame()
+
+2011-09-26 16:02:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         Revert "audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code"
+         This reverts commit 11e375486e07cfa0686a97b5cf6110909b3a828c.
+         GST_BOILERPLATE() can't define an abstract type and
+         G_DEFINE_ABSTRACT_TYPE() does not pass the class struct to
+         the instance_init function and there's no way to get the
+         class struct of the current type in instance_init().
+
+2011-09-26 15:59:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         audioencoder: Add support for requesting a minimum and maximum number of samples per frame
+         This extends the special case of a fixed number of samples per frame
+         that was supported before already.
+
+2011-09-26 15:45:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         audioencoder: Fix thread safety issues if both pads have different streaming threads
+
+2011-09-26 15:42:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: Delay sending of serialized events to finish_frame()
+         This makes sure that the caps are already set before any serialized
+         events are sent downstream.
+
+2011-09-26 15:34:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code
+
+2011-09-26 15:14:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         audioencoder: add some tag handling convenience help
+
+2011-09-26 14:48:55 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: provide CODEC/AUDIO_CODEC handling
+
+2011-09-26 13:42:38 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: filter AUDIO_CODEC/CODEC tags from passing tag events
+
+2011-09-25 15:31:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefindfunctions: backport some const-ifications from 0.11 branch
+         To keep code identical as much as possible between the two branches,
+         for easier merging.
+
+2011-09-25 15:24:56 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefindfunctions: fix indentation
+
+2011-09-23 17:50:31 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Avoid unnecessary read only caps copy
+
+2011-09-22 15:38:51 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: proxy some more optional downstream caps fields to upstream
+
+2011-09-22 15:38:22 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: changed is verily the opposite of equal
+
+2011-09-22 15:37:07 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudioencoder.c:
+         audioencoder: prevent crashing when comparing to a freshly inited GstAudioInfo
+
+2011-09-22 15:36:22 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.h:
+         audio: some more accessor macros for GstAudioInfo
+
+2011-09-22 15:34:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+         audiodecoder: fix documentation typo
+
+2011-09-19 18:32:26 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * tests/check/elements/videorate.c:
+         videorate: Add tests for the max-rate case
+
+2011-09-19 18:31:07 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * tests/check/elements/videorate.c:
+         videorate: Print which caps didn't match up
+
+2011-09-19 18:26:04 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+       * gst/videorate/gstvideorate.h:
+         videorate: Add a max-rate property
+         In various use-case you want to dynamically change the framerate (e.g.
+         live streams where the available network bandwidth changes). Doing this
+         via capsfilters in the pipeline tends to be very cumbersome and racy,
+         using this property instead makes it very painless.
+
+2011-09-01 17:05:23 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * tests/check/elements/videorate.c:
+         videorate: Add test for caps negotiation
+
+2011-09-01 16:47:49 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         videorate: Add more strict caps negotiation
+         When in drop-only mode we can never provide a framerate that is higher
+         then the input, so let the caps negotiation reflect this.
+
+2011-09-20 13:35:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         videorate: don't unref event we don't own
+         http://bugzilla.gnome.org/show_bug.cgi?id=659562
+
+2011-09-20 14:04:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Only check if this is a discarded type if we have fixed caps
+         For unfixed caps we will get here again later when the caps are fixed.
+
+2011-09-20 14:03:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Only call autoplug-continue with fixed caps
+         With unfixed caps we can't reliably decide if the final caps
+         are going to be "raw" (e.g. supported by a sink) or not.
+         We will get here again later when the caps are fixed.
+
+2011-09-20 13:45:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/decodebin2.c:
+         decodebin2: Fix unit test by strictly implementing parser behaviour instead of relying on basetransform
+
+2011-01-13 15:35:30 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggstream.c:
+         oggstream: only use information from skeleton if we have nothing better
+         The codec setup headers are a lot more likely to have correct information,
+         especially as it's easy to remux a skeleton in a file where streams don't
+         have the same parameters (I've even seen a file with two skeletons).
+         Still, this is useful in the case we have a codec we can't decode, so we
+         can at least (theoretically) convert granpos to time, so we discard this
+         information if the codec setup has already provided it.
+         This fixes playback on (at lesat) the original archive.org encoding of
+         "The Night of the Living Dead" (now replaced by another encoding).
+         https://bugzilla.gnome.org/show_bug.cgi?id=612443
+
+2011-09-19 14:16:19 +0200  Age Bosma <agebosma@gmail.com>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.h:
+         discoverer: Don't use gtk-doc /* < ... > */ style comments for signals
+         The /*< ... >*/ style is only used for public|protected|private,
+         signal comments use /* signals */. This prevents the some code
+         parsers/binding generators to be confused by the comment.
+
+2011-09-19 14:02:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: Get the target of the video sinkpad, not the target sinkpad in the video setcaps handler
+
+2011-08-18 15:13:23 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Initialize variable correctly
+         If subdrained isn't initialized to FALSE then a chain might think
+         that its group is drained when in fact it's not and this can cause
+         a switch too early or even cause a deadlock.
+
+2011-07-28 16:44:33 +0000  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Rewrite EOS-handling code
+         This is now really threadsafe and improves switching
+         between different groups.
+
+2011-09-19 11:53:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder
+         Fixes bug #658846.
+
+2011-08-01 07:54:02 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/rtsp/gstrtspdefs.c:
+       * gst-libs/gst/rtsp/gstrtspdefs.h:
+         rtspdefs: add RTCP-Interval header
+
+2011-09-19 11:24:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: Implement support for switching between raw and non-raw video streams
+
+2011-09-19 09:34:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: Protect against accessing the NULL parent of the pads during shutdown
+         Fixes bug #658901.
+
+2011-09-16 20:14:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: remove superfluous check in newsegment event handler
+         If we get a newsegment event from upstream, we can be quite
+         sure we're not operating pull-based.
+
+2011-09-16 20:11:56 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: minor printf format fix
+
+2011-09-14 12:23:19 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: fix wedge when seeking twice quickly in push mode
+         This could happen when testing with navseek, and pressing
+         right and left at roughly the same time. The current chain
+         is temporarily moved away, and this caused the flush events
+         not to be sent to the source pads, which would cause the
+         data queues downstream to reject incoming data after the
+         seek, and shut down, wedging the pipeline.
+         Now, I can't really decide whether this is a nasty steaming
+         hack or a good fix, but it certainly does fix the issue, and
+         does not seem to break anything else so far.
+         https://bugzilla.gnome.org/show_bug.cgi?id=621897
+
+2011-08-13 14:18:56 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggdemux.h:
+         oggdemux: implement push mode seeking
+         This patch implements seeking in push mode (eg, over the net)
+         in Ogg, using the double bisection method.
+         As a side effect, it also fixes duration determination of network
+         streams, by seeking to the end to check the actual duration.
+         Known issues:
+         - Getting an EOS while seeking stops the streaming task, I can't
+         find a way to prevent this (eg, by issuing a seek in the event
+         handler).
+         - Seeking twice in a VERY short succession with playbin2 fails
+         for streams with subtitles, we end up pushing in a dataqueue
+         which is flushing. Rare in normal use AFAICT.
+         - Seeking is slow on slow links - byte ranges guesses could be
+         made better, decreasing the number of required requests
+         - If no granule position is found in the last 64 KB of a stream,
+         duration will be left unknown (should be pretty rare)
+         https://bugzilla.gnome.org/show_bug.cgi?id=621897
+
+2011-09-15 22:04:56 +0200  Alessandro Decina <alessandro.d@gmail.com>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: fix compiler warning
+         Remove a check for gchar >= 128
+
+2011-09-15 16:47:26 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * gst/adder/gstadder.c:
+         adder: don't access the event after pushing
+         Fixes valgrind warnings.
+
+2011-09-15 14:27:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         Revert "playbin2: autoplug sink if stream is incompatible to the configured one"
+         This reverts commit b0b4e286c8cde2e79a959a444a2c68e99c3f29c6.
+         We agreed that the previous (pre-.35) behaviour is broken and a bug and the
+         current behaviour is correct, deterministic and allows the application to
+         handle stuff properly while the old behaviour can't be handled properly by
+         applications and just worked in some applications by luck.
+         The solution to the problem that was solved by relying on the old, broken
+         behaviour would be, to make decodebin2/playbin2 more aware of decoders and
+         improve the autoplugging of decoders by considering the caps supported by the
+         sink instead of just using something with the highest rank.
+         See bug #656923.
+
+2011-09-15 09:23:54 +0200  Josep Torra <n770galaxy@gmail.com>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: autoplug sink if stream is incompatible to the configured one
+         Fixes regression since 0.10.33 where sinks that can cope with non raw
+         caps or custom caps are not autoplugged if there's a sink configured
+         with the properties video-sink and audio-sink which cannot handle
+         the stream. This change checks for compatibility on the configured one
+         and use it if success. Otherwhise it tries with the found factories.
+
+2011-08-13 14:14:19 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not propagate discontinuities in sparse streams
+         The first packet of a sparse stream may arrive after an initial
+         delay in the stream. If ogg_stream_packetout reports a discontinuity
+         in a sparse stream, do not propagate it to other streams in the
+         chain unnecessarily.
+         https://bugzilla.gnome.org/show_bug.cgi?id=621897
+
+2011-09-12 15:48:59 +0200  Josep Torra <n770galaxy@gmail.com>
+
+       * gst/playback/gstplaysink.c:
+         Revert "playsink: only add text overlay if vido sink also accepts raw caps"
+         This reverts commit a22faad18a73a27a2a0c903748c1a355df4d8c13. Instead
+         of disabling subtitles completelly when video stream have custom caps,
+         just let the sutbtileoverlay cope with them as now it's able to.
+
+2011-09-12 15:46:46 +0200  Josep Torra <n770galaxy@gmail.com>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: gracefully handle non raw video streams
+         Implement handling of non raw video streams by avoiding colorspace
+         elements and autoplugging a compatible renderer if available. Fallback
+         to passthrough if no compatible renderer is found.
+
+2011-09-12 15:10:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: try to catch malformed URIs
+         Only log in debug log for now, since the check is a bit
+         half-hearted, its purpose is mostly to make sure people
+         use gst_filename_to_uri() or g_filename_to_uri().
+         https://bugzilla.gnome.org/show_bug.cgi?id=654673
+
+2011-09-12 19:53:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/tag.h:
+         docs: minor addition to GST_TAG_ID3V2_HEADER_SIZE docs
+
+2011-09-11 14:22:59 -0400  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: Fix descriptions of properties
+
+2011-09-10 18:30:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosrc.c:
+         baseaudiosrc: don't try to fixate "width" field for alaw/mulaw
+         Fixes warning when trying to fixate e.g. pulsesrc ! audio/x-alaw ! fakesink.
+
+2011-09-09 13:10:13 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/design/design-decodebin.txt:
+         docs: fix some typos in the decodebin design document
+
+2011-09-09 13:07:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/interfaces/colorbalance.c:
+         colorbalance: add some guards to interface methods
+         https://bugzilla.gnome.org/show_bug.cgi?id=658584
+
+2011-09-09 12:07:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: recognize Asylum modules
+         Note that there is already a AMF detection for a different
+         magic, I'm not sure if that's a different format with the
+         same initials or not. AMF is used for a few different formats
+         (including video), so...
+         This fixes playbin2 playing Asylum modules.
+         https://bugzilla.gnome.org/show_bug.cgi?id=658514
+
+2011-08-31 20:51:17 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: Improve subrip type check regex
+         This patch prevents timestamp like "1 1:00:00", which would have been seen
+         as hour 101 by our parser, and allow single digit hour, minute and seconds
+         as it's already supported by the parser, and also by other implementation
+         like in mplayer. This fixes bug 657872.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657872
+
+2011-09-08 14:46:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * docs/design/design-decodebin.txt:
+         decodebin: Update design documentation about how Parser/Converter are handled
+
+2011-09-08 13:25:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         Revert "decodebin2: Do a subset check before actually using a factory"
+         This reverts commit 50a88396ae6d54a83a10e7d2efd551d39033148e.
+         See bug #658541.
+
+2011-09-07 16:44:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/decodebin2.c:
+         decodebin2: Don't use bufferalloc in the test elements
+         This will cause not-linked errors that usually don't happen
+         because normal decoders/parsers will set srcpad caps before
+         allocating buffers from downstream.
+
+2011-09-07 16:43:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Make sure to fixate Parser/Converter caps before continuing autoplugging
+
+2011-09-07 16:04:43 +0200  Josep Torra <n770galaxy@gmail.com>
+
+       * gst/playback/gstplaysink.c:
+         playsink: only add text overlay if vido sink also accepts raw caps
+         Fixes regression, pipeline fails with not negotiated, on media
+         containing subtitles when decoder/sink with custom caps is used.
+
+2011-09-07 14:19:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Intersect the factory caps with the current caps for the capsfilter
+         Otherwise we'll include many incompatible caps in the capsfilter that
+         will only slow down negotiation.
+
+2011-09-07 14:07:00 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * docs/libs/Makefile.am:
+       * docs/plugins/Makefile.am:
+         docs: cleanup makefiles
+         Remove commented out parts that we don't need. Remove "the wingo addition" - no
+         so useful after all. Narrow down file-globs for plugin docs.
+
+2011-09-07 14:04:10 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * gst/audiotestsrc/gstaudiotestsrc.h:
+         docs: add two mising enum docs
+
+2011-09-07 14:10:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/audiorate.c:
+         audiorate: Use complete audio caps, including the endianness field
+
+2011-09-07 12:32:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: fix element factory refcounting
+         g_value_get_object() does not give us our own ref.
+         Fixes "Trying to dispose object "flacparse", but it still has a parent "registry0".
+         You need to let the parent manage the object instead of unreffing the object directly."
+         and similar warnings.
+         https://bugzilla.gnome.org/show_bug.cgi?id=658416
+
+2011-09-07 11:06:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: do not automatically override quality when using target bitrate
+         If both quality and bitrate are set, libtheora will try to meet
+         both constraints, causing it to prefer emitting a smaller number
+         of good frames, to emitting the full number of frames that would
+         not meet the requested quality. This causes a slideshow effect
+         when the bitrate is low and the quality is high. And the default
+         theoraenc is high (48/63).
+         So only set quality when it is requested, and leave it unset
+         otherwise.
+         https://bugzilla.gnome.org/show_bug.cgi?id=658443
+
+2011-09-06 21:24:33 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From a39eb83 to 11f0cd5
+
+2011-09-06 19:18:27 +0100  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+       * gst-plugins-base.spec.in:
+         Add latest files to spec file
+
+2011-09-06 20:13:30 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * docs/libs/Makefile.am:
+         docs: activate overrides file to fix make distcheck
+
+2011-09-06 16:46:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.h:
+         audio: rename IS_LE/BE to _IS_LITTLE_ENDIAN/BIG_ENDIAN
+
+2011-09-06 15:46:45 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.c:
+         audio: update internal silent sample defines as well to match 0.11
+
+2011-09-06 15:16:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/audio/audio.c:
+       * gst-libs/gst/audio/audio.h:
+         audio: update audio format enums to match changes in 0.11
+         And add new audio format info stuff to docs.
+
+2011-09-06 15:40:02 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From 605cd9a to a39eb83
+
+2011-09-06 14:16:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Do a subset check before actually using a factory
+         This prevents autoplugging if the caps have a non-empty intersection
+         but are not accepted by the next element's pad.
+
+2011-09-06 14:04:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+         subtitleoverlay: Use subset check instead of non-empty-intersection check to check if pads are compatible
+
+2011-09-06 14:03:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Use subset check instead of non-empty-intersection check to check if pads are compatible
+
+2011-09-06 13:06:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Fix memory leak
+
+2011-09-06 12:14:33 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/decodebin2.c:
+         decodebin2: Add unit test for correct parser/converter negotiation
+
+2011-06-26 15:40:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Correctly negotiate format for parsers that can convert different stream formats
+         This is done by adding a capsfilter after every parser/converter that contains
+         all possible caps supported by downstream elements. A capsfilter is necessary
+         here because the decoder is only selected after the parser selected a format
+         and the parser can't know what downstream would support otherwise.
+
+2011-09-05 15:19:42 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: If a audio/video sink was already selected don't check caps of all other possible sinks
+
+2011-09-06 08:25:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/decodebin2.c:
+         decodebin2: Add Tim as author for the parser test
+
+2011-09-06 10:07:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         docs: more docs clean-ups
+
+2011-09-05 23:00:30 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         videorate: don't take the object lock twice in {set,get}_property
+         https://bugzilla.gnome.org/show_bug.cgi?id=658294
+
+2011-09-05 22:51:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.h:
+         audio: fix GST_AUDIO_FORMAT_INFO_IS_*() macros to return a boolean
+
+2011-09-05 21:40:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/Makefile.am:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         docs: some docs love
+
+2011-09-05 20:45:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * docs/libs/gst-plugins-base-libs.types:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+         docs: add GstAudioDecoder and GstAudioEncoder to documentation
+
+2011-09-05 15:01:09 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/Makefile.am:
+       * gst-libs/gst/audio/gstaudiodecoder.c:
+       * gst-libs/gst/audio/gstaudiodecoder.h:
+       * gst-libs/gst/audio/gstaudioencoder.c:
+       * gst-libs/gst/audio/gstaudioencoder.h:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+       * win32/common/libgstaudio.def:
+         audio: rename GstBaseAudioDecoder/Encoder to GstAudioDecoder/Encoder
+         API: gst_gst_audio_decoder_finish_frame()
+         API: gst_gst_audio_decoder_get_audio_info()
+         API: gst_gst_audio_decoder_get_byte_time()
+         API: gst_gst_audio_decoder_get_delay()
+         API: gst_gst_audio_decoder_get_latency()
+         API: gst_gst_audio_decoder_get_max_errors()
+         API: gst_gst_audio_decoder_get_min_latenc()y
+         API: gst_gst_audio_decoder_get_parse_state()
+         API: gst_gst_audio_decoder_get_plc()
+         API: gst_gst_audio_decoder_get_plc_aware()
+         API: gst_gst_audio_decoder_get_tolerance()
+         API: gst_gst_audio_decoder_get_type()
+         API: gst_gst_audio_decoder_set_byte_time()
+         API: gst_gst_audio_decoder_set_latency()
+         API: gst_gst_audio_decoder_set_max_errors()
+         API: gst_gst_audio_decoder_set_min_latency()
+         API: gst_gst_audio_decoder_set_plc()
+         API: gst_gst_audio_decoder_set_plc_aware()
+         API: gst_gst_audio_decoder_set_tolerance()
+         API: gst_gst_audio_encoder_finish_frame()
+         API: gst_gst_audio_encoder_get_audio_info()
+         API: gst_gst_audio_encoder_get_frame_max()
+         API: gst_gst_audio_encoder_get_frame_samples()
+         API: gst_gst_audio_encoder_get_hard_resync()
+         API: gst_gst_audio_encoder_get_latency()
+         API: gst_gst_audio_encoder_get_lookahead()
+         API: gst_gst_audio_encoder_get_mark_granule()
+         API: gst_gst_audio_encoder_get_perfect_timestamp()
+         API: gst_gst_audio_encoder_get_tolerance()
+         API: gst_gst_audio_encoder_get_type()
+         API: gst_gst_audio_encoder_proxy_getcaps()
+         API: gst_gst_audio_encoder_set_frame_max()
+         API: gst_gst_audio_encoder_set_frame_samples()
+         API: gst_gst_audio_encoder_set_hard_resync()
+         API: gst_gst_audio_encoder_set_latency()
+         API: gst_gst_audio_encoder_set_lookahead()
+         API: gst_gst_audio_encoder_set_mark_granule()
+         API: gst_gst_audio_encoder_set_perfect_timestamp()
+         API: gst_gst_audio_encoder_set_tolerance()
+         https://bugzilla.gnome.org/show_bug.cgi?id=642690
+
+2011-08-03 13:31:59 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Select muxer further
+         Sort muxers based on their caps and ranking before iterating to
+         find one that fits the profile.
+         Sorting is done by putting the elements that have a pad template
+         that can produce the exact caps that is on the profile. For example:
+         when asking for "video/quicktime, variant=iso", muxers that
+         have this exact caps on their pad templates will be put first on
+         the list than ones that have only "video/quicktime".
+         https://bugzilla.gnome.org/show_bug.cgi?id=651496
+
+2011-09-05 20:31:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Actually iterate over the factories instead of only taking the first one
+
+2011-09-05 15:51:25 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+       * tests/check/libs/profile.c:
+       * tests/check/libs/tag.c:
+       * tests/check/libs/video.c:
+         tests: supress ERROR log output for some tests
+         Be nice when we tests for correct error handling and don't spam stdout.
+
+2011-09-05 14:40:24 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         Revert "playsink: Try include 'pitch', if no other sink is provided"
+         This reverts commit 105814e2c78f9867c61531b9e8166e4ae994296f.
+         The general consensus seems to be that we should revert this for
+         now. If such behaviour is desired, we should probably enable it
+         via a flag. And maybe use the scaletempo plugin instead.
+
+2011-09-05 12:02:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Don't leak the videochain ts-offset element
+         Also don't leak the audiochain ts-offset element if one is
+         found but the sink doesn't support volume settings.
+
+2011-09-05 11:55:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Use gst_object_unref() instead of g_object_unref() for better debugging
+
+2011-03-17 19:13:58 -0700  David Schleef <ds@schleef.org>
+
+       * gst/videoscale/Makefile.am:
+       * gst/videoscale/gstvideoscale.c:
+       * gst/videoscale/gstvideoscale.h:
+       * gst/videoscale/vs_image.h:
+       * gst/videoscale/vs_lanczos.c:
+         videoscale: Add modified Lanczos scaling method
+         Adds a Lanczos-derived scaling method, which is rather slow, but very
+         high quality.  Adds a few properties that can be used to tune various
+         scaling properties: sharpness, sharpen, envelope, dither.  Not currently
+         Orcified, but was designed with that in mind.
+
+2011-05-16 14:46:52 -0700  David Schleef <ds@schleef.org>
+
+       * gst/playback/Makefile.am:
+       * gst/playback/gstplaybin.c:
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gstplaysinkvideoconvert.c:
+       * gst/playback/gstsubtitleoverlay.c:
+         playback: Add define for colorspace element
+         Single point of change if you want to switch from ffmpegcolorspace
+         to colorspace.
+
+2011-08-25 15:14:58 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         videorate: fix dynamically changing average period
+         The average_period_set variable can be accessed in different threads, so
+         always lock it when reading. Furthermore when switching to averaging
+         mode we should make sure we don't have cached buffers that aren't used
+         in that mode. And any modeswitch will cause the latency to change, so we
+         should post a NewLatency message
+
+2011-08-23 10:11:52 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * gst/videorate/Makefile.am:
+       * gst/videorate/gstvideorate.c:
+       * gst/videorate/gstvideorate.h:
+         videorate: Port to basetransform
+
+2011-08-22 15:52:57 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+         Correct added versions
+
+2011-08-31 14:45:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Only unref ts_offset elements if they're not NULL
+
+2011-08-31 12:39:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Keep the chain mutex locked while connecting to the notify::caps signal
+
+2011-08-30 18:21:31 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * tests/examples/seek/seek.c:
+         seek: Accept pipeline descriptions for audiosink/videosink
+         Make the element_factory_make_or_warn utility function try parsing
+         the input string as a bin if element_factory_make() fails. This makes
+         the --audiosink/--videosink commandline options accept a pipeline
+         string.
+
+2011-08-30 18:21:31 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Try include 'pitch', if no other sink is provided
+         As a default, try the pipeline 'pitch ! audioconvert ! autoaudiosink'
+         before trying plain autoaudiosink
+
+2011-08-27 14:57:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/Makefile.am:
+       * gst-libs/gst/pbutils/Makefile.am:
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         pbutils: don't depend on libgstvideo just to parse some caps
+         Let's extract those ints and fractions ourselves and not depend
+         on libgstvideo.
+
+2011-08-27 13:31:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/Makefile.am:
+       * gst-libs/gst/audio/Makefile.am:
+       * win32/common/libgstaudio.def:
+         audio: add GstBaseAudioDecoder and GstBaseAudioEncoder to build
+         However, libgstaudio now depends on libgstvideo (via pbutils).
+         https://bugzilla.gnome.org/show_bug.cgi?id=642690
+         API: gst_audio_info_clear()
+         API: gst_audio_info_convert()
+         API: gst_audio_info_copy()
+         API: gst_audio_info_free()
+         API: gst_audio_info_from_caps()
+         API: gst_audio_info_init()
+         API: gst_audio_info_to_caps()
+         API: gst_base_audio_decoder_finish_frame()
+         API: gst_base_audio_decoder_get_audio_info()
+         API: gst_base_audio_decoder_get_byte_time()
+         API: gst_base_audio_decoder_get_delay()
+         API: gst_base_audio_decoder_get_latency()
+         API: gst_base_audio_decoder_get_max_errors()
+         API: gst_base_audio_decoder_get_min_latency()
+         API: gst_base_audio_decoder_get_parse_state()
+         API: gst_base_audio_decoder_get_plc()
+         API: gst_base_audio_decoder_get_plc_aware()
+         API: gst_base_audio_decoder_get_tolerance()
+         API: gst_base_audio_decoder_get_type()
+         API: gst_base_audio_decoder_set_byte_time()
+         API: gst_base_audio_decoder_set_latency()
+         API: gst_base_audio_decoder_set_max_errors()
+         API: gst_base_audio_decoder_set_min_latency()
+         API: gst_base_audio_decoder_set_plc()
+         API: gst_base_audio_decoder_set_plc_aware()
+         API: gst_base_audio_decoder_set_tolerance()
+         API: gst_base_audio_encoder_finish_frame()
+         API: gst_base_audio_encoder_get_audio_info()
+         API: gst_base_audio_encoder_get_frame_max()
+         API: gst_base_audio_encoder_get_frame_samples()
+         API: gst_base_audio_encoder_get_hard_resync()
+         API: gst_base_audio_encoder_get_latency()
+         API: gst_base_audio_encoder_get_lookahead()
+         API: gst_base_audio_encoder_get_mark_granule()
+         API: gst_base_audio_encoder_get_perfect_timestamp()
+         API: gst_base_audio_encoder_get_tolerance()
+         API: gst_base_audio_encoder_get_type()
+         API: gst_base_audio_encoder_proxy_getcaps()
+         API: gst_base_audio_encoder_set_frame_max()
+         API: gst_base_audio_encoder_set_frame_samples()
+         API: gst_base_audio_encoder_set_hard_resync()
+         API: gst_base_audio_encoder_set_latency()
+         API: gst_base_audio_encoder_set_lookahead()
+         API: gst_base_audio_encoder_set_mark_granule()
+         API: gst_base_audio_encoder_set_perfect_timestamp()
+         API: gst_base_audio_encoder_set_tolerance()
+
+2011-08-27 13:15:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         docs: add since markers to baseaudio{decoder,encoder} documentation
+
+2011-08-27 12:47:40 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudiodecoder, baseaudioencoder: fix some compiler warnings
+         Leaving the GST_USE_UNSTABLE_API guards in until some of the
+         ported decoders have been updated and it's clear that I didn't
+         mess up anywhere porting things to the new audio API.
+
+2011-08-27 12:41:28 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioutils.c:
+       * gst-libs/gst/audio/gstbaseaudioutils.h:
+         baseaudioutils: remove, merged into or superseded by audio.c
+
+2011-08-27 12:39:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: port to new GstAudioInfo API
+
+2011-08-27 12:37:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiodecoder: port to GstAudioInfo API
+
+2011-08-27 11:43:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.c:
+       * gst-libs/gst/audio/audio.h:
+         audio: add gst_audio_info_{init,clear} and gst_audio_info_{copy,free}
+
+2011-08-22 20:15:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/audio.c:
+       * gst-libs/gst/audio/audio.h:
+       * gst-libs/gst/audio/multichannel.c:
+       * gst-libs/gst/audio/multichannel.h:
+         audio: add GstAudioFormat, GstAudioFormatInfo and GstAudioInfo
+         Same as in 0.11, but with caps parsing/serialising for 0.10 style
+         caps. Add setting default channel positions.
+
+2011-08-17 18:48:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: remove leftover experimental code
+
+2011-08-17 18:32:54 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioutils.c:
+       * gst-libs/gst/audio/gstbaseaudioutils.h:
+         audioutils: modify _parse, add GType support functions
+
+2011-08-16 21:11:42 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiodecoder: move properties to private storage and add _get/_set
+
+2011-08-16 21:11:52 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: rename property
+
+2011-08-16 20:39:07 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiodecoder: replace context helper structure by various _get/_set
+
+2011-08-16 18:59:13 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: move properties to private storage and add _get/_set
+
+2011-08-16 18:25:43 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: rename some properties
+
+2011-08-16 18:23:14 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: replace context helper structure by various _get/_set
+
+2011-08-16 17:27:07 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+       * gst-libs/gst/audio/gstbaseaudioutils.c:
+       * gst-libs/gst/audio/gstbaseaudioutils.h:
+         baseaudio: rename GstAudioState to GstAudioFormatInfo
+
+2011-06-17 11:54:08 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: TEMP; avoid some imperfect ts jitter ?
+         ... even when not in perfect mode ?
+
+2011-04-28 12:01:43 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: debug format fixes
+
+2011-04-28 12:01:30 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: debug format fix
+
+2011-03-31 14:03:11 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: fixup documentation
+
+2011-03-29 15:51:40 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: fix FLUSH_STOP actions
+
+2011-03-28 13:16:27 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: preserve upstream seek event seqnum
+
+2011-03-22 11:09:56 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: use buffer running time for granule calculation
+
+2011-03-22 10:45:47 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: minor fix in ts resync
+
+2011-03-21 11:40:31 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiodecoder: improve glitch resilience
+         Provide a replacement for GST_ELEMENT_ERROR to avoid aborting at the first
+         atom out of place, while on the other hand not failing indefinitely.
+
+2011-03-17 12:09:47 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiodecoder: add limited legacy seeking support
+
+2011-03-16 14:41:40 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: cater for audio-codec tag
+
+2011-03-10 16:01:05 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiodecoder: initial version
+
+2011-03-16 18:41:03 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: misc fixes
+
+2011-03-15 17:27:42 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+       * gst-libs/gst/audio/gstbaseaudioutils.c:
+       * gst-libs/gst/audio/gstbaseaudioutils.h:
+         baseaudio: add audioutils for caps and query handling helper utils
+
+2011-03-14 12:39:49 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: mark unstable API
+
+2011-03-10 15:12:54 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: fix clearing context
+
+2011-03-10 15:12:19 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: simplify latency variable handling
+
+2011-03-10 14:28:48 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: minor fixes and code simplifications
+         Also modify and elaborate a bit on pre_push (though currently unused to no harm).
+
+2011-03-09 12:44:36 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: additional documentation on granule semantics and configuration
+
+2011-03-09 12:24:34 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: elaborate property names
+
+2011-03-09 12:22:04 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: rename state field xint to is_int
+
+2011-03-09 12:18:56 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+         baseaudioencoder: gtk-doc syntax fixes
+
+2011-03-09 12:17:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         baseaudioencoder: minor fix and cleanup
+
+2011-03-01 14:08:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         baseaudiocodec: ... and also rename to baseaudiodecoder
+
+2011-03-01 13:58:31 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         gst-libs/gst/audio: Remove baseaudiodecoder
+         Adds little beyond baseaudiocodec (seeking, bit of query), and what it adds
+         is mainly out-of-scope (e.g. decoder seeking, should be done by upstream
+         demuxer/parser) and/or based on non-prime example (mad).
+
+2009-09-17 13:26:28 +0200  Iago Toral <itoral@igalia.com>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+         baseaudiodecoder: Return TRUE if we run into special conversion cases.
+
+2009-09-01 14:17:53 +0200  Iago Toral <itoral@igalia.com>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         audio: initial version of GstBaseAudioCodec
+         Moved most of the code to GstBaseAudioCodec, GstBaseAudioDecode is
+         now really small, maybe we do not really need it (or its encoder
+         counterpart). Added more API for subclasses and documentation.
+
+2009-08-14 09:45:52 +0200  Iago Toral <itoral@igalia.com>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         Added src_queries to decoder class. Added handle_discont to decoder class. Reworked reset. Various other minor fixes.
+
+2009-08-06 15:28:00 +0200  Iago Toral <itoral@igalia.com>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         Added a draft implementation of gstbaseaudiodecoder
+
+2011-03-01 11:56:29 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+       * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+         Added audio directory for audio codec base classes
+
+2011-02-18 16:38:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         audioencoders: add streamheader helper utility
+
+2011-01-27 16:52:50 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudioencoder.c:
+       * gst-libs/gst/audio/gstbaseaudioencoder.h:
+         audioencoders: baseaudioencoder and ported encoders
+
+2011-08-26 10:03:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * win32/common/libgstpbutils.def:
+         win32: Add new discoverer API
+
+2011-08-26 10:03:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: Add new discoverer API
+
+2011-08-24 16:29:08 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+       * gst-libs/gst/pbutils/gstdiscoverer.h:
+       * gst-libs/gst/pbutils/pbutils-private.h:
+       * tools/gst-discoverer.c:
+         discoverer: retrieve audio track language from tags too
+         https://bugzilla.gnome.org/show_bug.cgi?id=657257
+
+2011-08-24 15:09:47 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: consider subtitles as raw
+         Otherwise, discoverer will generated an "inner" codec
+         where there can be a tranformation (eg, kate -> DVD SPU,
+         and various ->text/x-pango-markup).
+         https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-24 15:05:38 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: add application/x-kate to subtitles caps
+         https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-24 14:59:38 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: get language from other tags if we did not get it already
+         https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-24 15:04:50 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+       * gst-libs/gst/pbutils/gstdiscoverer.h:
+       * gst-libs/gst/pbutils/pbutils-private.h:
+       * tools/gst-discoverer.c:
+         discoverer: add subtitles API
+         https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-21 14:51:45 -0700  David Schleef <ds@schleef.org>
+
+       * gst/playback/gstplaysink.c:
+         playback: reference count ts_offset
+         Apparently this object is being used after it's freed.  This is one
+         way to fix it, although perhaps not the best way.  Fixes: #656715.
+
+2011-08-25 14:55:14 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: fix caps leak
+         https://bugzilla.gnome.org/show_bug.cgi?id=657333
+
+2011-07-08 23:06:46 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst-libs/gst/rtp/gstbasertppayload.c:
+         basertppayload: Make perfect timestamps reproducible across element restart
+         Without the perfect timestamp machinery, the RTP timestamp can be
+         computed directly from the running time of a buffer, but the perfect
+         timestamp patch broke that assumption. This patch restores it by
+         having the first perfect timestamp be the running time of that buffer
+         and counting from there.
+         Fixes https://bugzilla.gnome.org/show_bug.cgi?id=654434
+
+2011-08-24 17:39:11 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: fix leaks in skeleton writing
+         https://bugzilla.gnome.org/show_bug.cgi?id=563251
+
+2011-08-18 16:36:23 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggmux.h:
+         oggmux: generate message headers from received tags
+         Some message headers can be deduced from tags (eg, "Language").
+         https://bugzilla.gnome.org/show_bug.cgi?id=563251
+
+2011-08-18 10:05:17 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggparse.c:
+         ogg: use memory slices where appropriate
+         While there, avoid zeroing newly allocated memory where unnecessary
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-24 14:05:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.c:
+         playsink{audio,video}convert: Send NEWSEGMENT events to sinkpads instead of pushing them
+
+2011-08-23 11:12:10 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not warn when reaching EOS while scanning for the end chain
+         After all, we were asking for it.
+         This gets rid of the last warning-about-expected-condition.
+         w00t.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 11:08:25 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: add media type to chain information reports
+         One more little step in making logs a little less abstruse.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 11:05:11 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: correctly identify skeleton EOS packet
+         It is 0 byte, and was triggering the "bad packet" logic.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:58:20 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not warn about expected occurences
+         In this case, finding a skeleton packet.
+         Once upon a time, it used to be rare indeed, but no more.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:47:53 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not warn when finding a non BOS page
+         After all, we do hope to find actual data for these streams.
+         However, warn if we could not set up a chain when we find a
+         non BOS page, as that means we don't have a valid Ogg stream.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:40:12 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: rename local variable for clarity
+         While the casual reader might end up bewildered by just why this
+         change might increase clarity, it just happens than, in the libogg
+         and associated sources, op is the canonical name for an ogg_packet
+         whlie og is the canonical name for an ogg_page, and reading this
+         code confuses me.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:32:36 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not try to determine duration of header packets
+         Headers are inherently durationless.
+         Instead, set duration to 0 to avoid increasing tracked granpos,
+         and do not warn about it, since it is totally expected.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:29:49 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: include stream type in warnings
+         It makes it easier to work out what's going on.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:28:33 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: set skeleton stream media type to application/x-ogg-skeleton
+         This is to match the typefinder, and to make logs clearer.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-17 17:09:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggmux.h:
+         oggmux: add skeleton write support
+         Version written is 3.0
+         Base times are left empty for now.
+         Content-Type should be the MIME type of the stream. It is set to
+         the GStreamer media type for now, which is probably the same for
+         the streams oggmux supports.
+         https://bugzilla.gnome.org/show_bug.cgi?id=563251
+
+2011-08-22 14:56:38 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not skip sparse streams when determining start times
+         This fixes demuxing of streams containing only sparse streams,
+         which would cause an infinite loop in _read_end_chain.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657062
+
+2011-08-22 14:55:59 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+         oggdemux: do not ignore sparse streams' start time
+         But do not wait for them either, if we don't have a packet for them.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657062
+
+2011-07-21 17:16:26 -0400  Monty Montgomery <cmontgom@redhat.com>
+
+       * ext/vorbis/gstvorbisenc.c:
+         vorbisenc: Relax overly-tight jitter tolerances in gstvobisenc
+         vorbisenc currently reacts in a rater draconian fashion if input
+         timestamps are more than 1/2 sample off what it considers ideal. If data
+         is 'too late' it truncates buffers, if it is 'too soon' it completely
+         shuts down encode and restarts it.  This is causingvorbisenc to produce
+         corrupt output when encoding data produced by sources with bugs that
+         produce a smple or two of jitter (eg, flacdec)
+
+2011-08-22 09:06:53 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: fix text buffer leak
+         Make sure to always unref the input text buffer.
+         Reported by bcxa.sz@gmail.com.
+         https://bugzilla.gnome.org/show_bug.cgi?id=657049
+
+2011-08-20 19:46:31 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/video/gstvideosink.h:
+         docs: fix xref for the property
+
+2011-08-20 19:16:42 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/audio/gstaudiofilter.c:
+       * gst-libs/gst/interfaces/colorbalance.c:
+       * gst-libs/gst/interfaces/mixer.c:
+       * gst-libs/gst/interfaces/navigation.c:
+       * gst-libs/gst/interfaces/streamvolume.h:
+       * gst-libs/gst/interfaces/xoverlay.c:
+       * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+       * gst-libs/gst/pbutils/install-plugins.h:
+       * gst-libs/gst/rtp/gstrtpbuffer.c:
+       * gst-libs/gst/rtsp/gstrtsptransport.c:
+       * gst-libs/gst/rtsp/gstrtspurl.c:
+       * gst-libs/gst/sdp/gstsdpmessage.c:
+       * gst-libs/gst/video/gstvideosink.h:
+         docs: handle warnings emitted by gtk-doc
+         This is useful and in most cases someone had put arbitrary markup into the docs,
+         misspelled xref'ed symbols, forgot to add stuff to the docs etc..
+
+2011-08-20 17:53:11 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: partially revert my last commit
+         Somehow this was already there, but I missed that commit.
+
+2011-08-20 14:11:11 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/tag/licenses.c:
+         docs: add new taglicense docs and clean them up
+         Avoid ugly docbook tags unless needed.
+
+2011-08-20 12:37:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * po/af.po:
+       * po/az.po:
+       * po/bg.po:
+       * po/ca.po:
+       * po/cs.po:
+       * po/da.po:
+       * po/de.po:
+       * po/el.po:
+       * po/en_GB.po:
+       * po/es.po:
+       * po/eu.po:
+       * po/fi.po:
+       * po/fr.po:
+       * po/gl.po:
+       * po/hu.po:
+       * po/id.po:
+       * po/it.po:
+       * po/ja.po:
+       * po/lt.po:
+       * po/lv.po:
+       * po/nb.po:
+       * po/nl.po:
+       * po/or.po:
+       * po/pl.po:
+       * po/pt_BR.po:
+       * po/ro.po:
+       * po/ru.po:
+       * po/sk.po:
+       * po/sl.po:
+       * po/sq.po:
+       * po/sr.po:
+       * po/sv.po:
+       * po/tr.po:
+       * po/uk.po:
+       * po/vi.po:
+       * po/zh_CN.po:
+         po: update for new translatable string
+
+2011-08-20 12:36:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/Makefile.am:
+         tag: fix distcheck issue
+         Dist licenses dict.
+
+2011-08-18 16:20:57 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggparse.c:
+         ogg: do not use 32 bit modifiers to print serial numbers
+         If ints are 64 bits, 32 bits should get promoted in varargs anyway,
+         and we don't care about 16 bit ints.
+         This makes the code a lot more readable, and still gets us nice
+         hexadecimal 32 bit serialnos.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-07-27 11:05:31 +0000  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Reconfigure when pads are added later
+         Instead of just assuming all pads are created at the same time,
+         remember which ones are actually new (via ->pending_blocked_pads).
+         This allows the following use-case to properly work:
+         * Upstream starts with audio-only
+         * Only that pad gets data, blocks and a real audio sink is created
+         * Upstream laters adds a video stream
+         * A new pad is requested, blocks and reconfiguration kicks in in
+         order to add a new real video sink
+
+2011-08-18 09:37:38 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/README:
+         ogg: get the operator precedence right, even if only a doc
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-18 09:30:46 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: vorbis has a preroll of 2
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 19:40:08 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggstream.c:
+       * ext/ogg/gstoggstream.h:
+         oggstream: new convenience function to get a stream's media type
+         This will make logging a lot clearer, both in code and in output.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 18:48:54 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggmux.h:
+       * ext/ogg/gstoggstream.c:
+       * ext/ogg/gstoggstream.h:
+         ogg: move the "always flush page" to oggstream
+         It avoids checking for specific media types in the muxer.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 18:38:39 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: use oggstream to decide which BOS packets to place first
+         Ogg recommends video BOS packets to be first.
+         Use the "is_video" flag in oggstream to select those, rather than
+         check for known mime types.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 18:03:16 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggdemux.c:
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggstream.h:
+         ogg: rationalize serialno type to guint32
+         It is a 32 bit unsigned number.
+         Sure, the libogg API uses a long, but that's an unfortunate oversight.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 17:39:18 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: factor the header packet creation code
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 17:18:47 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: headers should always have granpos 0
+         https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-18 09:48:16 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/audioresample/resample.c:
+         audioresample: fix build without orc
+         https://bugzilla.gnome.org/show_bug.cgi?id=656781
+
+2011-08-15 01:22:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstid3tag.c:
+       * tests/check/libs/tag.c:
+         tag: id3: avoid some more relocations in genre table
+
+2011-08-12 12:07:32 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * tests/check/Makefile.am:
+       * tests/check/elements/audioresample.c:
+         audioresample: add FFT based checks
+         Send a few simple tones through audioresample and check
+         that the main frequency spot is the same for the input and
+         the resampled output.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656392
+
+2011-08-15 23:41:24 +0200  Alessandro Decina <alessandro.d@gmail.com>
+
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+         rtspconnection: add OSX specific hack to detect when a connection is refused
+         Unlike linux, OSX wakes up select with POLLOUT (instead of POLLERR) when
+         connect() is done async and the connection is refused. Therefore always check
+         for the socket error state using getsockopt (..., SO_ERROR, ...) after a
+         connection attempt.
+
+2011-08-15 00:17:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: add new license API to docs
+
+2011-08-15 00:03:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         configure: try pkg-config first when looking for zlib
+
+2011-08-14 20:44:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.3.0.txt:
+       * gst-libs/gst/tag/id3v2.4.0-frames.txt:
+       * gst-libs/gst/tag/id3v2.4.0-structure.txt:
+         tag: id3v2: add specs to git for reference
+
+2011-08-14 13:32:12 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: avoid some relocations, make table static
+
+2011-08-14 01:47:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.c:
+       * gst-libs/gst/tag/id3v2.h:
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: add debug category for ID3 tag parsing
+
+2011-07-18 18:09:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * configure.ac:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/tag/Makefile.am:
+       * gst-libs/gst/tag/id3v2.c:
+       * gst-libs/gst/tag/id3v2.h:
+       * gst-libs/gst/tag/id3v2frames.c:
+       * gst-libs/gst/tag/tag.h:
+       * gst-libs/gst/tag/tags.c:
+       * win32/common/libgsttag.def:
+         tag: id3v2: add id3v2 tag parsing helpers
+         https://bugzilla.gnome.org/show_bug.cgi?id=654388
+
+2011-02-22 15:19:00 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: return ID3TAGS_BROKEN_TAG for unsupported versions
+         This prevents us for trying to work with a NULL taglist.
+
+2011-01-02 19:23:51 +0000  Erich Schubert <erich@debian.org>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: fix parsing of ID3v2.4 genre frames with multiple genres
+         We'd only extract the first genre (multiple times) instead of all
+         genres.
+         https://bugzilla.gnome.org/show_bug.cgi?id=638535
+
+2010-09-24 15:19:15 +0200  Edward Hervey <bilboed@bilboed.com>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: Sanitize id3 frame names
+         This is similar to what is done in qtdemux. Avoids providing invalid
+         structure/tags names
+
+2010-03-30 01:50:32 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: fix parsing of unsynced frames with data length indicator
+         Fixes bug #614158.
+
+2010-03-20 00:54:14 +0100  Benjamin Otte <otte@redhat.com>
+
+       * gst-libs/gst/tag/id3v2.c:
+         Add -Wwrite-strings to the configure flags
+         ... and fix all warnings
+
+2009-12-13 13:19:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: prefer two letter ISO 639-1 code for extended comment
+
+2009-10-09 15:59:25 +0200  Josep Torra <n770galaxy@gmail.com>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: fixes warnings building on macosx
+         Another round on the formating of that debug line.
+
+2009-10-09 14:44:02 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: cast pointer math results to glong
+
+2009-10-09 13:38:17 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: don't cast, but use the right format specified instead
+         This correct some of the previous macos fixes.
+
+2009-10-09 11:42:36 +0200  Josep Torra <n770galaxy@gmail.com>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: fix printf warnings on macosx
+
+2009-10-07 14:03:20 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: fprintf, sprintf, sscanf need stdio.h
+
+2009-09-22 15:03:20 +0200  Alessandro Decina <alessandro.d@gmail.com>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: Fix compile warnings with gcc 4.0.1.
+
+2009-08-09 12:52:17 +0200  LoneStar <lone@auvtech.com>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8
+         Fixes bug #499242.
+
+2009-08-07 16:42:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: sizes in ID3 v2.3 are unlikely to be sync-safe integers
+         In ID3 v2.3 compressed frames will have a 4-byte data length indicator
+         after the frame header to indicate the size of the decompressed data.
+         This integer is unlikely to be a sync-safe integer for v2.3 tags,
+         only in v2.4 it's sync-safe.
+
+2009-08-07 16:36:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: fix typo in debug message
+
+2009-08-07 16:02:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.c:
+       * gst-libs/gst/tag/id3v2.h:
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: fix parsing of unsync'ed ID3 v2.4 tags and frames
+         Reversing the unsynchronisation seems to work slightly differently
+         for ID3 v2.3 tags and v2.4 tags: v2.3 tags don't have syncsafe frame
+         sizes in the frame header, so the unsynchronisation is applied to
+         the whole frame data including all the frame headers. v2.4 frames
+         have sync-safe sizes, however, so the unsynchronisation only needs
+         to be applied to the actual frame data, and it seems that's what's
+         being done as well. So we need to undo the unsynchronisation on a
+         per-frame basis for v2.4 tags for things to work properly.
+         Fixes extraction of coverart/images from APIC frames in ID3 v2.4
+         tags (#588148).
+         Add unit test for this as well.
+
+2009-04-24 01:51:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: parse unsynchronised tags properly
+         We didn't handle unsynchronization at all up to now, which might have
+         caused frames to not be extracted - esp. frames after an APIC picture
+         frame. Fixes #577468.
+
+2009-04-24 01:01:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/id3v2.c:
+         tag: id3v2: pass the right size value for size of all frames to the parser
+         Frame data size is tag size adjusted for size of the tag header and
+         footer, not tag size including header and footer.
+
+2008-06-04 10:42:46 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Use new utility functions in libgsttag to process coverart (#512333).
+         Original commit message from CVS:
+         * ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
+         * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+         Use new utility functions in libgsttag to process coverart (#512333).
+
+2008-01-11 21:08:59 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Generate the image-type values correctly. Leave them out of the caps when outputting a "preview image" tag, since it ...
+         Original commit message from CVS:
+         * ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
+         * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+         Generate the image-type values correctly. Leave them out of the caps
+         when outputting a "preview image" tag, since it only makes sense
+         to have one of those - the type is irrelevant.
+         * sys/sunaudio/gstsunaudiomixerctrl.c:
+         (gst_sunaudiomixer_ctrl_open):
+         If we can, mark the mixer multiple open when we use it, in case
+         (for some reason) the process wants to open it again elsewhere.
+
+2008-01-09 15:20:19 +0000  Tommi Myöhänen <ext-tommi.myohanen@nokia.com>
+
+         tag: id3v2: Make sure the ISO 639-X language code in ID3v2 COMM frames so we don't end up with non-UT...
+         Original commit message from CVS:
+         Based on patch by: Tommi Myöhänen <ext-tommi.myohanen nokia com>
+         * gst-libs/gst/tag/id3v2frames.c: (parse_comment_frame):
+         Make sure the ISO 639-X language code in ID3v2 COMM frames
+         is actually valid UTF-8 (or rather: ASCII), so we don't end
+         up with non-UTF8 strings in tags if there's garbage in the
+         language field. Also make sure the language code is always
+         lower case. Fixes: #508291.
+
+2007-12-14 10:17:10 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Parse WOAF frames and put the result into GST_TAG_CONTACT, which is where it would end up...
+         Original commit message from CVS:
+         * tag: id3v2: (parse_url_link_frame):
+         Parse WOAF frames and put the result into GST_TAG_CONTACT,
+         which is where it would end up if the same information was
+         put in a vorbis comment (don't think it's worth adding a
+         new URI tag for this). Fixes #488112.
+
+2007-11-14 21:39:47 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: We don't want the same string multiple times in a tag list for the same tag ever, for any tag, not jus...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c:
+         * gst-libs/gst/tag/id3v2.h:
+         * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+         We don't want the same string multiple times in a tag list for the
+         same tag ever, for any tag, not just for GST_TAG_GENRE, so make sure
+         this doesn't happen and remove special-case code for GST_TAG_GENRE.
+
+2007-10-11 17:55:29 +0000  Jason Kivlighn <jkivlighn@gmail.com>
+
+         tag: id3v2: Extract license/copyright URIs from ID3v2 WCOP frames (Fixes #447000).
+         Original commit message from CVS:
+         Based on patch by: Jason Kivlighn  <jkivlighn gmail com>
+         * gst-libs/gst/tag/id3v2frames.c:
+         Extract license/copyright URIs from ID3v2 WCOP frames
+         (Fixes #447000).
+         * tests/check/elements/id3demux.c:
+         * tests/files/Makefile.am:
+         * tests/files/id3-447000-wcop.tag:
+         Add simple unit test.
+
+2007-10-06 16:13:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Port ID3 tag demuxer over to the new GstTagDemux in -base (now would be a good time to test re-importi...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/gstid3demux.c:
+         * gst-libs/gst/tag/gstid3demux.h:
+         * gst-libs/gst/tag/id3v2.c:
+         * gst-libs/gst/tag/id3v2.h:
+         * gst-libs/gst/tag/id3v2frames.c:
+         Port ID3 tag demuxer over to the new GstTagDemux in -base
+         (now would be a good time to test re-importing your music
+         collection).
+
+2007-03-12 13:28:29 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is the image format a vari...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+         Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is
+         the image format a variable-length NUL-terminated string; in
+         versions before that the image format is a fixed-length string of
+         3 characters (see #348644 for a sample tag).
+         Also make supplied mime type lower-case and fix up 'jpg' to 'jpeg'.
+
+2007-03-06 18:16:49 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise the four-digit number will be interp...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+         * gst-libs/gst/tag/id3v2.h:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_obsolete_tdat_frame):
+         Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise
+         the four-digit number will be interpreted as a year, whereas it is
+         month and day in DDMM format. Instead, parse TDAT frames and fix up
+         the date in the GST_TAG_DATE tag later if we also extracted a year.
+         Fixes #407349.
+
+2006-11-19 13:41:53 +0000  René Stadler <mail@renestadler.de>
+
+         tag: id3v2: Make sure that g_free always gets called on the same pointer that was returned by g_mallo...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+         Make sure that g_free always gets called on the same pointer that was
+         returned by g_malloc.  Fixes #376594.
+         Do not leak memory if decompressed size is wrong.
+         Remove unneeded check of return value of g_malloc.
+         Patch by: René Stadler <mail@renestadler.de>
+
+2006-11-01 13:59:49 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: We require a -base more recent than 0.10.9, so it's safe to use
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+         We require a -base more recent than 0.10.9, so it's safe to use
+         GST_TYPE_TAG_IMAGE_TYPE unconditionally now.
+         * ext/dv/gstdvdec.c: (gst_dvdec_sink_event):
+         * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_sink_event):
+         Use _newsegment_full() now that we depend on a recent enough core.
+         * gst/wavparse/gstwavparse.c:
+         Remove cruft that we don't need any longer now that we depend on
+         a recent enough -base.
+
+2006-10-05 16:37:33 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Printf format fixes.
+         Original commit message from CVS:
+         * ext/cairo/gsttimeoverlay.c:
+         (gst_cairo_time_overlay_update_font_height):
+         * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
+         * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
+         * ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
+         * ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
+         * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
+         * ext/libpng/gstpngdec.c: (user_endrow_callback):
+         * gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
+         * gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
+         (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
+         (gst_avi_demux_stream_data):
+         * gst/cutter/gstcutter.c: (gst_cutter_chain):
+         * gst/debug/efence.c: (gst_efence_buffer_alloc),
+         (gst_fenced_buffer_copy):
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+         * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
+         * gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
+         * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
+         (gst_rtspsrc_handle_message):
+         * gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
+         * sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
+         Printf format fixes.
+
+2006-08-22 13:53:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: If strings in text fields are marked ISO8859-1, but contain valid UTF-8 already, then han...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_text_identification_frame),
+         (parse_insert_string_field):
+         If strings in text fields are marked ISO8859-1, but contain
+         valid UTF-8 already, then handle them as UTF-8 and ignore
+         the encoding. (#351794)
+
+2006-08-16 13:01:32 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         configure.ac: Require CVS of GStreamer core and -base (for
+         Original commit message from CVS:
+         * configure.ac:
+         Require CVS of GStreamer core and -base (for
+         GST_TAG_EXTENDED_COMMENT and gst_tag_parse_extended_comment()).
+         * ext/taglib/gstid3v2mux.cc:
+         Write extended comment tags properly (#348762).
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_comment_frame):
+         Extract COMM frames into extended comments, which makes it
+         easier to properly retain the description bit of the tag
+         and maintain this information when re-tagging (#348762).
+
+2006-07-25 16:47:04 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as well, and add the version to...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c:
+         (id3demux_add_id3v2_frame_blob_to_taglist):
+         Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as
+         well, and add the version to the blob's buffer caps, since that
+         information will be needed for deserialisation later on (#348644).
+
+2006-07-23 11:33:54 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: On second thought, it might be wiser and more efficient not to do tag registration from a streaming th...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/gstid3demux.c: (plugin_init):
+         * gst-libs/gst/tag/id3v2.c:
+         (id3demux_add_id3v2_frame_blob_to_taglist):
+         * gst-libs/gst/tag/id3v2.h:
+         On second thought, it might be wiser and more efficient
+         not to do tag registration from a streaming thread.
+
+2006-07-23 10:56:27 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Put ID3v2 frames we can't parse as binary blobs into private tags, so that they are not lost ...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c:
+         (id3demux_add_id3v2_frame_blob_to_taglist),
+         (id3demux_id3v2_frames_to_tag_list):
+         Put ID3v2 frames we can't parse as binary blobs into private
+         tags, so that they are not lost when retagging, at least once
+         id3v2mux has been taught to re-inject those frames again.
+         See bug #334375.
+
+2006-07-21 10:57:00 +0000  Wim Taymans <wim.taymans@gmail.com>
+
+         tag: id3v2: Don't use \n in debug lines
+         Original commit message from CVS:
+         * gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
+         (gst_avi_demux_process_next_entry):
+         Fix some leaks.
+         * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+         Don't use \n in debug lines.
+
+2006-06-22 12:17:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Set image type from APIC frame as "image-type" field of GST_TAG_IMAGE buffer caps (#344605).
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+         Set image type from APIC frame as "image-type" field
+         of GST_TAG_IMAGE buffer caps (#344605).
+
+2006-06-11 19:31:10 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Extract images from ID3v2 tags (APIC frames). Fixes #339704.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (scan_encoded_string), (parse_picture_frame):
+         Extract images from ID3v2 tags (APIC frames). Fixes #339704.
+         * configure.ac:
+         Require core >= 0.10.8 (for GST_TAG_IMAGE and
+         GST_TAG_PPEVIEW_IMAGE used in the patch above).
+
+2006-05-28 10:05:47 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: A track/volume number or count of 0 does not make sense, just ignore it along with negati...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+         A track/volume number or count of 0 does not make sense,
+         just ignore it along with negative numbers (a tag might
+         only contain a track count without a track number).
+
+2006-05-19 14:05:53 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Don't output any tag when we encounter a negative track number - the tag type is uint, so...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+         Don't output any tag when we encounter a negative track number - the
+         tag type is uint, so we end up outputting huge positive numbers
+         instead. (Fixes: #342029)
+
+2006-05-16 14:07:29 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Rework string parsing to always walk over BOM markers in UTF16 strings, using the endianness indicated by the innermost one ...
+         Original commit message from CVS:
+         * gst/autodetect/gstautoaudiosink.c:
+         (gst_auto_audio_sink_find_best):
+         * gst/autodetect/gstautovideosink.c:
+         (gst_auto_video_sink_find_best):
+         Make the name of the child element be based on the name of the
+         parent, so that debug output is more useful.
+         * gst-libs/gst/tag/id3v2frames.c: (find_utf16_bom),
+         (parse_insert_string_field), (parse_split_strings):
+         Rework string parsing to always walk over BOM markers in UTF16
+         strings, using the endianness indicated by the innermost one,
+         then trying the opposite endianness if that fails to convert
+         to valid UTF-8. Fixes #341774
+
+2006-05-12 08:21:37 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Some more debug info. No need to check whether the string returned by g_convert() is real...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_insert_string_field):
+         Some more debug info. No need to check whether the string
+         returned by g_convert() is really UTF-8 - either it is or
+         we get NULL returned.
+
+2006-05-10 13:51:01 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Fix parsing of numeric genre strings some more, by ensuring that we only try and parse st...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3v2_genre_fields_to_taglist):
+         Fix parsing of numeric genre strings some more, by ensuring that
+         we only try and parse strings that a) Start with '(' and b) Consist
+         only of digits.
+         Also, when finding an escaping '((' sequence, bust it back to '(' by
+         swallowing the first parenthesis
+
+2006-04-28 11:37:22 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Recognise and skip any byte order marker (BOM) in
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (has_utf16_bom),
+         (parse_split_strings):
+         Recognise and skip any byte order marker (BOM) in
+         UTF-16 strings.
+
+2006-04-17 10:01:51 +0000  Alex Lancaster <alexlan@fedoraproject.org>
+
+         tag: id3v2: Recognise TCO (Genre) tags in ID3v2.2
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c:
+         Recognise TCO (Genre) tags in ID3v2.2. Patch by Alex Lancaster
+         (Fixes #338713)
+
+2006-03-30 23:37:16 +0000  Sébastien Moutte <sebastien@moutte.net>
+
+         tag: id3v2: use of GST_DEBUG instead of DEBUG(a...) for WIN32
+         Original commit message from CVS:
+         * ext\jpeg\smokecodec.c:
+         use of GST_DEBUG instead of DEBUG(a...) for WIN32
+         * ext\speex\gstspeexenc.c: (gst_speexenc_set_header_on_caps):
+         move first instruction after all variables declarations
+         * gst\alpha\gstalpha.c:
+         * gst\effectv\gstshagadelic.c:
+         * gst\smpte\paint.c:
+         * gst\videofilter\gstvideobalance.c:
+         define M_PI if it's not defined (it's not defined on WIN32)
+         * gst\cutter\gstcutter.c: (gst_cutter_chain):
+         * gst\id3demux\id3v2frames.c: (parse_relative_volume_adjustment_two):
+         * gst\level\gstlevel.c: (gst_level_set_property), (gst_level_transform_ip):
+         * gst\matroska\matroska-demux.c: (gst_matroska_demux_parse_info),
+         (gst_matroska_demux_video_caps):
+         * gst\matroska\matroska-mux.c: (gst_matroska_mux_start), (gst_matroska_mux_finish):
+         * gst\wavparse\gstwavparse.c: (gst_wavparse_stream_data):
+         use gst_guint64_to_gdouble for conversions
+         * gst\goom\filters.c: (setPixelRGB_):
+         fix a debug which was using undefined variable
+         * gst\level\gstlevel.c: (gst_level_set_caps), (gst_level_transform_ip):
+         * gst\matroska\ebml-read.c: (gst_ebml_read_sint):
+         replace LL suffix with L suffix (LL isn't supported by MSVC6.0)
+         * win32/vs6:
+         add vs6 projects files for most of plugins-good
+
+2006-03-22 13:00:34 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Don't attempt typefinding on too-short buffers that have been completely trimmed away.
+         Original commit message from CVS:
+         * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
+         * gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_chain):
+         Don't attempt typefinding on too-short buffers that have been
+         completely trimmed away.
+         * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
+         Improve the debug output
+
+2006-03-16 16:06:22 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: We only care about gain and peak data for the master volume.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c:
+         (parse_relative_volume_adjustment_two):
+         We only care about gain and peak data for the master volume.
+
+2006-03-16 13:22:28 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         tag: id3v2: Read replay gain tags
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_id_string), (parse_unique_file_identifier),
+         (parse_relative_volume_adjustment_two), (id3v2_tag_to_taglist):
+         Read replay gain tags (#323721).
+
+2006-03-14 17:56:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         configure.ac: Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(), used by id3demux.
+         Original commit message from CVS:
+         * configure.ac:
+         Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(),
+         used by id3demux.
+         * gst-libs/gst/tag/gstid3demux.c: (plugin_init):
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_user_text_identification_frame),
+         (parse_unique_file_identifier):
+         Add support for UFID and TXXX frames and extract musicbrainz tags.
+
+2006-02-18 20:48:09 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Handle 0 data size in otherwise valid frames.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+         * gst-libs/gst/tag/id3v2frames.c: (id3v2_genre_fields_to_taglist):
+         Handle 0 data size in otherwise valid frames.
+         Handle numeric strings in 2.4.0 even when not in parentheses
+
+2006-02-16 10:58:18 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: 3 2.3.0 used synch-safe integers for the tag size, but not for the frame size. (Fixes #331368)
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+         ID3 2.3.0 used synch-safe integers for the tag size, but not for the
+         frame size. (Fixes #331368)
+
+2006-02-13 12:00:51 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Add more validation to ensure that a char encoding conversion produced a valid UTF-8 string.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_insert_string_field),
+         (parse_split_strings):
+         Add more validation to ensure that a char encoding conversion
+         produced a valid UTF-8 string.
+
+2006-02-04 13:30:12 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Adjust for data length indicators when parsing (Fixes #329810)
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_split_strings):
+         Adjust for data length indicators when parsing (Fixes #329810)
+         Fix stupid bug parsing UTF-8 tag text.
+         Output tag strings with multiple fields as multiple tags, so the
+         app gets all the data.
+
+2006-02-03 13:06:24 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Never output a tag with a null contents string.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (parse_text_identification_frame),
+         (id3v2_tag_to_taglist), (id3v2_genre_string_to_taglist),
+         (id3v2_genre_fields_to_taglist):
+         Never output a tag with a null contents string.
+
+2006-01-30 23:13:05 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Someone should kick my butt. Remove ID3v1 tags from the end of the file.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_chain),
+         (gst_id3demux_read_id3v1), (gst_id3demux_sink_activate),
+         (gst_id3demux_send_tag_event):
+         * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v1_tag):
+         Someone should kick my butt. Remove ID3v1 tags from the end of the
+         file.
+         Improve error messages. Send the TAG message as soon as we complete
+         typefinding, instead of waiting until we send the first buffer.
+         Downstream tag event is still sent before the first buffer.
+
+2006-01-25 18:23:05 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Never trust ANY information encoded in a media file, especially when it's giving you size...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+         Never trust ANY information encoded in a media file, especially
+         when it's giving you sizes. (Fixes #328452)
+
+2006-01-23 14:32:47 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Remove errant break statement, and fix compilation with older GCC.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+         Remove errant break statement, and fix compilation with
+         older GCC.
+
+2006-01-23 09:22:17 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: Rewrite parsing of text tags to handle multiple NULL terminated strings. Parse numeric genre strings a...
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
+         * gst-libs/gst/tag/id3v2.h:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_comment_frame), (parse_text_identification_frame),
+         (id3v2_tag_to_taglist), (id3v2_are_digits),
+         (id3v2_genre_string_to_taglist), (id3v2_genre_fields_to_taglist),
+         (parse_split_strings), (free_tag_strings):
+         Rewrite parsing of text tags to handle multiple NULL terminated
+         strings. Parse numeric genre strings and ID3v2 type
+         "(3)(6)Alternative" style genre strings.
+         Parse dates that are only YYYY or YYYY-mm format.
+
+2006-01-15 20:21:48 +0000  Sergey Scobich <sergey.scobich@gmail.com>
+
+         tag: id3v2: Fix compilation of id3demux when zlib is not present.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+         Fix compilation of id3demux when zlib is not present.
+         (Fixes #326602; patch by: Sergey Scobich)
+
+2006-01-06 11:46:53 +0000  Edward Hervey <bilboed@bilboed.com>
+
+         tag: id3v2: Add gst_element_no_more_pads() for proper decodebin behaviour.
+         Original commit message from CVS:
+         * gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_add_srcpad):
+         Add gst_element_no_more_pads() for proper decodebin behaviour.
+         * gst-libs/gst/tag/id3v2frames.c: (parse_comment_frame),
+         (parse_text_identification_frame), (parse_split_strings):
+         Failure to decode some tags is not a GST_ERROR() but a
+         GST_WARNING()
+         When iterating over a chunk of text, check that we haven't gone too
+         far.
+
+2005-12-28 18:55:32 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: If a broken tag has 0 bytes payload, at least still skip the 10 byte header
+         Original commit message from CVS:
+         * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
+         If a broken tag has 0 bytes payload, at least still skip
+         the 10 byte header
+
+2005-12-18 15:14:44 +0000  Jan Schmidt <thaytan@mad.scientist.com>
+
+         tag: id3v2: all new LGPL id3 demuxer, can use zlib for compressed frames
+         Original commit message from CVS:
+         * configure.ac:
+         Check for optional dependency on zlib for id3demux
+         * gst-libs/gst/tag/Makefile.am:
+         * gst-libs/gst/tag/gstid3demux.c: (gst_gst_id3demux_get_type),
+         (gst_id3demux_base_init), (gst_id3demux_class_init),
+         (gst_id3demux_reset), (gst_id3demux_init), (gst_id3demux_dispose),
+         (gst_id3demux_add_srcpad), (gst_id3demux_remove_srcpad),
+         (gst_id3demux_trim_buffer), (gst_id3demux_chain),
+         (gst_id3demux_set_property), (gst_id3demux_get_property),
+         (id3demux_get_upstream_size), (gst_id3demux_srcpad_event),
+         (gst_id3demux_read_id3v1), (gst_id3demux_read_id3v2),
+         (gst_id3demux_sink_activate), (gst_id3demux_src_activate_pull),
+         (gst_id3demux_src_checkgetrange), (gst_id3demux_read_range),
+         (gst_id3demux_src_getrange), (gst_id3demux_change_state),
+         (gst_id3demux_pad_query), (gst_id3demux_get_query_types),
+         (simple_find_peek), (simple_find_suggest),
+         (gst_id3demux_do_typefind), (gst_id3demux_send_tag_event),
+         (plugin_init):
+         * gst-libs/gst/tag/gstid3demux.h:
+         * gst-libs/gst/tag/id3v2.c: (read_synch_uint),
+         (id3demux_read_id3v1_tag), (id3demux_read_id3v2_tag),
+         (id3demux_id3v2_frame_hdr_size), (convert_fid_to_v240),
+         (id3demux_id3v2_frames_to_tag_list):
+         * gst-libs/gst/tag/id3v2.h:
+         * gst-libs/gst/tag/id3v2.4.0-frames.txt:
+         * gst-libs/gst/tag/id3v2.4.0-structure.txt:
+         * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+         (parse_comment_frame), (parse_text_identification_frame),
+         (id3v2_tag_to_taglist), (parse_split_strings):
+         All new LGPL id3 demuxer. Can use zlib for compressed frames,
+         otherwise it discards them. Works on my test files.
+         * gst/wavparse/gstwavparse.c: (gst_wavparse_loop):
+         Don't send EOS to a non-existing srcpad
+         The debug category can be static
+
+2011-08-11 18:50:08 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/audioresample/gstaudioresample.c:
+         audioresample: fix quality setting being ignored by the resampler state
+         https://bugzilla.gnome.org/show_bug.cgi?id=636562
+
+2011-08-11 15:54:15 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * configure.ac:
+       * gst/audioresample/resample.c:
+       * gst/audioresample/resample_sse.h:
+       * gst/audioresample/speex_resampler_double.c:
+       * gst/audioresample/speex_resampler_float.c:
+         audioresample: use SSE/SSE2 when possible
+         Compile in the code on i386 and x86_64, and use ORC to determine
+         when the runtime platform can run the code.
+         https://bugzilla.gnome.org/show_bug.cgi?id=636562
+
+2011-08-11 19:23:42 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/audioresample/resample_sse.h:
+         audioresample: fix SSE2 building with double precision
+         The full double implementation was missing.
+         https://bugzilla.gnome.org/show_bug.cgi?id=636562
+
+2011-08-11 12:12:07 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+         tag: exif: Check for utf8 before trying to convert
+         If the string is already on utf8, there is no need to
+         try to convert it, because it is useless and it might garble
+         the string.
+
+2011-08-10 13:16:13 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * tests/check/libs/tag.c:
+         tests: tag: exif: Add tests for 'non-trivial' chars
+         Adds two new cases to check that characters are properly
+         converted to ascii when writen to exif and parsed correctly
+         back to utf8 when read.
+
+2011-08-09 16:02:28 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+         tag: exif: Exif strings should be ascii
+         Use g_convert to turn all strings into extended ascii before writing
+         to the exif buffer and converting back from ascii to utf8 when
+         reading them.
+
+2011-08-10 15:57:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * win32/common/libgsttag.def:
+         win32: update libgsttag.def for new API
+
+2011-08-10 15:21:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/Makefile.am:
+         tag: don't build helper programs that generate/update data by default
+         No point building these by default. Also, these generated files
+         should go into the srcdir, not the builddir in this case, since
+         they're version controlled.
+
+2011-08-10 15:20:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/mklicensestables.c:
+         tag: fix stray printf in mklicensestables
+         Don't dump debug output to stdout.
+
+2011-08-10 15:06:59 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/licenses.c:
+         tag: fix compilation of new licenses code with GLib versions < 2.28
+         Add local g_variant_lookup_value() fallback for now when compiling
+         against older GLib versions.
+
+2011-08-10 14:57:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/tag/licenses.c:
+       * gst-libs/gst/tag/tag.h:
+         tag: add GType for GstTagLicenseFlags
+         API: gst_tag_license_flags_get_type()
+
+2011-08-10 10:49:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: fix runtime warnings when doing position query
+         Add missing 'break'.
+
+2011-07-15 13:19:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/Makefile.am:
+       * tests/check/libs/tag.c:
+       * tests/files/Makefile.am:
+       * tests/files/license-uris:
+         tag: add unit test for new license API
+         https://bugzilla.gnome.org/show_bug.cgi?id=646868
+
+2011-07-15 13:14:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * .gitignore:
+       * gst-libs/gst/tag/Makefile.am:
+       * gst-libs/gst/tag/mklicensestables.c:
+         tag: add mklicensestables utility
+         Add (uninstalled) tool to create licenses-table.dat from liblicense's
+         RDF files. It's not very pretty and makes loats of assumptions about
+         the input, but should work. If things change, we can fix it then.
+         https://bugzilla.gnome.org/show_bug.cgi?id=646868
+
+2011-07-15 13:07:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/Makefile.am:
+       * gst-libs/gst/tag/license-translations.dict:
+       * gst-libs/gst/tag/licenses-tables.dat:
+       * gst-libs/gst/tag/licenses.c:
+       * gst-libs/gst/tag/tag.h:
+         tag: add convenience API to handle creative commons licenses
+         Based on liblicense's RDF files.
+         API: GstTagLicenseFlags
+         API: gst_tag_get_licenses()
+         API: gst_tag_get_license_flags()
+         API: gst_tag_get_license_nick()
+         API: gst_tag_get_license_title()
+         API: gst_tag_get_license_version()
+         API: gst_tag_get_license_description()
+         API: gst_tag_get_license_jurisdiction()
+         https://bugzilla.gnome.org/show_bug.cgi?id=646868
+
+2011-08-08 10:00:40 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: bump probability if all frames we found are similar
+         Similar meaning same layer, same bitrate, and same number of channels
+         This fixes misdetection of (some MP3 files that have zero padding
+         between the ID3 tag and the MP3 stream) as H.264 video.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656018
+
+2011-08-05 16:53:47 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstvorbistag.c:
+         gstvorbistag: map ENCODER Vorbis comment to application-name
+         What GStreamer calls encoder ("encoder used to encode this stream") is
+         stored in the vendor string in Vorbis/Theora/Kate and possibly others.
+         The Vorbis comment packet used in those streams uses ENCODER as the name
+         of the encoding program, which GStreamer calls application-name.
+         https://bugzilla.gnome.org/show_bug.cgi?id=656034
+
+2011-08-05 11:32:09 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/volume/gstvolume.c:
+         volume: fix sample depth typo
+         https://bugzilla.gnome.org/show_bug.cgi?id=656022
+
+2011-08-05 13:05:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/volume/gstvolumeorc-dist.c:
+         volume: Update disted ORC files
+
+2011-08-03 14:14:55 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Set queues to silent=true
+         As encodebin doesn't connect to the queue signals, it can set
+         queues to silent mode to make queue not emit them.
+         Check https://bugzilla.gnome.org/show_bug.cgi?id=621299 for
+         more info on queue's silent property.
+
+2011-08-03 13:40:19 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Fix typo on installing properties
+         queue buffers and bytes properties have ids swapped, fix it.
+
+2011-08-03 10:18:29 +0200  Jonathan Liu <net147@gmail.com>
+
+       * ext/ogg/gstoggstream.c:
+         oggstream: Fix crashes with 0-byte vorbis packets
+         Fixes bug #655574.
+
+2011-07-28 14:43:53 +0200  Jens Georg <jensg@openismus.com>
+
+       * gst-libs/gst/pbutils/codec-utils.c:
+         pbutils: Add SP levels 4a, 5 and 6
+         https://bugzilla.gnome.org/show_bug.cgi?id=655503
+
+2011-07-26 16:10:17 +0200  Philip Jägenstedt <philipj@opera.com>
+
+       * ext/theora/gsttheoradec.c:
+         theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+
+2011-07-29 10:23:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/Makefile.am:
+       * win32/common/libgsttag.def:
+         Add new GstTagMux base class
+         Hook up new tag muxing base class to build system.
+         https://bugzilla.gnome.org/show_bug.cgi?id=555437
+         API: GstTagMux
+
+2011-07-29 10:22:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/tag/gsttagmux.c:
+       * gst-libs/gst/tag/gsttagmux.h:
+         docs: add documentation for GstTagMux
+
+2011-07-28 20:38:37 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+         tagmux: require subclass to install sink pad template
+         Require the subclass to install both source and sink pad
+         templates. Also, print some warnings if the subclass doesn't
+         do that.
+         https://bugzilla.gnome.org/show_bug.cgi?id=555437
+
+2011-07-15 20:57:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gsttagmux.h:
+         tagmux: const-ify GstTagList argument of render vfuncs
+
+2011-07-15 20:39:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+       * gst-libs/gst/tag/gsttagmux.h:
+         tagmux: fix up private base class header so it can be made public
+         Move private bits into a private struct, add some padding.
+         https://bugzilla.gnome.org/show_bug.cgi?id=555437
+
+2011-07-28 23:31:03 +0100  Michael Smith <msmith@songbirdnest.com>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+       * gst-libs/gst/tag/gsttagmux.h:
+         tagmux: add support for end tags
+         Originally "id3tag: Add new id3 tagging plugin, supports v1, v2.3,
+         and v2.4." from gst-plugins-bad. This is an artificial bridge commit.
+
+2010-06-06 18:00:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+         ext: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs
+
+2007-11-20 11:41:13 +0000  Julien Moutte <julien@moutte.net>
+
+         Fix build on Mac OS X 10.5
+         Original commit message from CVS:
+         2007-11-20  Julien MOUTTE  <julien@moutte.net>
+         * gst-libs/gst/tag/gsttagmux.c: (gst_tag_lib_mux_render_tag),
+         (gst_tag_lib_mux_adjust_event_offsets):
+         * gst/qtdemux/qtdemux.c: (qtdemux_parse_theora_extension):
+         * sys/osxaudio/Makefile.am:
+         * sys/osxvideo/cocoawindow.h:
+         * sys/osxvideo/cocoawindow.m: Fix build on Mac OS X 10.5
+
+2007-09-13 15:04:15 +0000  Sebastian Dröge <slomo@circular-chaos.org>
+
+         Update my mail address.
+         Original commit message from CVS:
+         * ext/taglib/gstapev2mux.cc:
+         * ext/taglib/gstapev2mux.h:
+         * gst-libs/gst/tag/gsttagmux.c:
+         * tests/check/elements/apev2mux.c:
+         Update my mail address.
+
+2006-05-30 14:35:18 +0000  Sebastian Dröge <mail@slomosnail.de>
+
+         Add apev2mux element (#343122).
+         Original commit message from CVS:
+         Patch by: Sebastian Dröge  <mail at slomosnail de >
+         * docs/plugins/gst-plugins-good-plugins-docs.sgml:
+         * docs/plugins/gst-plugins-good-plugins-sections.txt:
+         * ext/taglib/Makefile.am:
+         * ext/taglib/gstapev2mux.cc:
+         * ext/taglib/gstapev2mux.h:
+         * ext/taglib/gstid3v2mux.cc:
+         * gst-libs/gst/tag/gsttagmux.c: (plugin_init):
+         * gst-libs/gst/tag/gsttagmux.h:
+         Add apev2mux element (#343122).
+         * tests/check/Makefile.am:
+         * tests/check/elements/apev2mux.c:
+         (test_taglib_apev2mux_create_tags),
+         (test_taglib_apev2mux_check_tags), (fill_mp3_buffer), (got_buffer),
+         (demux_pad_added), (test_taglib_apev2mux_check_output_buffer),
+         (test_taglib_apev2mux_with_tags), (GST_START_TEST),
+         (apev2mux_suite), (main):
+         Add unit test for apev2mux element.
+
+2006-05-18 12:46:08 +0000  James Doc Livingston <doclivingston@gmail.com>
+
+         gst-libs/gst/tag/gsttagmux.c: Merge event tags and tag setter tags correctly (#339918). Also, don't leak taglist in case...
+         Original commit message from CVS:
+         Patch by: James "Doc" Livingston  <doclivingston gmail com>
+         * gst-libs/gst/tag/gsttagmux.c: (gst_tag_lib_mux_render_tag):
+         Merge event tags and tag setter tags correctly (#339918). Also,
+         don't leak taglist in case of an error.
+
+2006-05-01 11:46:33 +0000  Thomas Vander Stichele <thomas@apestaart.org>
+
+         docs/plugins/Makefile.am: also check .cc files for gtk-doc markup
+         Original commit message from CVS:
+         * docs/plugins/Makefile.am:
+         also check .cc files for gtk-doc markup
+         * configure.ac:
+         * docs/plugins/gst-plugins-good-plugins-docs.sgml:
+         * docs/plugins/gst-plugins-good-plugins-sections.txt:
+         * tests/check/Makefile.am:
+         * tests/check/elements/id3v2mux.c: (id3v2mux_suite), (main):
+         * ext/Makefile.am:
+         * ext/taglib/Makefile.am:
+         * ext/taglib/gstid3v2mux.h:
+         * gst-libs/gst/tag/gsttagmux.c:
+         * gst-libs/gst/tag/gsttagmux.h:
+         move taglib-based id3v2muxer to -good.  Fixes #336110.
+
+2006-04-30 16:16:59 +0000  Thomas Vander Stichele <thomas@apestaart.org>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+         small cleanups
+         Original commit message from CVS:
+         small cleanups
+
+2006-04-29 18:46:36 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/gsttaglib.cc: Post an error message on the bus in the (extremely unlikely) case of an error.
+         Original commit message from CVS:
+         * ext/taglib/gsttaglib.cc:
+         Post an error message on the bus in the (extremely unlikely)
+         case of an error.
+
+2006-04-29 18:18:24 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/: Split the actual ID3v2 tag rendering code into its own subclass.
+         Original commit message from CVS:
+         * ext/taglib/Makefile.am:
+         * ext/taglib/gstid3v2mux.cc:
+         * ext/taglib/gstid3v2mux.h:
+         * ext/taglib/gsttaglib.cc:
+         * ext/taglib/gsttaglib.h:
+         Split the actual ID3v2 tag rendering code into
+         its own subclass.
+
+2006-04-28 15:33:09 +0000  Thomas Vander Stichele <thomas@apestaart.org>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+       * gst-libs/gst/tag/gsttagmux.h:
+         pedantic cleanups
+         Original commit message from CVS:
+         pedantic cleanups
+
+2006-04-01 16:50:49 +0000  Thomas Vander Stichele <thomas@apestaart.org>
+
+       * gst-libs/gst/tag/gsttagmux.c:
+         add taglib checks and docs
+         Original commit message from CVS:
+         add taglib checks and docs
+
+2006-03-26 19:56:37 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/gsttaglib.*: Fix newsegment event handling a bit. We need to cache the first newsegment event, because we ...
+         Original commit message from CVS:
+         * ext/taglib/gsttaglib.cc:
+         * ext/taglib/gsttaglib.h:
+         Fix newsegment event handling a bit. We need to
+         cache the first newsegment event, because we can't
+         adjust offsets yet when we get it, as we don't
+         know the size of the tag yet for sure at that point.
+         Also do some minor cleaning up here and there and add
+         some debug statements.
+
+2006-03-25 21:57:24 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/gsttaglib.cc: We do not want to proxy the caps on the sink pad; our source pad should have application/x-i...
+         Original commit message from CVS:
+         * ext/taglib/gsttaglib.cc:
+         We do not want to proxy the caps on the sink pad; our
+         source pad should have application/x-id3 caps; also,
+         don't use already-freed strings in debug messages;
+         finally, adjust buffer offsets on buffers sent out.
+
+2006-03-20 08:59:29 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/gsttaglib.h: Fix left-over gst_my_filter_get_type.
+         Original commit message from CVS:
+         * ext/taglib/gsttaglib.h:
+         Fix left-over gst_my_filter_get_type.
+
+2006-03-13 17:22:19 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/gsttaglib.cc: Add gtk-doc blurb (unused for the time being); match registered plugin name to the filename ...
+         Original commit message from CVS:
+         * ext/taglib/gsttaglib.cc:
+         Add gtk-doc blurb (unused for the time being); match registered
+         plugin name to the filename of the plugin (taglibmux => taglib)
+
+2006-03-12 15:02:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+         ext/taglib/: Add support for writing MusicBrainz IDs.
+         Original commit message from CVS:
+         * ext/taglib/Makefile.am:
+         * ext/taglib/gsttaglib.cc:
+         * ext/taglib/gsttaglib.h:
+         Add support for writing MusicBrainz IDs.
+
+2006-03-11 10:58:08 +0000  Alex Lancaster <alexlan@fedoraproject.org>
+
+         ext/taglib/gsttaglib.cc: and add support for TCOP (copyright)
+         Original commit message from CVS:
+         2006-03-11  Christophe Fergeau  <teuf@gnome.org>
+         Patch by: Alex Lancaster
+         * ext/taglib/gsttaglib.cc: fix writing of TPOS tags (album number),
+         and add support for TCOP (copyright)
+
+2006-03-09 17:44:17 +0000  Christophe Fergeau <teuf@gnome.org>
+
+         new id3v2 muxer based on TagLib
+         Original commit message from CVS:
+         2006-03-09  Christophe Fergeau  <teuf@gnome.org>
+         reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
+         * configure.ac:
+         * ext/Makefile.am:
+         * ext/taglib/Makefile.am:
+         * ext/taglib/gsttaglib.cc:
+         * ext/taglib/gsttaglib.h: new id3v2 muxer based on TagLib
+
+2011-07-28 11:21:26 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: rename flags names
+         Rename flags names from native-audio/-video to
+         no-audio/video-conversion to be more explicit on what it does
+
+2011-07-20 18:10:57 +0200  Stefan Sauer <ensonic@google.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: fix latency calculation for live elements
+         Max_latency was computed on already adjusted min_latency. Introduce a new
+         variable for clarity. Spotted by Blaise Gassend.
+         Fixes #644284
+
+2011-07-28 11:44:20 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: fix max latency calculation
+         ... to allow infinite max, as also claimed by comment.
+
+2011-06-01 10:21:39 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: drop samples that are too late
+         ... rather than having all of them rendered at 0 or subsequently aligned,
+         likely inevitably leading to repeated resyncing.
+
+2011-07-26 13:51:31 +0200  Stefan Sauer <ensonic@google.com>
+
+       * tests/check/pipelines/basetime.c:
+         basetime: fix failing test
+         Always use audiotestsrc as it seems to have been the intention according to the
+         comment header. The test does not work with live-audiosources.
+
+2011-07-25 19:51:24 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * tests/check/elements/playbin2-compressed.c:
+         tests: rename the test suite to match the binary
+         This unbreaks determining the name for make elements/playbin2-compressed.check
+         from the test output.
+
+2011-07-25 19:39:55 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/adder/gstadder.c:
+       * gst/adder/gstadder.h:
+         adder: rework pending event handling
+         Use atomic ops on pending flags. Rename the segment_pending to
+         new_segment_pending. Set new_segment_pending not when we received seek, but
+         when we received the first upstream new_segment.
+
+2011-07-25 19:11:59 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/adder/gstadder.c:
+         adder: more debug logging for events
+
+2011-07-26 12:33:56 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Allow all EOS to go through if we don't have a next group
+         Only drop them if the current group isn't drained .. AND there is a
+         next group to switch to.
+         Should Fix #655268
+
+2011-07-25 18:37:15 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Avoid resetting playsink when not needed
+         When we don't have specific {audio|video|text}-sink properties, don't
+         set them on playsink when reconfiguring.
+         If we do that, we end up setting the previous configured sink to
+         GST_STATE_NULL resulting in any potentially pending push being returned
+         with GST_FLOW_WRONG_STATE which will cause the upstream elements to
+         silently stop.
+         https://bugzilla.gnome.org/show_bug.cgi?id=655279
+
+2011-07-25 12:04:02 +0200  Stefan Sauer <ensonic@google.com>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: improve the example
+         Mentioned that this is not ment to be used with subtitles and suggest alternatives.
+
+2011-07-25 10:41:04 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: Properly handle multi-stream chains
+         When we have a multi-stream (i.e. audio and video) input and the demuxer
+         adds/removes pads for a new stream (common in a mpeg-ts stream when the
+         program stream mapping is updated), the algorithm for EOS handling was
+         previously wrong (it would only drop the EOS of the *last* pad but would
+         let the EOS on the other pads go through).
+         The logic has only been changed a tiny bit for EOS handling resulting in:
+         * If there is no next group, let the EOS go through
+         * If there is a next group, but not all pads are drained in the active
+         group, drop the EOS event
+         * If there is a next group and all pads are drained, then the ghostpads
+         will be removed and the EOS event will be dropped automatically.
+
+2011-07-23 14:21:27 +0200  Stefan Sauer <ensonic@google.com>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: add example for feeding from stdin
+
+2011-07-23 13:46:31 +0200  Stefan Sauer <ensonic@google.com>
+
+       * tests/check/pipelines/basetime.c:
+         test: print actual timestamp on failure
+
+2011-07-20 13:46:31 +0200  Stefan Sauer <ensonic@google.com>
+
+       * ext/pango/gsttextoverlay.c:
+         textoverlay: keep untimestamped textbuffer until next one
+         Instead of discarding untimestamped text-buffers immeditely after rendering,
+         keep them until we receive the next text buffer.
+         Fixes #654959
+
+2011-07-15 16:46:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/elements/decodebin2.c:
+         tests: add decodebin2 test for parser autoplugging
+         Make sure decodebin2 doesn't try to plug the same parser twice
+         in a row.
+
+2011-07-06 19:40:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/elements/decodebin.c:
+       * tests/files/Makefile.am:
+       * tests/files/test.mp3:
+         tests: add decodebin1 test for parser autoplugging
+         Make sure decodebin1 doesn't try to plug the same parser twice
+         in a row (so we can change all parsers to accept parsed input as
+         well without breaking applications still using the old decodebin1
+         element).
+
+2011-07-07 15:02:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/playback/gstdecodebin.c:
+         decodebin: don't plug the same parser multiple times in a row
+         This allows us to make parsers accept both parsed and unparsed input
+         without decodebin plugging them in a loop until things blow up, ie.
+         without affecting applications that still use the old playbin or the
+         old decodebin.
+         (Making parsers accept parsed input is useful for later when we want
+         to use parsers to convert the stream-format into something the decoder
+         can handle. It's also much more convenient for application authors
+         who can plug parsers unconditionally in transcoding pipelines, for
+         example).
+
+2011-07-14 13:56:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/pbutils/codec-utils.c:
+       * win32/common/libgstpbutils.def:
+         docs: add Since marker to gtk-doc chunk for new codec utils API
+         And add new API to .def file.
+         API: gst_codec_utils_h264_get_level_idc()
+
+2011-03-07 17:55:48 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/pbutils/codec-utils.c:
+       * gst-libs/gst/pbutils/codec-utils.h:
+         codec-utils: Add method to convert H.264 text level in a level_idc
+
+2011-07-09 18:33:38 -0700  David Schleef <ds@schleef.org>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: check for EOS on both current and best pad
+         Oops, need both.  Fixes #654270.
+
+2011-07-09 18:24:26 -0700  David Schleef <ds@schleef.org>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: check for EOS on current pad, not best
+         Fixes #654270.
+
+2011-07-09 11:59:42 +0200  Piotr Fusik <fox@scene.pl>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: fixed detection of audio/x-sap
+         Fixes: #654295.
+         Signed-off-by: David Schleef <ds@schleef.org>
+
+2011-06-30 20:33:36 +0200  Luis de Bethencourt <luis@debethencourt.com>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: fix compiler warning
+         cspace and cspace2 may run uninitialized.
+
+2011-06-29 13:12:49 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Add flags to disable conversion elements
+         Add a flags property and two flags to allow one to disable the
+         conversion elements within encodebin. Doing so insists that the
+         uncompressed input to encodebin for the appropriate stream type is
+         sufficient to meet the caps requirements of the encoders, muxers and
+         encodebin target.
+         This is mostly beneficial to bypass slow caps negotiations in the
+         conversion elements.
+
+2011-06-29 09:59:05 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+       * tests/check/libs/tag.c:
+         tag: xmp: Remove extra chars from end of xmp packet
+         Windows picture viewer is unhappy with extra trailing chars at the
+         end of the xmppacket footer. So remove them as they aren't needed.
+
+2011-06-29 11:30:51 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * gst/encoding/gststreamsplitter.c:
+         streamsplitter: Fix getcaps src pad caps merge
+         Caps returned from gst_pad_peer_get_caps_reffed () may not be writable.
+         If they are not is should cause an assertion in gst_caps_merge (),
+         however, sometimes assertions are disabled in binary builds of -base and
+         it's safer to just be sure the caps are writable. Also, check that the
+         reffed caps pointer is not NULL.
+
+2011-06-15 13:51:31 +0200  Philip Jägenstedt <philipj@opera.com>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefind: NULL check in degas_type_find
+         The length check isn't sufficient, an source might
+         report the correct length, but then still fail to
+         read the requested number of bytes for some reason.
+         https://bugzilla.gnome.org/show_bug.cgi?id=652642
+
+2011-06-26 01:06:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/design/design-decodebin.txt:
+         docs: minor addition to decodebin2 design doc
+
+2011-06-26 01:06:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/libs/navigation.c:
+         tests: the navigation interface isn't GstImplementsInterface-wrapped
+
+2011-06-26 00:49:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/interfaces/streamvolume.h:
+         interfaces: GstStreamVolume isn't wrapped by GstImplementsInterface
+         This interface depends on properties and isn't per-instance.
+
+2011-06-26 00:40:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/rtsp/gstrtspextension.h:
+         rtsp: GstRTSPExtension isn't wrapped by GstImplementsInterface
+         Fix copy'n'paste error in headers, GstRTSPExtension isn't
+         something that's per-instance.
+
+2011-06-26 00:36:36 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/xmpwriter.h:
+         tag: GstXmpWriter doesn't use the GstImplementsInterface
+         No need for per-instance checking of interface implementation here,
+         presumably just a copy'n'paste issue.
+
+2011-06-11 19:03:57 +1000  Jonathan Matthew <jonathan@d14n.org>
+
+       * gst-libs/gst/pbutils/encoding-target.c:
+         encoding-target: set names on audio and video profiles
+         https://bugzilla.gnome.org/show_bug.cgi?id=652342
+
+2011-06-23 11:28:04 -0700  David Schleef <ds@schleef.org>
+
+       * common:
+         Automatic update of common submodule
+         From 69b981f to 605cd9a
+
+2011-06-18 13:32:17 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+         Bump git version after unplanned 0.10.35 release
+         Merge branch '0.10.35'
+         Conflicts:
+         configure.ac
+         docs/plugins/inspect/plugin-adder.xml
+         docs/plugins/inspect/plugin-alsa.xml
+         docs/plugins/inspect/plugin-app.xml
+         docs/plugins/inspect/plugin-audioconvert.xml
+         docs/plugins/inspect/plugin-audiorate.xml
+         docs/plugins/inspect/plugin-audioresample.xml
+         docs/plugins/inspect/plugin-audiotestsrc.xml
+         docs/plugins/inspect/plugin-cdparanoia.xml
+         docs/plugins/inspect/plugin-decodebin.xml
+         docs/plugins/inspect/plugin-encoding.xml
+         docs/plugins/inspect/plugin-ffmpegcolorspace.xml
+         docs/plugins/inspect/plugin-gdp.xml
+         docs/plugins/inspect/plugin-gio.xml
+         docs/plugins/inspect/plugin-gnomevfs.xml
+         docs/plugins/inspect/plugin-libvisual.xml
+         docs/plugins/inspect/plugin-ogg.xml
+         docs/plugins/inspect/plugin-pango.xml
+         docs/plugins/inspect/plugin-playback.xml
+         docs/plugins/inspect/plugin-subparse.xml
+         docs/plugins/inspect/plugin-tcp.xml
+         docs/plugins/inspect/plugin-theora.xml
+         docs/plugins/inspect/plugin-typefindfunctions.xml
+         docs/plugins/inspect/plugin-uridecodebin.xml
+         docs/plugins/inspect/plugin-videorate.xml
+         docs/plugins/inspect/plugin-videoscale.xml
+         docs/plugins/inspect/plugin-videotestsrc.xml
+         docs/plugins/inspect/plugin-volume.xml
+         docs/plugins/inspect/plugin-vorbis.xml
+         docs/plugins/inspect/plugin-ximagesink.xml
+         docs/plugins/inspect/plugin-xvimagesink.xml
+         gst-libs/gst/audio/Makefile.am
+         gst/subparse/gstsubparse.c
+         win32/common/_stdint.h
+         win32/common/config.h
+
+2011-06-18 11:16:19 +0200  Edward Hervey <bilboed@bilboed.com>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: Allow GError* argument to be NULL
+         This is how other methods taking GError* arguments behave.
+         Fixes #652838
+
+=== release 0.10.35 ===
+
+2011-06-15 19:29:48 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+         Release 0.10.35
+         This is an ad-hoc release that is almost identical to 0.10.34:
+         * work around GLib atomic ops API change
+         * don't use G_CONST_RETURN in public headers
+         * subparse: typefinding fixes for subtitles in non-UTF8 charsets
+
+2011-06-15 15:08:32 +0100  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+       * gst-plugins-base.spec.in:
+         Add gobject introspection files to spec
+
+2011-06-15 14:53:56 +0100  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+       * gst-plugins-base.spec.in:
+         remove old v4l plugin from spec file
+
+2011-06-15 14:49:41 +0100  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+       * tests/examples/Makefile.am:
+         Add missing dist subdir
+
+2011-06-15 14:21:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/audio/Makefile.am:
+         audio: link test program against libgstaudio
+
+2011-06-14 10:31:18 +0530  Debarshi Ray <rishi@gnu.org>
+
+       * gst-libs/gst/pbutils/codec-utils.c:
+         codec-utils: restore 7350 as a valid sampling frequency for AAC
+         This was lost during c77f88cac675a1dbb89e40da8e3c28320523bfca.
+
+2011-06-09 18:30:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstid3tag.c:
+       * gst-libs/gst/tag/gstvorbistag.c:
+       * gst-libs/gst/tag/tag.h:
+         libs: replace G_CONST_RETURN with 'const'
+         G_CONST_RETURN will be deprecated soon.
+         https://bugzilla.gnome.org/show_bug.cgi?id=652211
+
+2011-05-31 22:14:09 -0700  David Schleef <ds@schleef.org>
+
+       * gst/audioresample/resample.c:
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+       * gst/videoscale/vs_4tap.c:
+       * gst/videotestsrc/generate_sine_table.c:
+       * gst/videotestsrc/videotestsrc.c:
+       * tests/icles/test-xoverlay.c:
+         convert M_PI to G_PI, for msvc
+
+2011-06-06 14:41:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/tag/gsttagdemux.c:
+         tagdemux: no input data implies no type can be found
+         ... and posting a proper error message to this effect is appropriately
+         informative and prevents auto-plugging otherwise stalling.
+
+2011-06-04 13:36:55 -0700  David Schleef <ds@schleef.org>
+
+       * gst/adder/gstadder.c:
+         adder: Work around changes in g_atomic API
+         See #651514 for details.
+
+2011-05-31 20:38:56 -0700  David Schleef <ds@schleef.org>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix c99-ism
+
+2011-05-23 16:02:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: Try to typefind even if conversion to UTF8 failed
+         Fixes bug #600043.
+
+2011-05-23 15:51:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: Interprete typefind strings passed to GRegex as raw bytes instead of valid UTF8
+
+2011-05-20 10:48:39 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/lang.c:
+         lang: fix possible array overrun
+         We where checking for i<G_N_ELEMENTS, but where accessing i+1.
+
+2011-06-14 10:31:18 +0530  Debarshi Ray <rishi@gnu.org>
+
+       * gst-libs/gst/pbutils/codec-utils.c:
+         codec-utils: restore 7350 as a valid sampling frequency for AAC
+         This was lost during c77f88cac675a1dbb89e40da8e3c28320523bfca.
+
+2011-05-31 22:14:09 -0700  David Schleef <ds@schleef.org>
+
+       * gst/audioresample/resample.c:
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+       * gst/videoscale/vs_4tap.c:
+       * gst/videotestsrc/generate_sine_table.c:
+       * gst/videotestsrc/videotestsrc.c:
+       * tests/icles/test-xoverlay.c:
+         convert M_PI to G_PI, for msvc
+
+2011-06-07 21:30:18 -0700  David Schleef <ds@schleef.org>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggmux.h:
+         oggmux: refactor how EOS is determined
+         This decreases the number of buffers held on each pad by one,
+         eliminating next_buffer.  Simplifies the logic by relying solely
+         on CollectPads to let us know when a pad is in EOS.  As a side
+         benefit, the collect pads related code is structured more like
+         other CollectPad users.
+         The previous code would occasionally mark the wrong pad as EOS,
+         causing the code to get in a state where all the streams were
+         finished, but EOS hadn't been sent to the source pad.
+
+2011-06-09 18:30:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstid3tag.c:
+       * gst-libs/gst/tag/gstvorbistag.c:
+       * gst-libs/gst/tag/tag.h:
+         libs: replace G_CONST_RETURN with 'const'
+         G_CONST_RETURN will be deprecated soon.
+         https://bugzilla.gnome.org/show_bug.cgi?id=652211
+
+2011-06-09 00:02:07 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Fix LocationShown syntax
+         According to the specification, the LocationShown requires its
+         struct fields to be inside a Bag type.
+
+2011-06-08 14:21:40 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Add room for extra namespace definitions
+         Adds an extra field to the namespace definitions of the schemas
+         so they can add the namespace of any array/struct fields they
+         might use internally.
+
+2011-06-08 12:21:43 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/pango/Makefile.am:
+       * gst/audioresample/Makefile.am:
+       * tests/check/Makefile.am:
+       * tests/examples/v4l/Makefile.am:
+         GST_PLUGINS_BASE_LIBS is not defined in -base.
+
+2011-06-08 11:33:07 +0200  Christophe Fergeau <cfergeau@redhat.com>
+
+       * tests/examples/audio/Makefile.am:
+         examples: don't link testchannels example with system libgstaudio
+         The testchannels audio test program is using -lgstaudio-0.10 to link
+         with libgstaudio which won't use the gstaudio library that was just
+         built but the one from the system. This is an issue since it means
+         we won't be testing the code from the current source tree, and it
+         also breaks the build when building on a system which don't have
+         a libgstaudio yet.
+         https://bugzilla.gnome.org/show_bug.cgi?id=652100
+
+2011-06-08 11:11:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/design/design-decodebin.txt:
+         docs: add some text about parser/decoder autoplugging issues
+
+2011-06-06 14:41:41 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst-libs/gst/tag/gsttagdemux.c:
+         tagdemux: no input data implies no type can be found
+         ... and posting a proper error message to this effect is appropriately
+         informative and prevents auto-plugging otherwise stalling.
+
+2011-06-06 12:48:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+       * ext/ogg/gstoggmux.h:
+         oggmux: determine granulepos metadata using stream mapper whenever possible
+         ... which unfortunately is not the case for all types, but at least so for
+         most common ones.
+
+2011-06-06 12:46:05 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: convert incoming buffer timestamp to running time
+         ... so all subsequent manipulation can take place in the proper timeline
+         without further ado.
+
+2011-06-01 20:48:44 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/ogg/gstoggmux.c:
+         oggmux: remove superfluous code
+         ... since there is nothing in oggstream that cares (or even should)
+         about granulepos for what is being asked from it.
+
+2011-06-04 13:36:55 -0700  David Schleef <ds@schleef.org>
+
+       * gst/adder/gstadder.c:
+         adder: Work around changes in g_atomic API
+         See #651514 for details.
+
+2011-05-31 20:38:56 -0700  David Schleef <ds@schleef.org>
+
+       * gst-libs/gst/pbutils/gstdiscoverer.c:
+         discoverer: fix c99-ism
+
+2011-06-03 16:29:00 +0200  Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+       * ext/theora/gsttheoraenc.c:
+         theora: separate encode and push block in chain, into own function.
+
+2011-06-02 19:08:41 +0200  Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+       * ext/theora/gsttheoraenc.c:
+         theora: use fixed src cap pads
+
+2011-06-02 18:57:05 +0200  Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+       * ext/theora/gsttheoraenc.c:
+       * ext/theora/gsttheoraenc.h:
+         theora: set the width/height/par on the srcpad caps
+
+2011-06-02 17:29:53 +0200  Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+       * ext/theora/gsttheoraenc.c:
+         theora: get sink caps info from downstream element pad
+         https://bugzilla.gnome.org/show_bug.cgi?id=651564
+
+2011-05-27 14:41:39 -0700  Patrick McCarty <patrick.mccarty@intel.com>
+
+       * gst-libs/gst/pbutils/descriptions.c:
+         pbutils: add description for wbmp images.
+         https://bugzilla.gnome.org/show_bug.cgi?id=651294
+
+2011-06-02 00:55:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/typefind/gsttypefindfunctions.c:
+         typefinding: add typefinder for WAP WBMP bitmaps
+         https://bugzilla.gnome.org/show_bug.cgi?id=651294
+
+2011-06-02 11:53:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.c:
+         playsink: Fix deadlock in the audio/video converter bins when linking fails
+
+2011-06-01 17:31:35 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * tests/check/Makefile.am:
+         check: ... and don't forget to add the new arm header
+         Forgot it in my previous commit
+
+2011-06-01 17:24:30 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * tests/check/libs/libsabi.c:
+       * tests/check/libs/struct_arm.h:
+         libsabi: Add structure sizes for arm
+
+2011-05-31 19:57:57 -0700  David Schleef <ds@schleef.org>
+
+       * gst-libs/gst/fft/gstfftf32.c:
+       * gst-libs/gst/fft/gstfftf64.c:
+       * gst-libs/gst/fft/gstffts16.c:
+       * gst-libs/gst/fft/gstffts32.c:
+         fft: s/M_PI/G_PI/ for MSVC
+
+2011-05-31 11:05:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/volume/gstvolume.c:
+       * gst/volume/gstvolumeorc.orc:
+       * tests/check/elements/volume.c:
+         volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
+         Also add a unit test for this. Previously volumes bigger than 4.0
+         would have resulted in overflows in the fixed point processing.
+         Fixes bug #649642.
+
+2011-05-29 13:32:04 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/elements/adder.c:
+       * tests/check/elements/ffmpegcolorspace.c:
+       * tests/check/elements/vorbistag.c:
+       * tests/check/libs/rtp.c:
+       * tests/check/pipelines/theoraenc.c:
+         tests: fix some more unused-but-set-variable warnings with gcc 4.6
+
+2011-05-28 16:14:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * win32/common/libgstvideo.def:
+         win32: update .def file for new API
+
+2011-05-28 12:39:06 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * Makefile.am:
+       * tests/check/elements/.gitignore:
+         Ignore new playbin2-compress test binary
+         And add old testchannels binary to CRUFT_FILES.
+
+2011-05-27 23:31:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/video.h:
+         video: sprinkle some G_GNUC_CONST
+         Mark functions that have no effect besides their return value and
+         only inspect their input arguments with G_GNUC_CONST. (We just
+         ignore the g_return_val_if_fail() guards for this)
+
+2011-05-27 23:25:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst-libs/gst/video/video.h:
+         video: clean up header file
+         Sprinkle some spaces and newlines here and there.
+
+2011-05-27 15:03:19 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * configure.ac:
+       * gst-libs/gst/audio/.gitignore:
+       * gst-libs/gst/audio/Makefile.am:
+       * gst-libs/gst/audio/testchannels.c:
+       * tests/examples/Makefile.am:
+       * tests/examples/audio/.gitignore:
+       * tests/examples/audio/Makefile.am:
+       * tests/examples/audio/testchannels.c:
+         audio: move testchannels example to 'tests/examples' dir
+         Also fix it up a little to not include 'c' file but link to the libs instead.
+
+2011-05-27 11:39:21 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/pbutils/codec-utils.c:
+         code-utile: fix level descriptions for fgs
+         fgs levels range from 8-13 and are mapped to 0-5.
+
+2011-05-25 14:38:21 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/pbutils/codec-utils.c:
+         codec-utils: fix mpeg4 level verification
+         The current condition would never be true. As levels<6 are asp and levels>7 and
+         <14 are fgs, we should return NULL for cases 6,7,14,15.
+
+2011-05-26 12:33:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * sys/xvimage/xvimagesink.c:
+         xvimagesink: Fallback to non-XShm mode if allocating the XShm image failed
+         Fixes bug #630442.
+
+2011-05-26 12:30:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * sys/ximage/ximagesink.c:
+         ximagesink: Fallback to non-XShm mode if allocating the XShm image failed
+         Fixes bug #630442.
+
+2011-05-26 11:41:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+         playbin2: Let the input-selectors sync all streams to the running time
+         This is especially needed when switching between a non-sparse and sparse
+         video stream, see bug #537382. It also lowers the time needed for switching
+         between streams a bit.
+
+2011-01-20 00:52:50 -0700  Lane Brooks <dirjud@gmail.com>
+
+       * ext/pango/gsttextoverlay.c:
+       * ext/pango/gsttextoverlay.h:
+         textoverlay: added 'outline-color' parameter to control whether text gets a shadow
+
+2011-01-20 00:42:39 -0700  Lane Brooks <dirjud@gmail.com>
+
+       * ext/pango/gsttextoverlay.c:
+       * ext/pango/gsttextoverlay.h:
+         textoverlay: added 'shadow' option to control whether text gets a shadow
+
+2011-05-26 10:48:05 +0200  Jindrich Makovicka <makovick@gmail.com>
+
+       * ext/pango/gsttextrender.c:
+         textrender: Correctly negotiate with downstream instead of just using random caps
+         Fixes bug #638897.
+
+2011-05-26 10:43:51 +0200  Jindrich Makovicka <makovick@gmail.com>
+
+       * ext/pango/gsttextrender.c:
+         textrender: Add bound checks to not write outside the image area
+
+2011-05-26 10:42:46 +0200  Jindrich Makovicka <makovick@gmail.com>
+
+       * ext/pango/gsttextrender.c:
+         textrender: Prevent double unref of caps if the caps can't be set on the srcpad
+
+2011-05-26 10:31:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/gnomevfs/gstgnomevfssrc.c:
+         gnomevfssrc: Keep track of interruptions during read with a flag
+
+2010-09-03 09:11:30 -0400  American Dynamics <GStreamer-Bugs@tycosp.com>
+
+       * ext/gnomevfs/gstgnomevfssrc.c:
+       * ext/gnomevfs/gstgnomevfssrc.h:
+         gnomevfssrc: Add support for cancelling the read operations
+         This allows the state change from PAUSED to READY to be faster.
+         Fixes bug #628337.
+
+2011-05-25 14:14:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+       * sys/ximage/ximagesink.c:
+         ximagesink: Remove g_assert from interface query
+
+2011-05-25 14:08:43 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+       * sys/xvimage/xvimagesink.c:
+         xvimagesink: Remove the g_assert from interface query
+
+2011-05-26 00:17:40 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+       * gst/audiotestsrc/gstaudiotestsrc.h:
+         audiotestsrc: add blue and violet noise by using spectral inversion
+         Add blue and violet noise by spectral inversion of pink and red noise.
+         Fixes #649969
+
+2011-05-25 23:40:26 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/audiotestsrc/gstaudiotestsrc.c:
+       * gst/audiotestsrc/gstaudiotestsrc.h:
+         audiotestsrc: add red (brownian) noise generator
+         Add another noise generator which produces a quite dark noise color.
+         Fixes parts of #649969.
+
+2010-09-27 13:32:31 +0400  Vladimir Eremeev <eremeev@atlantis.ru>
+
+       * tests/examples/seek/seek.c:
+         seek: set selected/default audio/video sinks on playbin and playbin2
+         https://bugzilla.gnome.org/show_bug.cgi?id=630322
+
+2011-05-25 19:03:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/seek/seek.c:
+         seek: add --audiosink and --videosink command line options
+
+2011-05-25 18:50:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/seek/seek.c:
+         seek: use the right GDK defines to differentiate between the backends
+
+2011-05-25 18:45:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/examples/seek/seek.c:
+         seek: use gst_filename_to_uri() to convert a filename to a uri
+
+2010-09-27 12:46:54 +0400  Vladimir Eremeev <eremeev@atlantis.ru>
+
+       * tests/examples/seek/seek.c:
+         seek: make seek example work in win32
+         https://bugzilla.gnome.org/show_bug.cgi?id=630322
+
+2011-05-25 16:08:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         configure: update GLib requirement to >= 2.24
+         Same as core (make implicit requirement explicit).
+         http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
+
+2011-05-25 15:24:33 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: remove bogus <0 check for unsigned var
+         bytes_written is a gsize which is unsigned and thus never < 0.
+
+2011-05-25 15:23:13 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * ext/theora/gsttheoraenc.c:
+         theoraenc: fix variable type for bytes_consumed
+         th_encode_ctl() returns an int. Using a gsize result in bogus <0 checks.
+
+2011-05-25 15:04:20 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/riff/riff-read.c:
+         riff: remove the g_return_if_fail as we test it below
+         We don't want to return without setting taglist=NULL if asserts are on and with
+         setting taglist=NULL otherwise.
+
+2011-05-25 14:28:18 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/volume/gstvolume.c:
+         volume: use a flag for 'mute' using the controller
+         Previously we checked mute_csource to determine wheter we need to premultiply
+         volumes and mute values. That fails as we unrefs mute_csource and set it to
+         NULL after. Use an extra flag instead.
+
+2011-05-25 14:12:50 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+         exiftag: reflow the code
+         Move the warning on unsupported units to the swicth-case. Move fetching the
+         pending tags down to where we use them.
+
+2011-05-25 13:59:57 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/gstexiftag.c:
+         exiftag: set value=1 if we found the token
+         Otherwise we never write the tag. This would also be consistent with the code in
+         deserialize_scene_type().
+
+2011-05-25 12:30:51 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * sys/xvimage/xvimagesink.c:
+         xvimagesink: run gst-indent
+
+2011-05-25 12:29:21 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * sys/xvimage/xvimagesink.c:
+         xvimagesink: remove unneded !=NULL checks
+         We check for matching_attr!=NULL right before already.
+
+2011-05-24 00:13:04 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: massage the section file more
+         Add more symbols (from unused.txt). Move the whole bunch of riff-fourcc defines
+         to std section too (no one is hoing to document them, right).
+
+2011-05-24 00:12:26 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/video/video.c:
+         docs: add missing parameter docs
+
+2011-05-23 23:53:38 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: move the riff structure to std-section
+         If someone intents to document them and the fields we can move them back.
+
+2011-05-23 23:53:06 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/pbutils/gstpluginsbaseversion.c:
+         docs: move pluginbaseversion to separate section as we have section docs
+
+2011-05-23 23:51:15 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/rtsp/gstrtspdefs.h:
+         docs: add minimal docblobs for status code and headers
+         Use a trick to avoid documenting all 100 enums.
+
+2011-05-23 23:41:56 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/interfaces/xoverlay.c:
+       * gst-libs/gst/interfaces/xoverlay.h:
+         docs: update xoverlay docs for api addition and deprecation
+
+2011-05-23 23:12:50 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/rtp/gstbasertpaudiopayload.c:
+       * gst-libs/gst/rtp/gstbasertpaudiopayload.h:
+       * gst-libs/gst/rtp/gstbasertpdepayload.c:
+       * gst-libs/gst/rtp/gstbasertpdepayload.h:
+       * gst-libs/gst/rtp/gstbasertppayload.c:
+       * gst-libs/gst/rtp/gstbasertppayload.h:
+         docs: rtp library docs update
+
+2011-05-23 22:58:22 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/audio/gstringbuffer.h:
+       * gst-libs/gst/cdda/gstcddabasesrc.h:
+       * gst-libs/gst/interfaces/colorbalance.h:
+       * gst-libs/gst/interfaces/colorbalancechannel.h:
+       * gst-libs/gst/interfaces/mixer.h:
+       * gst-libs/gst/interfaces/mixeroptions.h:
+       * gst-libs/gst/interfaces/navigation.h:
+       * gst-libs/gst/interfaces/tuner.h:
+       * gst-libs/gst/video/gstvideofilter.h:
+       * gst-libs/gst/video/gstvideosink.h:
+         docs: add missing documentation for various pieces
+
+2010-02-19 12:54:18 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: recalibrate clock on setcaps
+         Because the spec for the ringbuffer can change when changing
+         the caps, we must recalibrate the clock.
+         https://bugzilla.gnome.org/show_bug.cgi?id=610443
+
+2011-05-23 16:02:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: Try to typefind even if conversion to UTF8 failed
+         Fixes bug #600043.
+
+2011-05-23 16:02:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: Compile the typefind regex with optimization to speed up matching
+
+2011-05-23 15:51:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/subparse/gstsubparse.c:
+         subparse: Interprete typefind strings passed to GRegex as raw bytes instead of valid UTF8
+
+2011-05-23 15:21:59 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/video/convertframe.c:
+         convertframe: fix docs
+         Fixup paramter mismatch between func and prototype. Add missing parameter docs.
+
+2011-05-23 15:08:24 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/audio/gstaudioclock.h:
+       * gst-libs/gst/audio/gstaudiofilter.h:
+       * gst-libs/gst/audio/gstaudiosrc.h:
+       * gst-libs/gst/audio/multichannel.h:
+         docs: fixup audio-library docs
+
+2011-05-23 15:02:27 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/app/gstappsink.c:
+       * gst-libs/gst/app/gstappsrc.c:
+       * gst/app/gstapp.c:
+         docs: fixup appsrc/sink api docs
+
+2011-05-23 14:53:26 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/audio/gstaudioiec61937.c:
+       * gst-libs/gst/audio/gstaudioiec61937.h:
+         docs: fix docs for new api
+         Some parameters where wrong, first line missed the ':' and return docs where
+         broken.
+
+2011-05-23 14:45:23 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+         docs: update xmp api docs
+         Add missing section. Add new section to main-sgml. Add missing function.
+
+2011-05-23 14:07:38 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         xmptag: remove late check
+         We deref the pointer two lines before already and besides this internal function
+         should not be called with this parameter=NULL.
+
+2011-05-23 14:01:29 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         xmptag: have the default branch as the last one
+
+2011-05-23 14:00:04 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         xmptag: an uint value can't be <0
+
+2011-05-23 13:53:06 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/video/video.c:
+         whitespace: trim trailing whitespace
+
+2011-05-23 13:50:59 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/video/video.c:
+         video.c: use a break and a final warning instead of early returns
+         Use breaks for case branches instead of return 0. We don't expect these to
+         happen anyway. Thus have a warning before the final return to make it easier to
+         see when things go out of sync.
+
+2011-05-23 13:49:01 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/video/video.c:
+         video.c: use g_assert_not_reached() for logical error here.
+         This will help to detect them closer to the source if they ever happen.
+
+2011-05-20 10:48:39 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst-libs/gst/tag/lang.c:
+         lang: fix possible array overrun
+         We where checking for i<G_N_ELEMENTS, but where accessing i+1.
+
+2011-05-19 23:41:08 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/audioconvert/gstaudioconvert.c:
+         audioconvert: cleanup helper code
+         make_lossless_changes() returns the same structure that we're passing (probably
+         to enable chaining). Instead of reusing s and making it point to s2 as well,
+         keep using s2. Drop the assignment which in the 2nd case is a dead one anyway.
+
+2011-05-19 23:25:24 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * docs/plugins/gst-plugins-base-plugins.args:
+       * docs/plugins/gst-plugins-base-plugins.hierarchy:
+       * docs/plugins/gst-plugins-base-plugins.interfaces:
+       * docs/plugins/gst-plugins-base-plugins.prerequisites:
+         docs: update plugin introspection data
+         Now more files are merged and produced in a canonical fashion, which hopefully
+         creates less or no delta in the future.
+
+2011-05-19 22:56:53 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From 9e5bbd5 to 69b981f
+
+2011-05-19 13:40:29 +0100  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+       * gst-plugins-base.spec.in:
+         Add new header file
+
+2011-05-19 08:30:14 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Autoplug formatters
+         Autoplug formatters for streams if a formatter with secondary or
+         higher rank is found. Formatters are autoplugged when there is no
+         muxer or when the muxer doesn't implement the tagsetter interface.
+         Currently only the first formatter found is plugged, this might
+         help in lots of cases, but it doesn't solve the
+         'lamemp3 ! xingmux ! id3mux'
+         case.
+         https://bugzilla.gnome.org/show_bug.cgi?id=649841
+
+2011-05-19 08:27:29 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: fix typos
+
+2011-05-18 22:07:58 +0200  Aleix Conchillo Flaque <aleix@oblong.com>
+
+       * ext/vorbis/gstvorbisdec.c:
+         vorbisdec: Handle headers in caps
+
+2011-05-18 16:09:47 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From fd35073 to 9e5bbd5
+
+2011-05-18 13:18:15 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * gst-libs/gst/video/video.c:
+       * gst-libs/gst/video/video.h:
+       * tests/check/libs/video.c:
+         gstvideo: Add gst_video_get_size_from_caps function
+         gst_video_get_size_from_caps () allows easy calculation of the raw video
+         buffer size from some fixed video caps.
+         API: gst_video_get_size_from_caps()
+
+2011-05-18 12:24:02 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From 46dfcea to fd35073
+
+2011-05-18 09:34:52 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+         alsa: Remove unused but set variable
+         Unused but set variables cause warnings in GCC 4.6.x and newer.
+
+2011-05-17 10:20:36 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+         rtsp: Fix typo which broke the build
+
+2011-05-16 15:35:50 +0200  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
+
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+         rtspconnection: not enter in not controllable state unless it is necessary
+         When closing rtspsrc the state change blocks until the polling in the
+         connection timeouts. This is because the second time we loop to read a
+         full message controllable is set to FALSE in the poll group, even though no
+         message is half read.
+         This can be avoided by not setting controllable to FALSE the poll group
+         unless we had begin to read a message.
+         Fixes #610916
+
+2010-05-30 13:21:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/cdparanoia/gstcdparanoiasrc.c:
+       * ext/cdparanoia/gstcdparanoiasrc.h:
+         cdparanoiasrc: fix build on OSX by #undef-ing VERSION before including system headers
+         On OSX the cdparanoia headers include IOKit framework headers (in particular
+         SCSICmds_INQUIRY_Definitions.h) which define a structure that has a member
+         named VERSION, so we must #undef VERSION before including those for things
+         to compile on OSX.
+         Fixes #609918.
+
+2011-05-02 11:43:38 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/videorate/gstvideorate.c:
+       * gst/videorate/gstvideorate.h:
+         videorate: optionally ensure maximum average output frame rate
+         See #628764.
+
+2011-04-29 14:58:02 +0200  Alexey Fisher <bug-track@fisher-privat.net>
+
+       * gst/videorate/gstvideorate.c:
+       * gst/videorate/gstvideorate.h:
+         videorate: optionally only drop frames to ensure maximum frame rate
+         This adds option to arrange for maximal allowed variable frame rate.
+         Fixes #628764.
+
+2011-04-26 13:37:51 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gsturidecodebin.c:
+         uridecodebin: use bitrate to configure streaming buffer-duration default case
+         In particular, in audio only cases whose (estimated) metadata provides bitrate
+         information, the buffer-size based on such bitrate (and buffer-duration)
+         will be much more reasonable than queue2 default buffer-size.
+
+2011-04-26 11:27:40 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * gst/playback/gsturidecodebin.c:
+         uridecodebin: remove some dead code
+         ... which was dead as pads were never added to the list, and need not be added,
+         since removing them is handled by a pad callback.
+
+2011-04-29 11:48:02 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * tests/examples/encoding/Makefile.am:
+         encodebin: examples: Add missing base libs to makefile
+
+2011-04-28 10:58:15 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst/encoding/gstencodebin.c:
+         encodebin: Check for missing converters
+         Adds checks for missing video and audio converter elements
+
+2011-04-27 22:05:55 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/xmpwriter.c:
+         tag: xmpwriter: Rename documentation headers
+         Fix some wrong documentation headers from the first name
+         given to this interface.
+
+2011-04-19 08:41:53 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * tests/check/libs/tag.c:
+         tests: xmp: New tests for the Iptc4xmpExt tags
+
+2011-04-18 23:28:13 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Add Iptc4xmpExt schema support
+         Adds Iptc4xmpExt schema with country, city and sublocation
+         tags mapped
+
+2011-04-19 11:00:24 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Add support for reading struct tags
+         Adds a context variable that controls if the parsing is on
+         'top level' tags or inside a struct tag.
+
+2011-04-18 16:54:54 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Add struct xmp tag type support
+         Adds support for writing the xmp struct tag type, it is a compound tag
+         that has inner tags.
+
+2011-04-18 23:16:59 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Fixing schema maps
+         Do not forget to create a new schema for every supported schema
+         instead of reusing the same object
+
+2011-04-18 10:20:00 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * gst-libs/gst/tag/gstxmptag.c:
+         tag: xmp: Write the same tag to all schemas
+         Instead of writing only the xmp tag for the first found entry
+         that matches the gstreamer tag, look for all mappings to write
+         the tag to different schemas.
+         The rationale here is that some reader application might only
+         be interested on a particular schema tags, so we should try
+         to write as many tags for all schemas.
+
+2011-05-15 13:39:18 +0200  Edward Hervey <bilboed@bilboed.com>
+
+       * win32/common/libgstaudio.def:
+         win32: Update libgstaudio.def for new symbols
+
+2011-05-14 17:27:30 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstringbuffer.c:
+         baseaudiosink: Use g_str_equal() instead of strncmp()
+         The strncmp is unnecessary anyway since one of the strings is a const
+         string.
+
+2011-05-14 16:49:53 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+         baseaudiosink: Fix trivial indentation problems
+
+2011-03-07 20:49:16 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * docs/libs/gst-plugins-base-libs-docs.sgml:
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/audio/Makefile.am:
+       * gst-libs/gst/audio/gstaudioiec61937.c:
+       * gst-libs/gst/audio/gstaudioiec61937.h:
+         audio: Add an IEC 61937 payloading library
+         This can be used by sinks to take compressed formats, correctly payload
+         these in IEC 61937 frames and feed these to sinks that support
+         passthrough output over IEC 60958 (S/PDIF) or, in the case of MP3, over
+         Bluetooth.
+         Initial implementation includes AC3, E-AC3, MPEG-1, MPEG-2 (non-AAC),
+         and DTS (type-I/II/II) payloading. More formats can be added as needed.
+         API: gst_audio_iec61937_frame_size()
+         API: gst_audio_iec61937_payload()
+         https://bugzilla.gnome.org/show_bug.cgi?id=642730
+
+2011-03-09 11:12:39 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstbaseaudiosink.c:
+       * gst-libs/gst/audio/gstbaseaudiosink.h:
+         baseaudiosink: Allow subclasses to provide payloaders
+         This allows subclasses to provide a "payload" function to prepare
+         buffers for consumption. The immediate use for this is for sinks that
+         can handle compressed formats - parsers are directly connected to the
+         sink, and for formats such as AC3, DTS, and MPEG, IEC 61937 patyloading
+         might be used.
+         API: GstBaseAudioSinkClass:payload()
+         https://bugzilla.gnome.org/show_bug.cgi?id=642730
+
+2011-04-09 09:49:10 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstringbuffer.c:
+         ringbuffer: Add support for E-AC3
+         Adds support for pushing E-AC3 buffers and doing bytes-to-ms conversion
+         correctly. The assumption (as with other formats) is that something like
+         IEC 61937 payloading will be used. Correspondingly the ringbuffer spec
+         is populated so that the data rate is 4x normal AC3.
+         https://bugzilla.gnome.org/show_bug.cgi?id=642730
+
+2011-03-14 15:51:40 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstringbuffer.c:
+         ringbuffer: Add support for MPEG audio buffers
+
+2011-03-14 15:49:57 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstringbuffer.h:
+         ringbuffer: Add AAC format types
+         These are meant to be used for buffers containing AAC data. Nothing uses
+         this yet, but for now it serves to distinguish from GST_BUFTYPE_MPEG
+         which represents non-AAC MPEG audio.
+         API: GST_BUFTYPE_MPEG2_AAC
+         API: GST_BUFTYPE_MPEG4_AAC
+
+2011-03-09 22:57:00 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+       * gst-libs/gst/audio/gstringbuffer.c:
+         ringbuffer: Add support for DTS buffers
+
+2011-05-14 11:42:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * configure.ac:
+         configure: Require core 0.10.34.1 for the new ghostpad API
+
+2011-05-09 22:20:23 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+       * gst/playback/gstdecodebin2.c:
+         decodebin2: fix preroll for streams at low bitrates
+         For streams at low bitrates we need to set a limit in time because the limit
+         in bytes might not reached too late, sometimes more than 30 seconds.
+         This limit can only be set if upstream is seekable (see #584104)
+         Closes #647769
+
+2011-05-09 13:11:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysink.c:
+         playsink: Use new ghostpad/proxypad API to get the internal pad
+
+2011-05-09 12:59:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkaudioconvert.h:
+       * gst/playback/gstplaysinkvideoconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.h:
+         playsink: Use new ghostpad/proxypad API
+
+2011-05-09 12:50:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/playbin2-compressed.c:
+         playbin2: Disable some compressed stream tests that are racy without a stream-activate event
+
+2011-03-29 19:15:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/elements/playbin2-compressed.c:
+         playbin2: Reset buffer counter in playbin2-compressed tests every time when going to READY
+
+2011-03-25 08:26:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/Makefile.am:
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gstplaysinkaudioconvert.c:
+       * gst/playback/gstplaysinkaudioconvert.h:
+       * gst/playback/gstplaysinkvideoconvert.c:
+       * gst/playback/gstplaysinkvideoconvert.h:
+         playsink: Add audio and video converter convenience bins
+         These reconfigure based on the caps and plugin in converters if
+         necessary. This also makes switching between compressed and raw
+         streams work flawlessly without loosing the states of any element
+         somewhere or having running time problems.
+
+2011-03-15 12:51:04 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstplaybin2.c:
+       * gst/playback/gstplaysink.c:
+       * gst/playback/gstplaysink.h:
+         playbin2/playsink: Decide if A/V caps are raw only inside playsink
+         Before playbin2 would use different selectors for raw audio and
+         compressed audio (and the same for video) and used different
+         pads from playsink. This made the involved logic much more
+         complex and was not implemented completely in playsink, which
+         made it impossible to support files with a compressed and
+         uncompressed stream that is support by the sink.
+         playbin2 handles raw/non-raw streams the same now and the
+         decision is left to playsink, which now can also handle
+         caps changes from raw to non-raw and the other way around.
+         Fixes bug #632788.
+
+2011-03-15 11:41:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * tests/check/Makefile.am:
+       * tests/check/elements/playbin2-compressed.c:
+         playbin2: Add unit test for compressed stream support in playbin2/playsink
+
+2011-05-09 12:56:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/alsa/gstalsasrc.c:
+         alsasrc: Fix some compilation errors
+
+2011-05-09 11:50:05 +0200  Pontus Oldberg <pontus.oldberg@invector.se>
+
+       * ext/alsa/gstalsasrc.c:
+       * ext/alsa/gstalsasrc.h:
+         alsasrc: Improve timestamp accuracy
+         Fixes bug #635256.
+
+2011-05-06 17:01:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/playback/gstsubtitleoverlay.c:
+       * gst/playback/gstsubtitleoverlay.h:
+         subtitleoverlay: Use new, public ghostpad functions
+
+2011-05-03 11:26:32 +0300  Sreerenj Balachandran <sreerenj.balachandran@nokia.com>
+
+       * sys/xvimage/xvimagesink.c:
+         xvimagesink: Use GST_BOILERPLATE
+
+2011-05-14 09:41:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * docs/plugins/gst-plugins-base-plugins.hierarchy:
+       * docs/plugins/inspect/plugin-adder.xml:
+       * docs/plugins/inspect/plugin-alsa.xml:
+       * docs/plugins/inspect/plugin-app.xml:
+       * docs/plugins/inspect/plugin-audioconvert.xml:
+       * docs/plugins/inspect/plugin-audiorate.xml:
+       * docs/plugins/inspect/plugin-audioresample.xml:
+       * docs/plugins/inspect/plugin-audiotestsrc.xml:
+       * docs/plugins/inspect/plugin-cdparanoia.xml:
+       * docs/plugins/inspect/plugin-decodebin.xml:
+       * docs/plugins/inspect/plugin-encoding.xml:
+       * docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
+       * docs/plugins/inspect/plugin-gdp.xml:
+       * docs/plugins/inspect/plugin-gio.xml:
+       * docs/plugins/inspect/plugin-gnomevfs.xml:
+       * docs/plugins/inspect/plugin-libvisual.xml:
+       * docs/plugins/inspect/plugin-ogg.xml:
+       * docs/plugins/inspect/plugin-pango.xml:
+       * docs/plugins/inspect/plugin-playback.xml:
+       * docs/plugins/inspect/plugin-subparse.xml:
+       * docs/plugins/inspect/plugin-tcp.xml:
+       * docs/plugins/inspect/plugin-theora.xml:
+       * docs/plugins/inspect/plugin-typefindfunctions.xml:
+       * docs/plugins/inspect/plugin-uridecodebin.xml:
+       * docs/plugins/inspect/plugin-videorate.xml:
+       * docs/plugins/inspect/plugin-videoscale.xml:
+       * docs/plugins/inspect/plugin-videotestsrc.xml:
+       * docs/plugins/inspect/plugin-volume.xml:
+       * docs/plugins/inspect/plugin-vorbis.xml:
+       * docs/plugins/inspect/plugin-ximagesink.xml:
+       * docs/plugins/inspect/plugin-xvimagesink.xml:
+       * win32/common/_stdint.h:
+       * win32/common/config.h:
+         Back to development
+
 === release 0.10.34 ===
 
-2011-05-14  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2011-05-14 01:00:38 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
        * configure.ac:
-         releasing 0.10.34, "Lemmings"
+       * docs/plugins/inspect/plugin-adder.xml:
+       * docs/plugins/inspect/plugin-alsa.xml:
+       * docs/plugins/inspect/plugin-app.xml:
+       * docs/plugins/inspect/plugin-audioconvert.xml:
+       * docs/plugins/inspect/plugin-audiorate.xml:
+       * docs/plugins/inspect/plugin-audioresample.xml:
+       * docs/plugins/inspect/plugin-audiotestsrc.xml:
+       * docs/plugins/inspect/plugin-cdparanoia.xml:
+       * docs/plugins/inspect/plugin-decodebin.xml:
+       * docs/plugins/inspect/plugin-encoding.xml:
+       * docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
+       * docs/plugins/inspect/plugin-gdp.xml:
+       * docs/plugins/inspect/plugin-gio.xml:
+       * docs/plugins/inspect/plugin-gnomevfs.xml:
+       * docs/plugins/inspect/plugin-libvisual.xml:
+       * docs/plugins/inspect/plugin-ogg.xml:
+       * docs/plugins/inspect/plugin-pango.xml:
+       * docs/plugins/inspect/plugin-playback.xml:
+       * docs/plugins/inspect/plugin-subparse.xml:
+       * docs/plugins/inspect/plugin-tcp.xml:
+       * docs/plugins/inspect/plugin-theora.xml:
+       * docs/plugins/inspect/plugin-typefindfunctions.xml:
+       * docs/plugins/inspect/plugin-uridecodebin.xml:
+       * docs/plugins/inspect/plugin-videorate.xml:
+       * docs/plugins/inspect/plugin-videoscale.xml:
+       * docs/plugins/inspect/plugin-videotestsrc.xml:
+       * docs/plugins/inspect/plugin-volume.xml:
+       * docs/plugins/inspect/plugin-vorbis.xml:
+       * docs/plugins/inspect/plugin-ximagesink.xml:
+       * docs/plugins/inspect/plugin-xvimagesink.xml:
+       * gst-plugins-base.doap:
+       * win32/common/_stdint.h:
+       * win32/common/config.h:
+         Release 0.10.34
 
 === release 0.10.33 ===
 
index 19e3c2b..f96c417 100644 (file)
@@ -76,6 +76,8 @@ check: check-exports
 CRUFT_FILES = \
        $(top_builddir)/common/shave \
        $(top_builddir)/common/shave-libtool \
+       $(top_builddir)/gst-libs/gst/audio/testchannels \
+       $(top_builddir)/tests/examples/volume/volume \
        $(top_builddir)/tools/gst-discoverer
 
 
index b059cc9..12dbf2e 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -74,6 +74,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -100,11 +101,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = gst-plugins-base.spec
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -126,9 +127,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -157,6 +160,8 @@ am__relativize = \
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = -I m4 -I common/m4
@@ -218,6 +223,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -278,6 +284,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -287,9 +294,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -312,6 +322,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -384,10 +395,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -421,7 +435,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -498,13 +511,15 @@ WIN32_COPY = \
 CRUFT_FILES = \
        $(top_builddir)/common/shave \
        $(top_builddir)/common/shave-libtool \
+       $(top_builddir)/gst-libs/gst/audio/testchannels \
+       $(top_builddir)/tests/examples/volume/volume \
        $(top_builddir)/tools/gst-discoverer
 
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
        @:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__configure_deps)
        @for dep in $?; do \
@@ -529,6 +544,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        $(SHELL) ./config.status --recheck
@@ -540,10 +556,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then \
-         rm -f stamp-h1; \
-         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-       else :; fi
+       @if test ! -f $@; then rm -f stamp-h1; else :; fi
+       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -776,7 +790,11 @@ dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
        $(am__remove_distdir)
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+       $(am__remove_distdir)
+
+dist-lzip: distdir
+       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
        $(am__remove_distdir)
 
 dist-lzma: distdir
@@ -784,7 +802,7 @@ dist-lzma: distdir
        $(am__remove_distdir)
 
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
        $(am__remove_distdir)
 
 dist-tarZ: distdir
@@ -802,7 +820,7 @@ dist-zip: distdir
 
 dist dist-all: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
        $(am__remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
@@ -816,6 +834,8 @@ distcheck: dist
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lzma*) \
          lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+       *.tar.lz*) \
+         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
          xz -dc $(distdir).tar.xz | $(am__untar) ;;\
        *.tar.Z*) \
@@ -836,6 +856,7 @@ distcheck: dist
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -864,8 +885,16 @@ distcheck: dist
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-       @$(am__cd) '$(distuninstallcheck_dir)' \
-       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+       @test -n '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: trying to run $@ with an empty' \
+              '$$(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       $(am__cd) '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
           || { echo "ERROR: files left after uninstall:" ; \
                if test -n "$(DESTDIR)"; then \
                  echo "  (check DESTDIR support)"; \
@@ -896,10 +925,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -988,8 +1022,8 @@ uninstall-am:
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
        all all-am all-local am--refresh check check-am clean \
        clean-generic clean-libtool ctags ctags-recursive dist \
-       dist-all dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar \
-       dist-tarZ dist-xz dist-zip distcheck distclean \
+       dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma \
+       dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
        distclean-generic distclean-hdr distclean-libtool \
        distclean-tags distcleancheck distdir distuninstallcheck dvi \
        dvi-am html html-am info info-am install install-am \
diff --git a/NEWS b/NEWS
index 617438f..94583e8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,332 @@
-This is GStreamer Base Plug-ins 0.10.34, "Lemmings"
+This is GStreamer Base Plug-ins 0.10.36, "Better"
+
+Changes since 0.10.35:
+
+      * audio: new IEC 61937 payloading library
+      * audio: new GstAudioFormat, GstAudioFormatInfo and GstAudioInfo API
+      * audio: new GstAudioDecoder and GstAudioEncoder base classes
+      * audio: baseaudiosink: allow subclasses to provide payloaders
+      * audio: baseaudiosink: fix latency calculation for live elements
+      * audio: baseaudiosink: make discont-wait configurable
+      * audio: baseaudiosink: split "drift-tolerance" into "alignment-threshold" 
+      * codec-utils: Add method to convert H.264 text level in a level_idc
+      * discoverer: add support for subtitles; try harder to extract language and duration
+      * encoding-profile: add function to create a profile from a discoverer info
+      * ringbuffer: add support for AAC, DTS, E-AC3 and MPEG audio buffers 
+      * rtcpbuffer: Add feedback message types from RFC 510
+      * rtcpbuffer: prevent overflow of 16bit header length
+      * rtspconnection: make hostname lookup thread-safe; OSX portability fixes
+      * rtspconnection: only send new data immediately if there are no queued messages
+      * tags: add new GstTagMux base class
+      * tags: add convenience API to handle creative commons licenses
+      * tags: add API to parse ID3v2 tags
+      * tags: various exif and xmp tag writing fixes
+      * tags: xmp: add Iptc4xmpExt schema support
+      * tags: gstvorbistag: map ENCODER Vorbis comment to application-name
+      * video: add video overlay composition API for subtitles
+      * video: fix a RGB ordering mixup in colorspace conversion code
+      * alsasink: fix high sample rates being rejected, and negotiation to "nearest" rate
+      * audioresample: don't emit DISCONT buffers if no discontinuity happened
+      * audioresample: fix quality setting being ignored; use SSE/SSE2 when possible
+      * audiotestsrc: add red (brownian) and blue/violet noise generator
+      * cdparanoiasrc: fix build issue on OSX (caused by broken cdparanoia port and broken system headers)
+      * decodebin2: improve handling of multi-stream chains (e.g. mpeg-ts)
+      * decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
+      * decodebin2: add support for autoplugging parsers and parser-converters, and negotiate stream-format conversions properly as needed
+      * decodebin2: link elements before testing if they can reach the READY state, so allow hw-accelerated elements can query the video context
+      * decodebin2: use a TIME limit for pre-rolling in live streams and not in non-live streams
+      * decodebin2: fix preroll for HLS streams at low bitrates
+      * decodebin2: add source pads to stream-topology element messages
+      * decodebin, decodebin2: don't plug the same parser multiple times in a row, so we can make parsers accept parsed input as well (and use them to convert to different stream formats)
+      * encodebin: add flags to disable conversion elements
+      * encodebin: autoplug formatters; re-enable parsers
+      * gnomevfssrc: add support for cancelling read operations
+      * oggdemux, oggmux: add support for new Opus audio codec
+      * oggdemux: implement push mode seeking (e.g. for http)
+      * oggdemux: assume input is live stream if byte size cannot be determined
+      * oggdemux: fix hang on small truncated files
+      * oggmux: add skeleton write support
+      * oggmux: sync  input streams and select input buffers based on running time
+      * oggmux: headers should always have granpos 0
+      * oggmux: refactor how EOS is determined
+      * oggmux: support sparse streams as input (e.g. kate subtitle streams)
+      * playbin2: fix decoder-sink compatibility check for raw audio/video formats
+      * playbin2: make sure that the decoders we plug are compatible with the fixed sink
+      * playsink: Add audio and video converter convenience bins
+      * playbin2: improve stream switching
+      * playbin2/playsink: Decide if A/V caps are raw only inside playsink
+      * playbin2/playsink: better support for raw + compressed streams (audio passthrough)
+      * playbin2/playsink: improve handling of "non-raw" formats (for hw-accelerated video decoding)
+      * playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
+      * subparse: subtitle format typefinding improvements
+      * subtitleoverlay: handle non raw video streams (add suport for hardware accelerated videos)
+      * textoverlay: support more video formats
+      * textoverlay: add "outline-color" and "shadow" properties
+      * textoverlay: attach GstVideoOverlayComposition to buffers if input is not raw video
+      * theoraenc: do not automatically override quality when using target bitrate
+      * theoraenc: proxy downstream caps restrictions upstream
+      * typefinding: extract SOF marker in jpeg typefinder (to distinguish lossless JPEG)
+      * typefinding: add typefinder for WAP WBMP bitmaps (mostly to avoid false positives)
+      * typefinding: typefind UTF-16 and UTF-32 with BOMs (to avoid false positives)
+      * typefinding: recognize Asylum modules
+      * videorate: add a "max-rate" property; optionally ensure maximum average output frame rate
+      * videorate: add "force-fps" property to force an output framerate or change it on the fly
+      * videorate: optionally only drop frames to ensure maximum frame rate
+      * videoscale: add modified Lanczos scaling method
+      * volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
+      * vorbisenc: relax overly tight jitter tolerances (make it work better with non-perfect input streams)
+      * xvimagesink, ximagesink: fall back to non-XShm mode if allocating the XShm image failed
+
+Bugs fixed since 0.10.35:
+
+      * 643202 : [encodebin] streamcombiner not completely implemented
+      * 654270 : oggmux unit test fails after latest changes
+      * 658984 : Fix typos in gst-plugins-base
+      * 555437 : [tag] add GstTagMux base class
+      * 556648 : [typefind] detect lossless jpeg
+      * 563251 : oggmux should have option to create Ogg Skeleton stream
+      * 584811 : playbin2's get-text-tags sometimes fails in text stream 0
+      * 607619 : [typefind] utf-16 text file mistakenly identified as layer 1 mpeg audio
+      * 607742 : API: add gst_event_new_{upstream,downstream}_force_key_unit() etc.
+      * 609918 : [OS X] configure: cdda_interface.h: present but cannot be compiled (if VERSION is defined)
+      * 610443 : baseaudiosink: clock can jump on setcaps
+      * 612443 : oggdemux: only use information from skeleton if we have nothing better
+      * 615131 : playing an ogg over http does not report duration correctly
+      * 615342 : [gstalsamixer] leaks
+      * 621897 : [oggdemux] reports wrong duration, and push mode seeking support
+      * 628337 : [gnomevfssrc] Add support for cancelling read operations
+      * 628764 : [videorate] add new option for max frame rate
+      * 629212 : [oggdemux] Improve support for push mode (seeking, duration)
+      * 630322 : make seek example work with windows
+      * 630442 : xvimagesink, ximagesink: fallback to X*CreateImage() if X*ShmCreateImage() fails
+      * 630497 : [seek] sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS to dump pipeline to dot file
+      * 632788 : [playbin2] Doesn't support files with a streams that are supported compressed by a sink and streams that need decoding
+      * 635556 : [oggdemux] bad duration estimate in streaming mode with vertical-overview.ogg
+      * 637812 : vorbisenc: choppy sound due to input timestamp jitter
+      * 638897 : [textrender] allow setting the canvas size using peer caps + bugfixes
+      * 639055 : discoverer: add support for subtitle streams
+      * 640041 : textoverlay: Added parameters to control text outline color and whether shadowing is enabled
+      * 640564 : Remuxing a Theora stream generates a stream that oggz-validate complains about
+      * 640859 : basesink incorrectly categorizes timestamp jitter as drift
+      * 642690 : [baseaudio] GstBaseAudioEncoder and GstBaseAudioDecoder class
+      * 642878 : encoding-profile: add a function to create a profile from a discoverer info
+      * 643578 : [encodebin] - broken remuxing
+      * 644284 : Suspicious max_latency computation in gstbaseaudiosink.c
+      * 647648 : videorate: support for caps modifications in a running pipeline
+      * 647769 : [decodebin2] Fix preroll for streams at low bitrate
+      * 649319 : Add boiler plate code to xvimagesink
+      * 649642 : [volume] Overflows with volume > =4.0 and 8/16 bit integer formats
+      * 649969 : [audiotestsrc] Add more noise variants
+      * 650406 : vorbisdec does not handle headers in caps
+      * 651089 : [xvimagesink/ximagesink] Remove g_assert from Interface query
+      * 651294 : WBMP images are not supported by typefind
+      * 651496 : encodebin seems to fail to pick up container variant
+      * 651615 : [vorbisenc] Too small jitter tolerance
+      * 651788 : [theoraenc] separate encode and push block in theora_enc_chain
+      * 651855 : elements/volume unit test fails
+      * 652342 : encoding-target: set name on audio and video profiles when reading from keyfile
+      * 652642 : typefind: NULL check in degas_type_find
+      * 652838 : gst_discoverer_discover_uri Allow NULL GError* argument
+      * 653461 : [theoraenc] element causes encoder to drop frames?
+      * 654295 : [typefind] audio/x-sap detection doesn't work
+      * 654434 : [basertppayload] RTP timestamps not longer reproducible
+      * 654959 : textoverlay would flicker if it receives not timestampes text on input
+      * 655244 : encodebin has to provide the downstream possible caps to h264parse
+      * 655268 : decodebin2: deadlock after multi-stream chains change
+      * 655279 : [playbin2] Don't reset sinks when not needed
+      * 655347 : theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+      * 655503 : pbutils: Add MPEG-4 SP levels 4a, 5 and 6
+      * 655574 : ogg: crash determining duration of empty vorbis packet
+      * 656022 : volume: fix sample depth typo
+      * 656034 : gstvorbistag: map ENCODER Vorbis comment to application-name
+      * 656392 : audioresample: add FFT based checks
+      * 656715 : playbin2, playsink: reference count ts_offset to avoid crashes
+      * 656775 : oggmux: various cleanups
+      * 656781 : resample.c has warnings treated as errors that prevent compilation
+      * 657049 : textoverlay: buffer leaks
+      * 657062 : oggdemux: do not skip sparse streams when determining start times
+      * 657151 : ogg: another cleanup round
+      * 657257 : discoverer: retrieve audio track language from tags too
+      * 657261 : resindvd: regression in git: no more button highlights in menus
+      * 657319 : videorate should use basetransform
+      * 657333 : theoraenc: fix caps leak
+      * 657504 : gtk-doc distcheck failure: files left in build directory after distclean:
+      * 657872 : [subparse] Doesn't detect some SRT subtitle files
+      * 658294 : gst-inspect videorate hangs
+      * 658416 : decodebin2: refcounting bugs causing criticals
+      * 658443 : theoraenc: do not automatically override quality when using target bitrate
+      * 658514 : typefinding: recognize .amf (Asylum Music File) files for modplug
+      * 658609 : Handle subtitles with non raw caps video streams in subtitle overlay
+      * 658846 : Playbin2 pipeline stuck while prerolling if decoder is missing
+      * 658901 : textoverlay: crash when the video sink pad has no parent
+      * 659562 : videorate: gst_mini_object_unref: assertion `GST_IS_MINI_OBJECT (mini_object)' failed
+      * 660150 : baseaudio: compiler warnings if debugging system is disabled
+      * 660170 : alsasrc: broken timestamps lead to alsasrc ! audiorate endless loop
+      * 660301 : playbin2: Fix mingw compiler warnings
+      * 660304 : videotestsrc: Fix mingw compiler warning
+      * 660598 : playbin2: Make sure that elements that are plugged are compatible with the fixed sink
+      * 660604 : textoverlay: add YV12 support
+      * 660816 : dvd menus got broken 
+      * 661105 : audiotestsrc: add missing break
+      * 661106 : tests: actually test what we said we would
+      * 661122 : videotestsrc does not build on Solaris
+      * 661202 : decodebin2: fire drained signal where appropriate
+      * 661738 : Deadlock between threads in gstaudiosink and gstringbuffer
+      * 661897 : oggdemux: do not retry seeking indefinitely 
+      * 661983 : Regression: Reverse playback does not work for vorbis
+      * 662049 : oggdemux/oggmux in push mode cause preroll to wedge
+      * 662108 : Assertion in base audio decoder when decoding vorbis
+      * 662330 : [decodebin2] Should link and add elements to the bin before checking if they can reach READY state
+      * 662475 : oggdemux: Improvements on the push mode seeking algorithm.
+      * 662829 : [textoverlay] - silent property looks not well implemented
+      * 663174 : oggmux: set collectpads2 not to wait on sparse streams
+      * 663312 : decodebin2: Post all source pads in stream-topology messages as " element-srcpad " values
+      * 663390 : theoraenc: fix speed level failure test
+      * 663391 : theoraenc: misc small tweaks
+      * 663465 : baseaudiosink: fix late buffers leaking
+      * 663766 : [0.11] oggmux: split request pad templates into audio/video/subtitle
+      * 663892 : [playbin2] visualisation leads to not-negotiated error
+      * 663893 : playbin2: g_object_set_valist: construct property " use-volume " for object `GstPlaySinkAudioConvert' can't be set after construction
+      * 664818 : Autoplugger sink bin receives strange caps while it gets the correct ones in 0.10.35 and earlier
+      * 665004 : audioresample emits spurious disconts
+      * 665074 : [gstfft] headers are not bracketed
+      * 665080 : API: subtitle overlays for raw and non-raw video buffers
+      * 665120 : playbin2: decoder not selected for audio-sink=autoaudiosink
+      * 666395 : playbin2: set uri to a non-existed file in " about-to-finish " causes a CRITICAL warning
+      * 667210 : videotestsrc/generate_sine_table needs to link against glib
+      * 667306 : discoverer: don't use unportable vararg macro
+      * 667311 : fix various unlikely, but still potential memoryleaks
+      * 667312 : appsrc: implement get_caps
+      * 667313 : rtcpbuffer: prevent overflow of 16bit header length.
+      * 667315 : videotestsrc: keep the calculation fixed-point
+      * 667316 : pango: Changes includes from brackets to quotes for local files
+      * 667917 : alsasink: Rate doesn't match (requested 88200Hz, get 0Hz)
+      * 668097 : [subtitleoverlay] fix state change stall on PAUSED- > READY- > PAUSED (patch)
+      * 669039 : gstrtspconnection: new data may get sent even-though there is a queued message in the GstRTSPWatch
+      * 669164 : oggdemux generates invalid granpos which causes asserts in theoraparse
+      * 669167 : vorbisparse drops certain data buffers on the floor mistakenly thinking they're headers
+      * 669203 : playbin2: totem segfaults in gst_stream_get_other_pad_from_pad()
+      * 646868 : tag: Provide Creative Commons helper functions
+      * 654388 : [tags] API: move id3 parsing from id3demux to tag lib
+      * 311486 : [oggmux] theora bos must come before any audio bos pages
+
+API additions since 0.10.35:
+
+      * gst_audio_decoder_finish_frame() 
+      * gst_audio_decoder_get_audio_info()
+      * gst_audio_decoder_get_byte_time()
+      * gst_audio_decoder_get_delay()
+      * gst_audio_decoder_get_drainable()
+      * gst_audio_decoder_get_latency()
+      * gst_audio_decoder_get_max_errors() 
+      * gst_audio_decoder_get_min_latency()
+      * gst_audio_decoder_get_needs_format()
+      * gst_audio_decoder_get_parse_state()
+      * gst_audio_decoder_get_plc()
+      * gst_audio_decoder_get_plc_aware()
+      * gst_audio_decoder_get_tolerance()
+      * gst_audio_decoder_get_type()
+      * gst_audio_decoder_set_byte_time()
+      * gst_audio_decoder_set_drainable()
+      * gst_audio_decoder_set_latency()
+      * gst_audio_decoder_set_max_errors()
+      * gst_audio_decoder_set_min_latency()
+      * gst_audio_decoder_set_needs_format()
+      * gst_audio_decoder_set_plc()
+      * gst_audio_decoder_set_plc_aware()
+      * gst_audio_decoder_set_tolerance()
+      * gst_audio_encoder_finish_frame()
+      * gst_audio_encoder_get_audio_info()
+      * gst_audio_encoder_get_drainable()
+      * gst_audio_encoder_get_frame_max()
+      * gst_audio_encoder_get_frame_samples_max()
+      * gst_audio_encoder_get_frame_samples_min()
+      * gst_audio_encoder_get_hard_min()
+      * gst_audio_encoder_get_hard_resync()
+      * gst_audio_encoder_get_latency()
+      * gst_audio_encoder_get_lookahead() 
+      * gst_audio_encoder_get_mark_granule()
+      * gst_audio_encoder_get_perfect_timestamp()
+      * gst_audio_encoder_get_tolerance()
+      * gst_audio_encoder_get_type()
+      * gst_audio_encoder_merge_tags()
+      * gst_audio_encoder_proxy_getcaps()
+      * gst_audio_encoder_set_drainable()
+      * gst_audio_encoder_set_frame_max()
+      * gst_audio_encoder_set_frame_samples_max()
+      * gst_audio_encoder_set_frame_samples_min()
+      * gst_audio_encoder_set_hard_min()
+      * gst_audio_encoder_set_hard_resync()
+      * gst_audio_encoder_set_latency()
+      * gst_audio_encoder_set_lookahead()
+      * gst_audio_encoder_set_mark_granule()
+      * gst_audio_encoder_set_perfect_timestamp()
+      * gst_audio_encoder_set_tolerance()
+      * gst_audio_iec61937_frame_size()
+      * gst_audio_iec61937_payload()
+      * gst_audio_info_clear()
+      * gst_audio_info_convert()
+      * gst_audio_info_copy()
+      * gst_audio_info_free()
+      * gst_audio_info_from_caps()
+      * gst_audio_info_init()
+      * gst_audio_info_to_caps()
+      * gst_base_audio_sink_get_alignment_threshold()
+      * gst_base_audio_sink_get_discont_wait()
+      * gst_base_audio_sink_set_alignment_threshold()
+      * gst_base_audio_sink_set_discont_wait()
+      * gst_codec_utils_h264_get_level_idc()
+      * gst_discoverer_audio_info_get_language()
+      * gst_discoverer_info_get_subtitle_streams()
+      * gst_discoverer_subtitle_info_get_language()
+      * gst_discoverer_subtitle_info_get_type()
+      * gst_encoding_profile_from_discoverer()
+      * gst_tag_get_license_description()
+      * gst_tag_get_license_flags()
+      * gst_tag_get_license_jurisdiction()
+      * gst_tag_get_license_nick()
+      * gst_tag_get_license_title()
+      * gst_tag_get_license_version()
+      * gst_tag_get_licenses()
+      * gst_tag_license_flags_get_type()
+      * gst_tag_get_id3v2_tag_size()
+      * gst_tag_list_from_id3v2_tag()
+      * gst_tag_mux_get_type()
+      * gst_video_buffer_get_overlay_composition()
+      * gst_video_buffer_set_overlay_composition()
+      * gst_video_event_is_force_key_unit()
+      * gst_video_event_new_downstream_force_key_unit()
+      * gst_video_event_new_upstream_force_key_unit()
+      * gst_video_event_parse_downstream_force_key_unit()
+      * gst_video_event_parse_upstream_force_key_unit()
+      * gst_video_get_size_from_caps()
+      * gst_video_overlay_composition_add_rectangle()
+      * gst_video_overlay_composition_blend()
+      * gst_video_overlay_composition_copy()
+      * gst_video_overlay_composition_get_rectangle()
+      * gst_video_overlay_composition_get_seqnum()
+      * gst_video_overlay_composition_get_type()
+      * gst_video_overlay_composition_make_writable()
+      * gst_video_overlay_composition_n_rectangles()
+      * gst_video_overlay_composition_new()
+      * gst_video_overlay_rectangle_copy()
+      * gst_video_overlay_rectangle_get_pixels_argb()
+      * gst_video_overlay_rectangle_get_pixels_unscaled_argb()
+      * gst_video_overlay_rectangle_get_render_rectangle()
+      * gst_video_overlay_rectangle_get_seqnum()
+      * gst_video_overlay_rectangle_get_type()
+      * gst_video_overlay_rectangle_new_argb()
+      * gst_video_overlay_rectangle_set_render_rectangle()
+
+Changes since 0.10.34:
+
+      * work around GLib atomic ops API change
+      * don't use G_CONST_RETURN in public headers 
+      * subparse: typefinding fixes for subtitles in non-UTF8 charsets
+
+Bugs fixed since 0.10.34:
+
+      * 600043 : subparse: fails to recognise Cyrillic subtitles in windows-1251 encoding
 
 Changes since 0.10.33:
 
diff --git a/RELEASE b/RELEASE
index 18ef504..8d94c90 100644 (file)
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer Base Plug-ins 0.10.34 "Lemmings"
+Release notes for GStreamer Base Plug-ins 0.10.36 "Better"
         
 
 
@@ -55,9 +55,323 @@ contains a set of less supported plug-ins that haven't passed the
 
 Features of this release
     
-      * This release is identical to 0.10.33 (to keep core/base versions in sync)
-There were no bugs fixed in this release
+      * audio: new IEC 61937 payloading library
+      * audio: new GstAudioFormat, GstAudioFormatInfo and GstAudioInfo API
+      * audio: new GstAudioDecoder and GstAudioEncoder base classes
+      * audio: baseaudiosink: allow subclasses to provide payloaders
+      * audio: baseaudiosink: fix latency calculation for live elements
+      * audio: baseaudiosink: make discont-wait configurable
+      * audio: baseaudiosink: split "drift-tolerance" into "alignment-threshold"
+      * codec-utils: Add method to convert H.264 text level in a level_idc
+      * discoverer: add support for subtitles; try harder to extract language and duration
+      * encoding-profile: add function to create a profile from a discoverer info
+      * ringbuffer: add support for AAC, DTS, E-AC3 and MPEG audio buffers
+      * rtcpbuffer: Add feedback message types from RFC 510
+      * rtcpbuffer: prevent overflow of 16bit header length
+      * rtspconnection: make hostname lookup thread-safe; OSX portability fixes
+      * rtspconnection: only send new data immediately if there are no queued messages
+      * tags: add new GstTagMux base class
+      * tags: add convenience API to handle creative commons licenses
+      * tags: add API to parse ID3v2 tags
+      * tags: various exif and xmp tag writing fixes
+      * tags: xmp: add Iptc4xmpExt schema support
+      * tags: gstvorbistag: map ENCODER Vorbis comment to application-name
+      * video: add video overlay composition API for subtitles
+      * video: fix a RGB ordering mixup in colorspace conversion code
+      * alsasink: fix high sample rates being rejected, and negotiation to "nearest" rate
+      * audioresample: don't emit DISCONT buffers if no discontinuity happened
+      * audioresample: fix quality setting being ignored; use SSE/SSE2 when possible
+      * audiotestsrc: add red (brownian) and blue/violet noise generator
+      * cdparanoiasrc: fix build issue on OSX (caused by broken cdparanoia port and broken system headers)
+      * decodebin2: improve handling of multi-stream chains (e.g. mpeg-ts)
+      * decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
+      * decodebin2: add support for autoplugging parsers and parser-converters, and negotiate stream-format conversions properly as needed
+      * decodebin2: link elements before testing if they can reach the READY state, so allow hw-accelerated elements can query the video context
+      * decodebin2: use a TIME limit for pre-rolling in live streams and not in non-live streams
+      * decodebin2: fix preroll for HLS streams at low bitrates
+      * decodebin2: add source pads to stream-topology element messages
+      * decodebin, decodebin2: don't plug the same parser multiple times in a row, so we can make parsers accept parsed input as well (and use them to convert to different stream formats)
+      * encodebin: add flags to disable conversion elements
+      * encodebin: autoplug formatters; re-enable parsers
+      * gnomevfssrc: add support for cancelling read operations
+      * oggdemux, oggmux: add support for new Opus audio codec
+      * oggdemux: implement push mode seeking (e.g. for http)
+      * oggdemux: assume input is live stream if byte size cannot be determined
+      * oggdemux: fix hang on small truncated files
+      * oggmux: add skeleton write support
+      * oggmux: sync  input streams and select input buffers based on running time
+      * oggmux: headers should always have granpos 0
+      * oggmux: refactor how EOS is determined
+      * oggmux: support sparse streams as input (e.g. kate subtitle streams)
+      * playbin2: fix decoder-sink compatibility check for raw audio/video formats
+      * playbin2: make sure that the decoders we plug are compatible with the fixed sink
+      * playsink: Add audio and video converter convenience bins
+      * playbin2: improve stream switching
+      * playbin2/playsink: Decide if A/V caps are raw only inside playsink
+      * playbin2/playsink: better support for raw + compressed streams (audio passthrough)
+      * playbin2/playsink: improve handling of "non-raw" formats (for hw-accelerated video decoding)
+      * playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
+      * subparse: subtitle format typefinding improvements
+      * subtitleoverlay: handle non raw video streams (add suport for hardware accelerated videos)
+      * textoverlay: support more video formats
+      * textoverlay: add "outline-color" and "shadow" properties
+      * textoverlay: attach GstVideoOverlayComposition to buffers if input is not raw video
+      * theoraenc: do not automatically override quality when using target bitrate
+      * theoraenc: proxy downstream caps restrictions upstream 
+      * typefinding: extract SOF marker in jpeg typefinder (to distinguish lossless JPEG)
+      * typefinding: add typefinder for WAP WBMP bitmaps (mostly to avoid false positives)
+      * typefinding: typefind UTF-16 and UTF-32 with BOMs (to avoid false positives)
+      * typefinding: recognize Asylum modules
+      * videorate: add a "max-rate" property; optionally ensure maximum average output frame rate
+      * videorate: add "force-fps" property to force an output framerate or change it on the fly
+      * videorate: optionally only drop frames to ensure maximum frame rate
+      * videoscale: add modified Lanczos scaling method
+      * volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
+      * vorbisenc: relax overly tight jitter tolerances (make it work better with non-perfect input streams)
+      * xvimagesink, ximagesink: fall back to non-XShm mode if allocating the XShm image failed
+
+Bugs fixed in this release
+     
+      * 643202 : [encodebin] streamcombiner not completely implemented
+      * 654270 : oggmux unit test fails after latest changes
+      * 658984 : Fix typos in gst-plugins-base
+      * 555437 : [tag] add GstTagMux base class
+      * 556648 : [typefind] detect lossless jpeg
+      * 563251 : oggmux should have option to create Ogg Skeleton stream
+      * 584811 : playbin2's get-text-tags sometimes fails in text stream 0
+      * 607619 : [typefind] utf-16 text file mistakenly identified as layer 1 mpeg audio
+      * 607742 : API: add gst_event_new_{upstream,downstream}_force_key_unit() etc.
+      * 609918 : [OS X] configure: cdda_interface.h: present but cannot be compiled (if VERSION is defined)
+      * 610443 : baseaudiosink: clock can jump on setcaps
+      * 612443 : oggdemux: only use information from skeleton if we have nothing better
+      * 615131 : playing an ogg over http does not report duration correctly
+      * 615342 : [gstalsamixer] leaks
+      * 621897 : [oggdemux] reports wrong duration, and push mode seeking support
+      * 628337 : [gnomevfssrc] Add support for cancelling read operations
+      * 628764 : [videorate] add new option for max frame rate
+      * 629212 : [oggdemux] Improve support for push mode (seeking, duration)
+      * 630322 : make seek example work with windows
+      * 630442 : xvimagesink, ximagesink: fallback to X*CreateImage() if X*ShmCreateImage() fails
+      * 630497 : [seek] sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS to dump pipeline to dot file
+      * 632788 : [playbin2] Doesn't support files with a streams that are supported compressed by a sink and streams that need decoding
+      * 635556 : [oggdemux] bad duration estimate in streaming mode with vertical-overview.ogg
+      * 637812 : vorbisenc: choppy sound due to input timestamp jitter
+      * 638897 : [textrender] allow setting the canvas size using peer caps + bugfixes
+      * 639055 : discoverer: add support for subtitle streams
+      * 640041 : textoverlay: Added parameters to control text outline color and whether shadowing is enabled
+      * 640564 : Remuxing a Theora stream generates a stream that oggz-validate complains about
+      * 640859 : basesink incorrectly categorizes timestamp jitter as drift
+      * 642690 : [baseaudio] GstBaseAudioEncoder and GstBaseAudioDecoder class
+      * 642878 : encoding-profile: add a function to create a profile from a discoverer info
+      * 643578 : [encodebin] - broken remuxing
+      * 644284 : Suspicious max_latency computation in gstbaseaudiosink.c
+      * 647648 : videorate: support for caps modifications in a running pipeline
+      * 647769 : [decodebin2] Fix preroll for streams at low bitrate
+      * 649319 : Add boiler plate code to xvimagesink
+      * 649642 : [volume] Overflows with volume > =4.0 and 8/16 bit integer formats
+      * 649969 : [audiotestsrc] Add more noise variants
+      * 650406 : vorbisdec does not handle headers in caps
+      * 651089 : [xvimagesink/ximagesink] Remove g_assert from Interface query
+      * 651294 : WBMP images are not supported by typefind
+      * 651496 : encodebin seems to fail to pick up container variant
+      * 651615 : [vorbisenc] Too small jitter tolerance
+      * 651788 : [theoraenc] separate encode and push block in theora_enc_chain
+      * 651855 : elements/volume unit test fails
+      * 652342 : encoding-target: set name on audio and video profiles when reading from keyfile
+      * 652642 : typefind: NULL check in degas_type_find
+      * 652838 : gst_discoverer_discover_uri Allow NULL GError* argument
+      * 653461 : [theoraenc] element causes encoder to drop frames?
+      * 654295 : [typefind] audio/x-sap detection doesn't work
+      * 654434 : [basertppayload] RTP timestamps not longer reproducible
+      * 654959 : textoverlay would flicker if it receives not timestampes text on input
+      * 655244 : encodebin has to provide the downstream possible caps to h264parse
+      * 655268 : decodebin2: deadlock after multi-stream chains change
+      * 655279 : [playbin2] Don't reset sinks when not needed
+      * 655347 : theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+      * 655503 : pbutils: Add MPEG-4 SP levels 4a, 5 and 6
+      * 655574 : ogg: crash determining duration of empty vorbis packet
+      * 656022 : volume: fix sample depth typo
+      * 656034 : gstvorbistag: map ENCODER Vorbis comment to application-name
+      * 656392 : audioresample: add FFT based checks
+      * 656715 : playbin2, playsink: reference count ts_offset to avoid crashes
+      * 656775 : oggmux: various cleanups
+      * 656781 : resample.c has warnings treated as errors that prevent compilation
+      * 657049 : textoverlay: buffer leaks
+      * 657062 : oggdemux: do not skip sparse streams when determining start times
+      * 657151 : ogg: another cleanup round
+      * 657257 : discoverer: retrieve audio track language from tags too
+      * 657261 : resindvd: regression in git: no more button highlights in menus
+      * 657319 : videorate should use basetransform
+      * 657333 : theoraenc: fix caps leak
+      * 657504 : gtk-doc distcheck failure: files left in build directory after distclean:
+      * 657872 : [subparse] Doesn't detect some SRT subtitle files
+      * 658294 : gst-inspect videorate hangs
+      * 658416 : decodebin2: refcounting bugs causing criticals
+      * 658443 : theoraenc: do not automatically override quality when using target bitrate
+      * 658514 : typefinding: recognize .amf (Asylum Music File) files for modplug
+      * 658609 : Handle subtitles with non raw caps video streams in subtitle overlay
+      * 658846 : Playbin2 pipeline stuck while prerolling if decoder is missing
+      * 658901 : textoverlay: crash when the video sink pad has no parent
+      * 659562 : videorate: gst_mini_object_unref: assertion `GST_IS_MINI_OBJECT (mini_object)' failed
+      * 660150 : baseaudio: compiler warnings if debugging system is disabled
+      * 660170 : alsasrc: broken timestamps lead to alsasrc ! audiorate endless loop
+      * 660301 : playbin2: Fix mingw compiler warnings
+      * 660304 : videotestsrc: Fix mingw compiler warning
+      * 660598 : playbin2: Make sure that elements that are plugged are compatible with the fixed sink
+      * 660604 : textoverlay: add YV12 support
+      * 660816 : dvd menus got broken
+      * 661105 : audiotestsrc: add missing break
+      * 661106 : tests: actually test what we said we would
+      * 661122 : videotestsrc does not build on Solaris
+      * 661202 : decodebin2: fire drained signal where appropriate
+      * 661738 : Deadlock between threads in gstaudiosink and gstringbuffer
+      * 661897 : oggdemux: do not retry seeking indefinitely
+      * 661983 : Regression: Reverse playback does not work for vorbis
+      * 662049 : oggdemux/oggmux in push mode cause preroll to wedge
+      * 662108 : Assertion in base audio decoder when decoding vorbis
+      * 662330 : [decodebin2] Should link and add elements to the bin before checking if they can reach READY state
+      * 662475 : oggdemux: Improvements on the push mode seeking algorithm.
+      * 662829 : [textoverlay] - silent property looks not well implemented
+      * 663174 : oggmux: set collectpads2 not to wait on sparse streams
+      * 663312 : decodebin2: Post all source pads in stream-topology messages as " element-srcpad " values
+      * 663390 : theoraenc: fix speed level failure test
+      * 663391 : theoraenc: misc small tweaks
+      * 663465 : baseaudiosink: fix late buffers leaking
+      * 663766 : [0.11] oggmux: split request pad templates into audio/video/subtitle
+      * 663892 : [playbin2] visualisation leads to not-negotiated error
+      * 663893 : playbin2: g_object_set_valist: construct property " use-volume " for object `GstPlaySinkAudioConvert' can't be set after construction
+      * 664818 : Autoplugger sink bin receives strange caps while it gets the correct ones in 0.10.35 and earlier
+      * 665004 : audioresample emits spurious disconts
+      * 665074 : [gstfft] headers are not bracketed
+      * 665080 : API: subtitle overlays for raw and non-raw video buffers
+      * 665120 : playbin2: decoder not selected for audio-sink=autoaudiosink
+      * 666395 : playbin2: set uri to a non-existed file in " about-to-finish " causes a CRITICAL warning
+      * 667210 : videotestsrc/generate_sine_table needs to link against glib
+      * 667306 : discoverer: don't use unportable vararg macro
+      * 667311 : fix various unlikely, but still potential memoryleaks
+      * 667312 : appsrc: implement get_caps
+      * 667313 : rtcpbuffer: prevent overflow of 16bit header length.
+      * 667315 : videotestsrc: keep the calculation fixed-point
+      * 667316 : pango: Changes includes from brackets to quotes for local files
+      * 667917 : alsasink: Rate doesn't match (requested 88200Hz, get 0Hz)
+      * 668097 : [subtitleoverlay] fix state change stall on PAUSED- > READY- > PAUSED (patch)
+      * 669039 : gstrtspconnection: new data may get sent even-though there is a queued message in the GstRTSPWatch
+      * 669164 : oggdemux generates invalid granpos which causes asserts in theoraparse
+      * 669167 : vorbisparse drops certain data buffers on the floor mistakenly thinking they're headers
+      * 669203 : playbin2: totem segfaults in gst_stream_get_other_pad_from_pad()
+      * 646868 : tag: Provide Creative Commons helper functions
+      * 654388 : [tags] API: move id3 parsing from id3demux to tag lib
+      * 311486 : [oggmux] theora bos must come before any audio bos pages
+
+API changed in this release
+     
+- API additions:
     
+      * gst_audio_decoder_finish_frame()
+      * gst_audio_decoder_get_audio_info()
+      * gst_audio_decoder_get_byte_time()
+      * gst_audio_decoder_get_delay()
+      * gst_audio_decoder_get_drainable()
+      * gst_audio_decoder_get_latency()
+      * gst_audio_decoder_get_max_errors()
+      * gst_audio_decoder_get_min_latency()
+      * gst_audio_decoder_get_needs_format()
+      * gst_audio_decoder_get_parse_state()
+      * gst_audio_decoder_get_plc()
+      * gst_audio_decoder_get_plc_aware()
+      * gst_audio_decoder_get_tolerance()
+      * gst_audio_decoder_get_type()
+      * gst_audio_decoder_set_byte_time()
+      * gst_audio_decoder_set_drainable()
+      * gst_audio_decoder_set_latency()
+      * gst_audio_decoder_set_max_errors()
+      * gst_audio_decoder_set_min_latency()
+      * gst_audio_decoder_set_needs_format()
+      * gst_audio_decoder_set_plc()
+      * gst_audio_decoder_set_plc_aware()
+      * gst_audio_decoder_set_tolerance()
+      * gst_audio_encoder_finish_frame()
+      * gst_audio_encoder_get_audio_info()
+      * gst_audio_encoder_get_drainable()
+      * gst_audio_encoder_get_frame_max()
+      * gst_audio_encoder_get_frame_samples_max()
+      * gst_audio_encoder_get_frame_samples_min()
+      * gst_audio_encoder_get_hard_min()
+      * gst_audio_encoder_get_hard_resync()
+      * gst_audio_encoder_get_latency()
+      * gst_audio_encoder_get_lookahead()
+      * gst_audio_encoder_get_mark_granule()
+      * gst_audio_encoder_get_perfect_timestamp()
+      * gst_audio_encoder_get_tolerance()
+      * gst_audio_encoder_get_type()
+      * gst_audio_encoder_merge_tags()
+      * gst_audio_encoder_proxy_getcaps()
+      * gst_audio_encoder_set_drainable()
+      * gst_audio_encoder_set_frame_max()
+      * gst_audio_encoder_set_frame_samples_max()
+      * gst_audio_encoder_set_frame_samples_min()
+      * gst_audio_encoder_set_hard_min()
+      * gst_audio_encoder_set_hard_resync()
+      * gst_audio_encoder_set_latency()
+      * gst_audio_encoder_set_lookahead()
+      * gst_audio_encoder_set_mark_granule()
+      * gst_audio_encoder_set_perfect_timestamp()
+      * gst_audio_encoder_set_tolerance()
+      * gst_audio_iec61937_frame_size()
+      * gst_audio_iec61937_payload()
+      * gst_audio_info_clear()
+      * gst_audio_info_convert()
+      * gst_audio_info_copy()
+      * gst_audio_info_free()
+      * gst_audio_info_from_caps()
+      * gst_audio_info_init()
+      * gst_audio_info_to_caps()
+      * gst_base_audio_sink_get_alignment_threshold()
+      * gst_base_audio_sink_get_discont_wait()
+      * gst_base_audio_sink_set_alignment_threshold()
+      * gst_base_audio_sink_set_discont_wait()
+      * gst_codec_utils_h264_get_level_idc()
+      * gst_discoverer_audio_info_get_language()
+      * gst_discoverer_info_get_subtitle_streams()
+      * gst_discoverer_subtitle_info_get_language()
+      * gst_discoverer_subtitle_info_get_type()
+      * gst_encoding_profile_from_discoverer()
+      * gst_tag_get_license_description()
+      * gst_tag_get_license_flags()
+      * gst_tag_get_license_jurisdiction()
+      * gst_tag_get_license_nick()
+      * gst_tag_get_license_title()
+      * gst_tag_get_license_version()
+      * gst_tag_get_licenses()
+      * gst_tag_license_flags_get_type()
+      * gst_tag_get_id3v2_tag_size()
+      * gst_tag_list_from_id3v2_tag()
+      * gst_tag_mux_get_type()
+      * gst_video_buffer_get_overlay_composition()
+      * gst_video_buffer_set_overlay_composition()
+      * gst_video_event_is_force_key_unit()
+      * gst_video_event_new_downstream_force_key_unit()
+      * gst_video_event_new_upstream_force_key_unit()
+      * gst_video_event_parse_downstream_force_key_unit()
+      * gst_video_event_parse_upstream_force_key_unit()
+      * gst_video_get_size_from_caps()
+      * gst_video_overlay_composition_add_rectangle()
+      * gst_video_overlay_composition_blend()
+      * gst_video_overlay_composition_copy()
+      * gst_video_overlay_composition_get_rectangle()
+      * gst_video_overlay_composition_get_seqnum()
+      * gst_video_overlay_composition_get_type()
+      * gst_video_overlay_composition_make_writable()
+      * gst_video_overlay_composition_n_rectangles()
+      * gst_video_overlay_composition_new()
+      * gst_video_overlay_rectangle_copy()
+      * gst_video_overlay_rectangle_get_pixels_argb()
+      * gst_video_overlay_rectangle_get_pixels_unscaled_argb()
+      * gst_video_overlay_rectangle_get_render_rectangle()
+      * gst_video_overlay_rectangle_get_seqnum()
+      * gst_video_overlay_rectangle_get_type()
+      * gst_video_overlay_rectangle_new_argb()
+      * gst_video_overlay_rectangle_set_render_rectangle()
 
 Download
 
@@ -86,5 +400,65 @@ Applications
   
 Contributors to this release
     
+      * Age Bosma
+      * Alessandro Decina
+      * Alex Lancaster
+      * Alexey Fisher
+      * Andoni Morales Alastruey
+      * Anssi Hannula
+      * Benjamin Otte
+      * Brian Cameron
+      * Christian Fredrik Kalager Schaller
+      * Christophe Fergeau
+      * Colin Walters
+      * David Schleef
+      * Edward Hervey
+      * Erich Schubert
+      * Felipe Contreras
+      * Havard Graff
+      * Iago Toral
+      * Idar Tollefsen
+      * James "Doc" Livingston
+      * James Doc Livingston
+      * Jan Schmidt
+      * Jason Kivlighn
+      * Jens Georg
+      * Jonathan Liu
+      * Jonathan Matthew
+      * Josep Torra
+      * Julien Moutte
+      * Kipp Cannon
+      * LoneStar
+      * Luis de Bethencourt
+      * Mark Nauwelaerts
+      * Mart Raudsepp
+      * Mersad Jelacic
+      * Michael Smith
+      * Monty Montgomery
+      * Nicolas Dufresne
+      * Ognyan Tonchev
+      * Olivier Crête
+      * Pascal Buhler
+      * Philip Jägenstedt
+      * Philippe Normand
+      * Piotr Fusik
+      * Raimo Järvi
+      * René Stadler
+      * Reynaldo H. Verdejo Pinochet
+      * Robert Swain
+      * Sebastian Dröge
+      * Sergey Scobich
+      * Sergey Scobich)
+      * Sjoerd Simons
+      * Stefan Kost
+      * Stefan Sauer
+      * Sébastien Moutte
+      * Thiago Santos
+      * Thibault Saunier
+      * Thomas Vander Stichele
       * Tim-Philipp Müller
+      * Tommi Myöhänen
+      * Vincent Penquerc'h
+      * Wim Taymans
+      * Youness Alaoui
  
\ No newline at end of file
index 7127794..293c701 100644 (file)
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
-[m4_warning([this file was generated for autoconf 2.67.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
@@ -34,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.11.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,19 +54,21 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.11.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -144,14 +150,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
+# serial 12
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -191,6 +197,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -255,7 +262,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -320,10 +327,13 @@ AC_DEFUN([AM_DEP_TRACK],
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -557,12 +567,15 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -602,8 +615,8 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -623,7 +636,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
@@ -769,12 +782,15 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_MKDIR_P
 # ---------------
 # Check for `mkdir -p'.
@@ -797,13 +813,14 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -811,13 +828,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -893,13 +910,13 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2009  Free Software Foundation, Inc.
+# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# serial 2
 
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
@@ -914,18 +931,50 @@ yes) AM_DEFAULT_VERBOSITY=0;;
 no)  AM_DEFAULT_VERBOSITY=1;;
 *)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
+dnl
+dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using `$V' instead of `$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_STRIP
 # ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
@@ -948,13 +997,13 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -963,13 +1012,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -991,10 +1040,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
 m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
      [m4_case([$1], [ustar],, [pax],,
               [m4_fatal([Unknown tar format])])
 AC_MSG_CHECKING([how to create a $1 tar archive])
@@ -1081,6 +1131,7 @@ m4_include([common/m4/gst-function.m4])
 m4_include([common/m4/gst-gettext.m4])
 m4_include([common/m4/gst-glib2.m4])
 m4_include([common/m4/gst-package-release-datetime.m4])
+m4_include([common/m4/gst-platform.m4])
 m4_include([common/m4/gst-plugin-docs.m4])
 m4_include([common/m4/gst-plugindir.m4])
 m4_include([common/m4/gst-x11.m4])
diff --git a/autoregen.sh b/autoregen.sh
deleted file mode 100755 (executable)
index c67a299..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-./autogen.sh  $@
index 49e62b5..9133669 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -187,6 +188,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -247,6 +249,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -256,9 +259,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -281,6 +287,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -353,10 +360,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -390,7 +400,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -681,10 +690,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c6d3eca..dd7bafb 100755 (executable)
@@ -41,9 +41,7 @@ fi
 # BSS symbol, unlike on linux where it's a local absolute symbol.
 nm $NMARGS $lib_path | awk \
        '{
-               if ($3 !~ /^_gst_parse_yy/ && \
-                   $3 !~ /^_gst_[a-z]*_init/ && \
-                   $3 !~ /^_gst_parse_launch/ && \
+               if ($3 !~ /^_gst_[a-z]*_init/ && \
                    $3 !~ /^__gst_element_details_/ && \
                    $3 !~ /^__gst_element_factory_add_/ && \
                    $3 !~ /^gst_interfaces_marshal/ && \
index 7e24bc8..d7f8961 100644 (file)
    fun:*alloc
    ...
    fun:g_type_init*
-   fun:init_pre
+   fun:init_pre*
 }
 
 {
    obj:*/sed
 }
 
+{
+   <weird one when re-reading registry>
+   Memcheck:Addr8
+   ...
+   obj:*/sed
+}
+
 # GLib 2.23 interface vtable
 {
    <insert_a_suppression_name_here>
    fun:_gst_plugin_loader_client_run
    fun:main
 }
+
+{
+   <warning with libc 2.13-2 as in Debian/unstable on amd64>
+   Memcheck:Cond
+   fun:*strcasecmp*
+   ...
+   fun:__dcigettext
+}
+
+{
+   <warning with libc 2.13-2 as in Debian/unstable on amd64>
+   Memcheck:Value8
+   fun:*strcasecmp*
+   ...
+   fun:__dcigettext
+}
+
+{
+   <GstSystemClock is a singleton and does not leak>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:gst_poll_new
+   fun:gst_poll_new_timer
+   fun:gst_system_clock_init
+}
+
index 688b2c0..5b13352 100755 (executable)
@@ -43,6 +43,7 @@ require "gtkdoc-common.pl";
 my $MODULE;
 my $OUTPUT_DIR;
 my $INSPECT_DIR;
+my $VERBOSE;
 my $PRINT_VERSION;
 my $PRINT_HELP;
 my $TYPE_INIT_FUNC="g_type_init ()";
@@ -55,10 +56,11 @@ my $TYPE_INIT_FUNC="g_type_init ()";
           'type-init-func' => \$TYPE_INIT_FUNC,
           'output-dir' => \$OUTPUT_DIR,
           'inspect-dir' => \$INSPECT_DIR,
+          'verbose' => \$VERBOSE,
           'version' => \$PRINT_VERSION,
           'help' => \$PRINT_HELP);
 
-GetOptions(\%optctl, "module=s", "source=s", "types:s", "output-dir:s", "inspect-dir:s", "nogtkinit", "type-init-func:s", "version", "help");
+GetOptions(\%optctl, "module=s", "source=s", "types:s", "output-dir:s", "inspect-dir:s", "nogtkinit", "type-init-func:s", "verbose", "version", "help");
 
 if ($NO_GTK_INIT) {
   # Do nothing. This just avoids a warning.
@@ -75,15 +77,19 @@ if (!$MODULE) {
 }
 
 if ($PRINT_HELP) {
-    print "gstdoc-scangobj version 1.5\n";
-    print "\n--module=MODULE_NAME  Name of the doc module being parsed";
-    print "\n--source=SOURCE_NAME  Name of the source module for plugins";
-    print "\n--types=FILE          The name of the file to store the types in";
-    print "\n--type-init-func=FUNC The init function to call instead of g_type_init ()";
-    print "\n--output-dir=DIRNAME  The directory where the results are stored";
-    print "\n--inspect-dir=DIRNAME  The directory where the plugin inspect data is stored";
-    print "\n--version             Print the version of this program";
-    print "\n--help                Print this help\n";
+    print <<EOF;
+gstdoc-scangobj version 1.5 - introspect gstreamer-plugins
+
+--module=MODULE_NAME          Name of the doc module being parsed
+--source=SOURCE_NAME          Name of the source module for plugins
+--types=FILE                  The name of the file to store the types in
+--type-init-func=FUNC         The init function to call instead of g_type_init()
+--output-dir=DIRNAME          The directory where the results are stored
+--inspect-dir=DIRNAME         The directory where the plugin inspect data is stored
+--verbose                     Print extra output while processing
+--version                     Print the version of this program
+--help                        Print this help
+EOF
     exit 0;
 }
 
@@ -105,6 +111,11 @@ my $new_prerequisites_filename = "$OUTPUT_DIR/$MODULE.prerequisites.new";
 my $old_args_filename = "$OUTPUT_DIR/$MODULE.args";
 my $new_args_filename = "$OUTPUT_DIR/$MODULE.args.new";
 
+my $debug_log="g_message";
+if (!defined($VERBOSE) or $VERBOSE eq "0") {
+    $debug_log="//$debug_log";
+}
+
 # write a C program to scan the types
 
 $includes = "";
@@ -221,7 +232,6 @@ get_object_types (void)
       plugin = (GstPlugin *) (plugins->data);
       plugins = g_list_next (plugins);
       source = gst_plugin_get_source (plugin);
-      /*g_print ("plugin: %s source: %s\\n", plugin->desc.name, source);*/
       if (!source || strcmp (source, "$SOURCE") != 0) {
         continue;
       }
@@ -230,7 +240,7 @@ get_object_types (void)
       if (gst_plugin_get_filename (plugin) == NULL)
         continue;
 
-      g_print ("plugin: %s source: %s\\n", plugin->desc.name, source);
+      $debug_log ("plugin: %s source: %s", plugin->desc.name, source);
 
       if (reinspect) {
         inspect_name = g_strdup_printf ("$INSPECT_DIR" G_DIR_SEPARATOR_S "plugin-%s.xml",
@@ -277,7 +287,7 @@ get_object_types (void)
           const gchar *pad_pres[] = { "always","sometimes","request" };
           GList *pads, *pad;
 
-          /*g_print ("  feature: %s\\n", feature->name);*/
+          $debug_log ("  feature: %s", feature->name);
 
           factory = GST_ELEMENT_FACTORY (feature);
           factories = g_list_prepend (factories, factory);
@@ -320,7 +330,7 @@ get_object_types (void)
 
     g_string_free (xmlstr, TRUE);
 
-    g_message ("number of element factories: %d", g_list_length (factories));
+    $debug_log ("number of element factories: %d", g_list_length (factories));
 
     /* allocate the object_types array to hold them */
     object_types = g_new0 (GType, g_list_length (factories)+$ntypes+1);
@@ -333,7 +343,7 @@ get_object_types (void)
       factory = GST_ELEMENT_FACTORY (l->data);
       type = gst_element_factory_get_element_type (factory);
       if (type != 0) {
-        g_message ("adding type %p for factory %s", (void *) type, gst_element_factory_get_longname (factory));
+        $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory));
         object_types[i++] = type;
       } else {
         g_message ("type info for factory %s not found",
@@ -522,7 +532,7 @@ output_object_signal (FILE *fp,
   gchar signal_name[128];
   gchar flags[16];
 
-  /*  g_print ("Object: %s Signal: %u\\n", object_name, signal_id);*/
+  $debug_log ("Object: %s Signal: %u", object_name, signal_id);
 
   param_num = 1;
   widget_num = event_num = callback_num = 0;
@@ -765,6 +775,16 @@ output_object_hierarchy (void)
   fclose (fp);
 }
 
+static int
+compare_types (const void *a, const void *b)
+{
+  const char *na = g_type_name (*((GType *)a));
+  const char *nb = g_type_name (*((GType *)b));
+
+  return g_strcmp0 (na, nb);
+}
+
+
 /* This is called recursively to output the hierarchy of a object. */
 static void
 output_hierarchy (FILE  *fp,
@@ -783,6 +803,8 @@ output_hierarchy (FILE  *fp,
   fprintf (fp, "%s\\n", g_type_name (type));
 
   children = g_type_children (type, &n_children);
+  qsort (children, n_children, sizeof (GType), compare_types);
+
 
   for (i=0; i < n_children; i++)
     output_hierarchy (fp, children[i], level + 1);
@@ -1547,15 +1569,20 @@ if ($CC =~ /libtool/) {
   $o_file = "$MODULE-scan.o"
 }
 
-print "gtk-doc: Compiling scanner\n";
-$command = "$CC $CFLAGS -c -o $o_file $MODULE-scan.c";
-system($command) == 0 or die "Compilation of scanner failed: $!\n";
+my $stdout="";
+if (!defined($VERBOSE) or $VERBOSE eq "0") {
+    $stdout=">/dev/null";
+}
+
+# Compiling scanner
+$command = "$CC $stdout $CFLAGS -c -o $o_file $MODULE-scan.c";
+system("($command)") == 0 or die "Compilation of scanner failed: $!\n";
 
-print "gtk-doc: Linking scanner\n";
-$command = "$LD -o $MODULE-scan $o_file $LDFLAGS";
+# Linking scanner
+$command = "$LD $stdout -o $MODULE-scan $o_file $LDFLAGS";
 system($command) == 0 or die "Linking of scanner failed: $!\n";
 
-print "gtk-doc: Running scanner $MODULE-scan\n";
+# Running scanner $MODULE-scan ";
 system("sh -c ./$MODULE-scan") == 0 or die "Scan failed: $!\n";
 
 if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) {
@@ -1563,9 +1590,9 @@ if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) {
 }
 
 &UpdateFileIfChanged ($old_hierarchy_filename, $new_hierarchy_filename, 0);
-&UpdateFileIfChanged ($old_interfaces_filename, $new_interfaces_filename, 0);
-&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0);
 # we will merge these in scangobj-merge.py
+#&UpdateFileIfChanged ($old_interfaces_filename, $new_interfaces_filename, 0);
+#&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0);
 #&UpdateFileIfChanged ($old_signals_filename, $new_signals_filename, 0);
 #&UpdateFileIfChanged ($old_args_filename, $new_args_filename, 0);
 
index ca6a351..8cc42e7 100644 (file)
@@ -55,12 +55,12 @@ DOC_STAMPS =                                \
 
 # files generated/updated by gtkdoc-scangobj
 SCANOBJ_FILES =                                \
-       $(DOC_MODULE).signals           \
+       $(DOC_MODULE).args              \
        $(DOC_MODULE).hierarchy         \
        $(DOC_MODULE).interfaces        \
        $(DOC_MODULE).prerequisites     \
-       $(DOC_MODULE).types             \
-       $(DOC_MODULE).args
+       $(DOC_MODULE).signals           \
+       $(DOC_MODULE).types
 
 SCANOBJ_FILES_O =                      \
        .libs/$(DOC_MODULE)-scan.o
@@ -78,11 +78,8 @@ REPORT_FILES = \
        $(DOC_MODULE)-undeclared.txt \
        $(DOC_MODULE)-unused.txt
 
-# FC3 seems to need -scan.c to be part of CLEANFILES for distcheck
-# no idea why FC4 can do without
 CLEANFILES = \
        $(SCANOBJ_FILES_O) \
-       $(DOC_MODULE)-scan.c \
        $(REPORT_FILES) \
        $(DOC_STAMPS) \
        inspect-registry.xml
@@ -104,32 +101,34 @@ INSPECT_ENVIRONMENT=\
        PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
        $(INSPECT_EXTRA_ENVIRONMENT)
 
-# update the element and plugin XML descriptions; store in inspect/
-inspect:
-       @-mkdir -p $(INSPECT_DIR)
-
 #### scan gobjects; done by documentation maintainer ####
 scanobj-update:
        -rm scanobj-build.stamp
        $(MAKE) scanobj-build.stamp
 
-# TODO: finish elite script that updates the output files of this step
-# instead of rewriting them, so that multiple maintainers can generate
-# a collective set of args and signals
-scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) inspect
-       @echo '*** Scanning GObjects ***'
+# gstdoc-scanobj produces 5 output files (.new)
+# scangobj-merge.py merges them into the file which we commit later
+# TODO: also merge the hierarchy
+scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles)
+       @echo "  DOC   Introspecting gobjects"
        @if test x"$(srcdir)" != x. ; then                              \
            for f in $(SCANOBJ_FILES) $(SCAN_FILES);                    \
            do                                                          \
                if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi;      \
            done;                                                       \
        fi;                                                             \
+       mkdir -p $(INSPECT_DIR); \
+       scanobj_options=""; \
+       if test "x$(V)" = "x1"; then \
+           scanobj_options="--verbose"; \
+       fi; \
        $(INSPECT_ENVIRONMENT)                                  \
        CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"                             \
        CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS) $(WARNING_CFLAGS)"   \
        LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)"                             \
-       $(GST_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)"       \
+       $(GST_DOC_SCANOBJ) $$scanobj_options --type-init-func="gst_init(NULL,NULL)"     \
            --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) &&          \
+           echo "  DOC   Merging introspection data" && \
            $(PYTHON)                                           \
            $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE);       \
        if test x"$(srcdir)" != x. ; then                               \
@@ -145,91 +144,102 @@ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp
 
 ### scan headers; done on every build ###
 scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp
-       @echo '*** Scanning header files ***'
+       @echo '  DOC   Scanning header files'
+       @if test x"$(srcdir)" != x. ; then                              \
+           for f in $(SCANOBJ_FILES) $(SCAN_FILES);                    \
+           do                                                          \
+               if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi;      \
+           done;                                                       \
+       fi
+       @_source_dir='' ;                                               \
+       for i in $(DOC_SOURCE_DIR) ; do                                 \
+           _source_dir="$${_source_dir} --source-dir=$$i" ;            \
+       done ;                                                          \
        gtkdoc-scan                                                     \
            $(SCAN_OPTIONS) $(EXTRA_HFILES)                             \
            --module=$(DOC_MODULE)                                      \
-           --source-dir=$(DOC_SOURCE_DIR)                              \
+           $${_source_dir}                                             \
            --ignore-headers="$(IGNORE_HFILES)";                        \
        touch scan-build.stamp
 
 #### update templates; done on every build ####
 
-### FIXME: make this error out again when docs are fixed for 0.X
 # in a non-srcdir build, we need to copy files from the previous step
 # and the files from previous runs of this step
 tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES)
-       @echo '*** Rebuilding template files ***'
+       @echo '  DOC   Rebuilding template files'
        @if test x"$(srcdir)" != x. ; then                              \
            for f in $(SCANOBJ_FILES) $(SCAN_FILES);                    \
            do                                                          \
                if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi;      \
            done;                                                       \
        fi
-       gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log
-       $(PYTHON) \
+       @gtkdoc-mktmpl --module=$(DOC_MODULE)
+       @$(PYTHON) \
                $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl
-       @rm -f tmpl-build.log
-       touch tmpl-build.stamp
+       @touch tmpl-build.stamp
 
 tmpl.stamp: tmpl-build.stamp
        @true
 
-#### build xml; done on every build ####
+#### xml ####
 
-### FIXME: make this error out again when docs are fixed for 0.9
 sgml-build.stamp: tmpl.stamp scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files)
-       @echo '*** Building XML ***'
+       @echo '  DOC   Building XML'
        @-mkdir -p xml
        @for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \
            xsltproc --stringparam module $(MODULE) \
                $(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
        @for f in $(EXAMPLE_CFILES); do \
                $(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done
-       gtkdoc-mkdb \
+       @gtkdoc-mkdb \
                --module=$(DOC_MODULE) \
                --source-dir=$(DOC_SOURCE_DIR) \
                 --expand-content-files="$(expand_content_files)" \
                --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
                --output-format=xml \
                --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \
-               $(MKDB_OPTIONS) \
-               | tee sgml-build.log
-       @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi
-       cp ../version.entities xml
-       rm sgml-build.log
-       touch sgml-build.stamp
+               $(MKDB_OPTIONS)
+       @cp ../version.entities xml
+       @touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
 
-#### build html; done on every step ####
+#### html ####
 
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo '*** Building HTML ***'
-       if test -d html; then rm -rf html; fi
-       mkdir html
-       cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html
+       @echo '  DOC   Building HTML'
+       @rm -rf html
+       @mkdir html
+       @cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html
        @for f in $(content_files); do cp $(srcdir)/$$f html; done
-       cp -pr xml html
-       cp ../version.entities html
-       cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
-       mv html/index.sgml html/index.sgml.bak
-       $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
-       rm -f html/index.sgml.bak
-       rm -f html/$(DOC_MAIN_SGML_FILE)
-       rm -rf html/xml
-       rm -f html/version.entities
-       test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \
+       @cp -pr xml html
+       @cp ../version.entities html
+       @mkhtml_options=""; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+       if test "$(?)" = "0"; then \
+         if test "x$(V)" = "x1"; then \
+           mkhtml_options="$$mkhtml_options --verbose"; \
+         fi; \
+       fi; \
+       cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
+       @mv html/index.sgml html/index.sgml.bak
+       @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+       @rm -f html/index.sgml.bak
+       @rm -f html/$(DOC_MAIN_SGML_FILE)
+       @rm -rf html/xml
+       @rm -f html/version.entities
+       @test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \
            if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done
-       @echo '-- Fixing Crossreferences'
-       gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-       touch html-build.stamp
+       @echo '  DOC   Fixing cross-references'
+       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       @touch html-build.stamp
 
 clean-local-gtkdoc:
-       rm -rf xml tmpl html
+       @rm -rf xml tmpl html
 # clean files copied for nonsrcdir templates build
-       if test x"$(srcdir)" != x. ; then \
+       @if test x"$(srcdir)" != x. ; then \
            rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \
                $(MAINTAINER_DOC_STAMPS); \
        fi
@@ -239,16 +249,16 @@ clean-local-gtkdoc:
 endif
 
 clean-local: clean-local-gtkdoc
-       rm -f *~ *.bak
-       rm -rf .libs
+       @rm -f *~ *.bak
+       @rm -rf .libs
 
 distclean-local:
-       rm -f $(REPORT_FILES) \
+       @rm -f $(REPORT_FILES) \
                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-       rm -rf tmpl/*.sgml.bak
-       rm -f $(DOC_MODULE).hierarchy
-       rm -f *.stamp || true
-       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+       @rm -rf tmpl/*.sgml.bak
+       @rm -f $(DOC_MODULE).hierarchy
+       @rm -f *.stamp || true
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
            rm -f $(DOC_MODULE)-docs.sgml ; \
            rm -f $(DOC_MODULE).types ; \
            rm -f $(DOC_MODULE).interfaces ; \
@@ -258,7 +268,7 @@ distclean-local:
            rm -rf tmpl/*.sgml ; \
            rm -rf $(INSPECT_DIR); \
        fi
-       rm -rf *.o
+       @rm -rf *.o
 
 MAINTAINERCLEANFILES = $(MAINTAINER_DOC_STAMPS)
 
@@ -280,9 +290,7 @@ install-data-local:
              $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
            done; \
          fi; \
-         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \
-         $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \
-           $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \
+         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
          if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
                    $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
                    $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
index 91edeee..dd2b5a5 100644 (file)
@@ -28,7 +28,6 @@ DOC_STAMPS =                          \
        scan-build.stamp                \
        sgml-build.stamp                \
        html-build.stamp                \
-       setup.stamp             \
        sgml.stamp              \
        html.stamp
 
@@ -52,30 +51,36 @@ all-local: html-build.stamp
 
 #### setup ####
 
-setup.stamp: $(content_files)
+setup-build.stamp: $(content_files)
        -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-          cp -p $(abs_srcdir)/$(DOC_MAIN_SGML_FILE) \
-            $(abs_srcdir)/$(DOC_MODULE)-overrides.txt \
-            $(abs_srcdir)/$(DOC_MODULE)-sections.txt \
-            $(abs_srcdir)/$(DOC_MODULE).types \
-            $(abs_builddir)/; \
-          if test "x$(content_files)" != "x" ; then \
-              for file in $(content_files) ; do \
-                  test -f $(abs_srcdir)/$$file || \
-                      cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
-              done \
-          fi \
+           echo '  DOC   Preparing build'; \
+           files=`echo $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) $(DOC_MODULE)-sections.txt $(DOC_MODULE).types $(content_files)`; \
+           if test "x$$files" != "x" ; then \
+               for file in $$files ; do \
+                   test -f $(abs_srcdir)/$$file && \
+                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+               done; \
+           fi; \
        fi
-       touch setup.stamp
+       @touch setup-build.stamp
 
 #### scan ####
 
 # in the case of non-srcdir builds, the built gst directory gets added
 # to gtk-doc scanning; but only then, to avoid duplicates
 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-       @echo '*** Scanning header files ***'
-       if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null;    \
-       then                                                            \
+       @echo '  DOC   Scanning header files'
+       @_source_dir='' ;                                               \
+       for i in $(DOC_SOURCE_DIR) ; do                                 \
+           _source_dir="$${_source_dir} --source-dir=$$i" ;            \
+       done ;                                                          \
+       gtkdoc-scan                                                     \
+               $(SCAN_OPTIONS) $(EXTRA_HFILES)                         \
+               --module=$(DOC_MODULE)                                  \
+               $${_source_dir}                                         \
+               --ignore-headers="$(IGNORE_HFILES)"
+       @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then      \
+           echo "  DOC   Introspecting gobjects"; \
            GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`          \
            GST_PLUGIN_PATH=                                            \
            GST_REGISTRY=doc-registry.xml                               \
@@ -90,31 +95,18 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
               test -f $$i || touch $$i ;                               \
            done                                                        \
        fi
-       if test "x$(top_srcdir)" != "x$(top_builddir)";                 \
-       then                                                            \
-         export BUILT_OPTIONS="--source-dir=$(DOC_BUILD_DIR)";         \
-       fi;                                                             \
-       gtkdoc-scan                                                     \
-               $(SCAN_OPTIONS) $(EXTRA_HFILES)                         \
-               --module=$(DOC_MODULE)                                  \
-               --source-dir=$(DOC_SOURCE_DIR)                          \
-               $$BUILT_OPTIONS                                         \
-               --ignore-headers="$(IGNORE_HFILES)"
-       touch scan-build.stamp
+       @touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
        @true
 
 #### xml ####
 
-### FIXME: make this error out again when docs are complete
-sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
-       @echo '*** Building XML ***'
-       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log
-       @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi
-       cp ../version.entities xml
-       rm sgml-build.log
-       touch sgml-build.stamp
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
+       @echo '  DOC   Building XML'
+       @gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
+       @cp ../version.entities xml
+       @touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
@@ -122,31 +114,37 @@ sgml.stamp: sgml-build.stamp
 #### html ####
 
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo '*** Building HTML ***'
+       @echo '  DOC   Building HTML'
        @rm -rf html
        @mkdir html
-       cp -pr xml html
-       cp ../version.entities ./
+       @cp -pr xml html
+       @cp ../version.entities ./
        @mkhtml_options=""; \
-       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+       if test "$(?)" = "0"; then \
+         if test "x$(V)" = "x1"; then \
+           mkhtml_options="$$mkhtml_options --verbose"; \
+         fi; \
+       fi; \
+       @gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
        if test "$(?)" = "0"; then \
          mkhtml_options=--path="$(abs_srcdir)"; \
        fi; \
        cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-       mv html/index.sgml html/index.sgml.bak
-       $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
-       rm -f html/index.sgml.bak
-       rm -rf html/xml
-       rm -f version.entities
-       test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
-       @echo '-- Fixing Crossreferences'
-       gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-       touch html-build.stamp
+       @mv html/index.sgml html/index.sgml.bak
+       @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+       @rm -f html/index.sgml.bak
+       @rm -rf html/xml
+       @rm -f version.entities
+       @test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
+       @echo '  DOC   Fixing cross-references'
+       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       @touch html-build.stamp
 
 clean-local-gtkdoc:
-       rm -rf xml tmpl html
+       @rm -rf xml tmpl html
 # clean files copied for nonsrcdir templates build
-       if test x"$(srcdir)" != x. ; then \
+       @if test x"$(srcdir)" != x. ; then \
                rm -rf $(DOC_MODULE).types; \
        fi
 else
@@ -155,28 +153,29 @@ clean-local-gtkdoc:
 endif
 
 clean-local: clean-local-gtkdoc
-       rm -f *~ *.bak
-       rm -rf .libs
+       @rm -f *~ *.bak
+       @rm -rf .libs
 
 distclean-local:
-       rm -f $(REPORT_FILES) \
+       @rm -f $(REPORT_FILES) \
                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-       rm -rf tmpl/*.sgml.bak
-       rm -f $(DOC_MODULE).hierarchy
-       rm -f *.stamp || true
-       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           rm -f $(DOC_MODULE)-docs.sgml ; \
+       @rm -rf tmpl/*.sgml.bak
+       @rm -f $(DOC_MODULE).hierarchy
+       @rm -f *.stamp || true
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(DOC_MAIN_SGML_FILE) ; \
+           rm -f $(DOC_OVERRIDES) ; \
            rm -f $(DOC_MODULE).types ; \
            rm -f $(DOC_MODULE).interfaces ; \
-           rm -f $(DOC_MODULE)-overrides.txt ; \
            rm -f $(DOC_MODULE).prerequisites ; \
            rm -f $(DOC_MODULE)-sections.txt ; \
+           rm -f $(content_files) ; \
            rm -rf tmpl/*.sgml ; \
        fi
-       rm -rf *.o
+       @rm -rf *.o
 
 maintainer-clean-local: clean
-       cd $(srcdir) && rm -rf html \
+       @cd $(srcdir) && rm -rf html \
                xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
 
 # thomas: make docs parallel installable; devhelp requires majorminor too
@@ -190,9 +189,7 @@ install-data-local:
            echo '-- Installing '$$i ; \
            $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
          done; \
-         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \
-         $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \
-           $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \
+         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
          if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
                    $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
                    $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
index cf6b79e..4ced410 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -147,6 +148,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -207,6 +209,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -216,9 +219,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -241,6 +247,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -313,10 +320,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -350,7 +360,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -504,10 +513,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index ccdd4da..030e7ac 100644 (file)
@@ -66,10 +66,7 @@ AC_DEFUN([AG_GST_ARG_VALGRIND],
   if test "x$USE_VALGRIND" = xyes; then
     PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ,
       USE_VALGRIND="yes",
-      [
-        USE_VALGRIND="no"
-        AC_MSG_RESULT([no])
-      ])
+      USE_VALGRIND="no")
   fi
   if test "x$USE_VALGRIND" = xyes; then
     AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used])
index bfb3a1c..c072c79 100644 (file)
@@ -122,35 +122,6 @@ dnl *** Define the conditional as appropriate
 AM_CONDITIONAL(USE_[$1], test x$USE_[$1] = xyes)
 ])
 
-dnl Use a -config program which accepts --cflags and --libs parameters
-dnl to set *_CFLAGS and *_LIBS and check existence of a feature.
-dnl Richard Boulton <richard-alsa@tartarus.org>
-dnl Last modification: 26/06/2001
-dnl AG_GST_CHECK_CONFIGPROG(FEATURE-NAME, CONFIG-PROG-FILENAME, MODULES)
-dnl
-dnl This check was written for GStreamer: it should be renamed and checked
-dnl for portability if you decide to use it elsewhere.
-dnl
-AC_DEFUN([AG_GST_CHECK_CONFIGPROG],
-[
-  AC_PATH_PROG([$1]_CONFIG, [$2], no)
-  if test x$[$1]_CONFIG = xno; then
-    [$1]_LIBS=
-    [$1]_CFLAGS=
-    HAVE_[$1]=no
-  else
-    if [$2] --plugin-libs [$3] &> /dev/null; then
-      [$1]_LIBS=`[$2] --plugin-libs [$3]`
-    else
-      [$1]_LIBS=`[$2] --libs [$3]`
-    fi
-    [$1]_CFLAGS=`[$2] --cflags [$3]`
-    HAVE_[$1]=yes
-  fi
-  AC_SUBST([$1]_LIBS)
-  AC_SUBST([$1]_CFLAGS)
-])
-
 dnl Use AC_CHECK_LIB and AC_CHECK_HEADER to do both tests at once
 dnl sets HAVE_module if we have it
 dnl Richard Boulton <richard-alsa@tartarus.org>
@@ -247,7 +218,37 @@ AC_DEFUN([AG_GST_PARSE_SUBSYSTEM_DISABLES],
   AG_GST_PARSE_SUBSYSTEM_DISABLE($1,XML)
 ])
 
+dnl AG_GST_CHECK_GST_DEBUG_DISABLED(ACTION-IF-DISABLED, ACTION-IF-NOT-DISABLED)
+dnl
+dnl Checks if the GStreamer debugging system is disabled in the core version
+dnl we are compiling against (by checking gstconfig.h)
+dnl
+AC_DEFUN([AG_GST_CHECK_GST_DEBUG_DISABLED],
+[
+  AC_REQUIRE([AG_GST_CHECK_GST])
+
+  AC_MSG_CHECKING([whether the GStreamer debugging system is enabled])
+  AC_LANG_PUSH([C])
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$GST_CFLAGS $CFLAGS"
+  AC_COMPILE_IFELSE([
+      #include <gst/gstconfig.h>
+      #ifdef GST_DISABLE_GST_DEBUG
+      #error "debugging disabled, make compiler fail"
+      #endif], [ debug_system_enabled=yes], [debug_system_enabled=no])
+  CFLAGS="$save_CFLAGS"
+  AC_LANG_POP([C])
+
+  AC_MSG_RESULT([$debug_system_enabled])
 
+  if test "x$debug_system_enabled" = "xyes" ; then
+    $2
+    true
+  else
+    $1
+    true
+  fi
+])
 
 dnl relies on GST_PLUGINS_ALL, GST_PLUGINS_SELECTED, GST_PLUGINS_YES,
 dnl GST_PLUGINS_NO, and BUILD_EXTERNAL
index bafba41..b01f02f 100644 (file)
@@ -70,4 +70,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
 
   dnl for the poor souls who for example have glib in /usr/local
   AS_SCRUB_INCLUDE(GLIB_CFLAGS)
+
+  AC_SUBST(GLIB_EXTRA_CFLAGS)
 ])
index f9ce49c..589721c 100644 (file)
@@ -59,12 +59,18 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
        INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
        INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
     fi
     AC_SUBST(INTROSPECTION_SCANNER)
     AC_SUBST(INTROSPECTION_COMPILER)
     AC_SUBST(INTROSPECTION_GENERATE)
     AC_SUBST(INTROSPECTION_GIRDIR)
     AC_SUBST(INTROSPECTION_TYPELIBDIR)
+    AC_SUBST(INTROSPECTION_CFLAGS)
+    AC_SUBST(INTROSPECTION_LIBS)
+    AC_SUBST(INTROSPECTION_MAKEFILE)
 
     AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
 ])
index 3b2c6b5..26b2459 100644 (file)
@@ -21,17 +21,19 @@ AC_DEFUN([ORC_CHECK],
   if test "x$enable_orc" != "xno" ; then
     PKG_CHECK_MODULES(ORC, orc-0.4 >= $ORC_REQ, [
       AC_DEFINE(HAVE_ORC, 1, [Use Orc])
+      HAVE_ORC=yes
       if test "x$ORCC" = "x" ; then
+        AC_MSG_CHECKING(for usable orcc)
         ORCC=`$PKG_CONFIG --variable=orcc orc-0.4`
+        dnl check whether the orcc found by pkg-config can be run from the build environment
+        dnl if this is not the case (e.g. when cross-compiling) fall back to orcc from PATH
+        AS_IF([$ORCC --version 1> /dev/null 2> /dev/null], [], [ORCC=`which orcc`])
+        AC_MSG_RESULT($ORCC)
       fi
       AC_SUBST(ORCC)
       ORCC_FLAGS="--compat $ORC_REQ"
       AC_SUBST(ORCC_FLAGS)
-      HAVE_ORC=yes
-      HAVE_ORCC=yes
-      if test "x$cross_compiling" = "xyes" ; then
-        HAVE_ORCC=no
-      fi
+      AS_IF([test "x$ORCC" = "x"], [HAVE_ORCC=no], [HAVE_ORCC=yes])
     ], [
       if test "x$enable_orc" = "xyes" ; then
         AC_MSG_ERROR([--enable-orc specified, but Orc >= $ORC_REQ not found])
index 5e84235..9a1cac9 100755 (executable)
@@ -3,7 +3,7 @@
 # vi:si:et:sw=4:sts=4:ts=4
 
 """
-parse, update and write .signals and .args files
+parse, merge and write gstdoc-scanobj files
 """
 
 import sys
@@ -16,9 +16,9 @@ def debug(*args):
 # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747
 # Licensed under the Python License
 class OrderedDict(dict):
-    def __init__(self, dict = None):
+    def __init__(self):
         self._keys = []
-        dict.__init__(self, dict)
+        dict.__init__(self)
 
     def __delitem__(self, key):
         dict.__delitem__(self, key)
@@ -110,8 +110,7 @@ class GDoc:
 
     def save_file(self, filename, backup=False):
         """
-        Save the signals information to the given .signals file if the
-        file content changed.
+        Save the information to the given file if the file content changed.
         """
         olddata = None
         try:
@@ -256,6 +255,25 @@ class Args(GDoc):
 
         return "\n".join(lines) + '\n'
 
+class SingleLine(GDoc):
+    def __init__(self):
+        self._objects = []
+
+    def load_data(self, data):
+        """
+        Load the .interfaces/.prerequisites lines, merge duplicates
+        """
+        # split data on '\n'
+        lines = data.splitlines();
+        # merge them into self._objects
+        for line in lines:
+            if line not in self._objects:
+                self._objects.append(line)
+
+    def get_data(self):
+        lines = sorted(self._objects)
+        return "\n".join(lines) + '\n'
+
 def main(argv):
     modulename = None
     try:
@@ -264,7 +282,6 @@ def main(argv):
         sys.stderr.write('Please provide a documentation module name\n')
         sys.exit(1)
 
-    print "Merging scangobj output for %s" % modulename
     signals = Signals()
     signals.load_file(modulename + '.signals')
     signals.load_file(modulename + '.signals.new')
@@ -277,4 +294,16 @@ def main(argv):
     args.save_file(modulename + '.args', backup=True)
     os.unlink(modulename + '.args.new')
 
+    ifaces = SingleLine()
+    ifaces.load_file(modulename + '.interfaces')
+    ifaces.load_file(modulename + '.interfaces.new')
+    ifaces.save_file(modulename + '.interfaces', backup=True)
+    os.unlink(modulename + '.interfaces.new')
+
+    prereq = SingleLine()
+    prereq.load_file(modulename + '.prerequisites')
+    prereq.load_file(modulename + '.prerequisites.new')
+    prereq.save_file(modulename + '.prerequisites', backup=True)
+    os.unlink(modulename + '.prerequisites.new')
+
 main(sys.argv)
diff --git a/compile b/compile
index c0096a7..b1f4749 100755 (executable)
--- a/compile
+++ b/compile
@@ -1,10 +1,10 @@
 #! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
+# Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2009-10-06.20; # UTC
+scriptversion=2012-01-04.17; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
+# Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -29,21 +29,186 @@ scriptversion=2009-10-06.20; # UTC
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""       $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv/,$2, in
+       *,$file_conv,*)
+         ;;
+       mingw/*)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin/*)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine/*)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+       -o)
+         # configure might choose to run compile as 'compile cc -o foo foo.c'.
+         eat=1
+         case $2 in
+           *.o | *.[oO][bB][jJ])
+             func_file_conv "$2"
+             set x "$@" -Fo"$file"
+             shift
+             ;;
+           *)
+             func_file_conv "$2"
+             set x "$@" -Fe"$file"
+             shift
+             ;;
+         esac
+         ;;
+       -I*)
+         func_file_conv "${1#-I}" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -l*)
+         lib=${1#-l}
+         found=no
+         save_IFS=$IFS
+         IFS=';'
+         for dir in $lib_path $LIB
+         do
+           IFS=$save_IFS
+           if $shared && test -f "$dir/$lib.dll.lib"; then
+             found=yes
+             set x "$@" "$dir/$lib.dll.lib"
+             break
+           fi
+           if test -f "$dir/$lib.lib"; then
+             found=yes
+             set x "$@" "$dir/$lib.lib"
+             break
+           fi
+         done
+         IFS=$save_IFS
+
+         test "$found" != yes && set x "$@" "$lib.lib"
+         shift
+         ;;
+       -L*)
+         func_file_conv "${1#-L}"
+         if test -z "$lib_path"; then
+           lib_path=$file
+         else
+           lib_path="$lib_path;$file"
+         fi
+         linker_opts="$linker_opts -LIBPATH:$file"
+         ;;
+       -static)
+         shared=false
+         ;;
+       -Wl,*)
+         arg=${1#-Wl,}
+         save_ifs="$IFS"; IFS=','
+         for flag in $arg; do
+           IFS="$save_ifs"
+           linker_opts="$linker_opts $flag"
+         done
+         IFS="$save_ifs"
+         ;;
+       -Xlinker)
+         eat=1
+         linker_opts="$linker_opts $2"
+         ;;
+       -*)
+         set x "$@" "$1"
+         shift
+         ;;
+       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+         func_file_conv "$1"
+         set x "$@" -Tp"$file"
+         shift
+         ;;
+       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+         func_file_conv "$1" mingw
+         set x "$@" "$file"
+         shift
+         ;;
+       *)
+         set x "$@" "$1"
+         shift
+         ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
     cat <<\EOF
 Usage: compile [--help] [--version] PROGRAM [ARGS]
 
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
 arguments, and rename the output as expected.
 
 If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
+right script to run: please start by reading the file 'INSTALL'.
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
@@ -53,11 +218,13 @@ EOF
     echo "compile $scriptversion"
     exit $?
     ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
 esac
 
 ofile=
 cfile=
-eat=
 
 for arg
 do
@@ -66,8 +233,8 @@ do
   else
     case $1 in
       -o)
-       # configure might choose to run compile as `compile cc -o foo foo.c'.
-       # So we strip `-o arg' only if arg is an object.
+       # configure might choose to run compile as 'compile cc -o foo foo.c'.
+       # So we strip '-o arg' only if arg is an object.
        eat=1
        case $2 in
          *.o | *.obj)
@@ -94,10 +261,10 @@ do
 done
 
 if test -z "$ofile" || test -z "$cfile"; then
-  # If no `-o' option was seen then we might have been invoked from a
+  # If no '-o' option was seen then we might have been invoked from a
   # pattern rule where we don't need one.  That is ok -- this is a
   # normal compilation that the losing compiler can handle.  If no
-  # `.c' file was seen then we are probably linking.  That is also
+  # '.c' file was seen then we are probably linking.  That is also
   # ok.
   exec "$@"
 fi
@@ -106,7 +273,7 @@ fi
 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
index c2246a4..40eaed4 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011 Free Software Foundation, Inc.
 
-timestamp='2009-12-30'
+timestamp='2011-05-11'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -57,7 +57,7 @@ GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
 Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -181,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                fi
                ;;
            *)
-               os=netbsd
+               os=netbsd
                ;;
        esac
        # The OS release
@@ -224,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
                ;;
        *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
                ;;
        esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
@@ -270,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit ;;
+       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+       exitcode=$?
+       trap '' 0
+       exit $exitcode ;;
     Alpha\ *:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # Should we change UNAME_MACHINE based on the output of uname instead
@@ -296,7 +299,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo s390-ibm-zvmoe
        exit ;;
     *:OS400:*:*)
-        echo powerpc-ibm-os400
+       echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
@@ -395,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+       exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-milan-mint${UNAME_RELEASE}
+       exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-hades-mint${UNAME_RELEASE}
+       exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-unknown-mint${UNAME_RELEASE}
+       exit ;;
     m68k:machten:*:*)
        echo m68k-apple-machten${UNAME_RELEASE}
        exit ;;
@@ -481,8 +484,8 @@ EOF
        echo m88k-motorola-sysv3
        exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       # DG/UX returns AViiON for all architectures
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
        if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
        then
            if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -495,7 +498,7 @@ EOF
        else
            echo i586-dg-dgux${UNAME_RELEASE}
        fi
-       exit ;;
+       exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
        exit ;;
@@ -552,7 +555,7 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit ;;
-    *:AIX:*:[456])
+    *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
@@ -595,52 +598,52 @@ EOF
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
+                   sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                   case "${sc_cpu_version}" in
+                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                     532)                      # CPU_PA_RISC2_0
+                       case "${sc_kernel_bits}" in
+                         32) HP_ARCH="hppa2.0n" ;;
+                         64) HP_ARCH="hppa2.0w" ;;
                          '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
+                       esac ;;
+                   esac
                fi
                if [ "${HP_ARCH}" = "" ]; then
                    eval $set_cc_for_build
-                   sed 's/^              //' << EOF >$dummy.c
+                   sed 's/^            //' << EOF >$dummy.c
 
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
+               #define _HPUX_SOURCE
+               #include <stdlib.h>
+               #include <unistd.h>
 
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
+               int main ()
+               {
+               #if defined(_SC_KERNEL_BITS)
+                   long bits = sysconf(_SC_KERNEL_BITS);
+               #endif
+                   long cpu  = sysconf (_SC_CPU_VERSION);
 
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
+                   switch (cpu)
+                       {
+                       case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+                       case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+                       case CPU_PA_RISC2_0:
+               #if defined(_SC_KERNEL_BITS)
+                           switch (bits)
+                               {
+                               case 64: puts ("hppa2.0w"); break;
+                               case 32: puts ("hppa2.0n"); break;
+                               default: puts ("hppa2.0"); break;
+                               } break;
+               #else  /* !defined(_SC_KERNEL_BITS) */
+                           puts ("hppa2.0"); break;
+               #endif
+                       default: puts ("hppa1.0"); break;
+                       }
+                   exit (0);
+               }
 EOF
                    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -731,22 +734,22 @@ EOF
        exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-        exit ;;
+       exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-        exit ;;
+       exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-        exit ;;
+       exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-        exit ;;
+       exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-        exit ;;
+       exit ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit ;;
@@ -770,14 +773,14 @@ EOF
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
     5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -805,14 +808,14 @@ EOF
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
     i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
        exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case ${UNAME_MACHINE} in
            x86)
                echo i586-pc-interix${UNAME_RELEASE}
                exit ;;
@@ -867,7 +870,7 @@ EOF
          EV6)   UNAME_MACHINE=alphaev6 ;;
          EV67)  UNAME_MACHINE=alphaev67 ;;
          EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
+       esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
@@ -879,7 +882,13 @@ EOF
        then
            echo ${UNAME_MACHINE}-unknown-linux-gnu
        else
-           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+           if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+               | grep -q __ARM_PCS_VFP
+           then
+               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+           else
+               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+           fi
        fi
        exit ;;
     avr32*:Linux:*:*)
@@ -892,7 +901,7 @@ EOF
        echo crisv32-axis-linux-gnu
        exit ;;
     frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
+       echo frv-unknown-linux-gnu
        exit ;;
     i*86:Linux:*:*)
        LIBC=gnu
@@ -960,7 +969,7 @@ EOF
        echo ${UNAME_MACHINE}-ibm-linux
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     sh*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -968,6 +977,9 @@ EOF
     sparc:Linux:*:* | sparc64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
+    tile*:Linux:*:*)
+       echo ${UNAME_MACHINE}-tilera-linux-gnu
+       exit ;;
     vax:Linux:*:*)
        echo ${UNAME_MACHINE}-dec-linux-gnu
        exit ;;
@@ -975,7 +987,7 @@ EOF
        echo x86_64-unknown-linux-gnu
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -984,11 +996,11 @@ EOF
        echo i386-sequent-sysv4
        exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+       # Unixware is an offshoot of SVR4, but it has its own version
+       # number series starting with 2...
+       # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
+       # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit ;;
     i*86:OS/2:*:*)
@@ -1020,7 +1032,7 @@ EOF
        fi
        exit ;;
     i*86:*:5:[678]*)
-       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
@@ -1048,13 +1060,13 @@ EOF
        exit ;;
     pc:*:*:*)
        # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i586.
+       # uname -m prints for DJGPP always 'pc', but it prints nothing about
+       # the processor, so we play safe by assuming i586.
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configury will decide that
        # this is a cross-build.
        echo i586-pc-msdosdjgpp
-        exit ;;
+       exit ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
        exit ;;
@@ -1089,8 +1101,8 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4; exit; } ;;
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
        OS_REL='.3'
        test -r /etc/.relid \
@@ -1133,10 +1145,10 @@ EOF
                echo ns32k-sni-sysv
        fi
        exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+    PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                       # says <Richard.M.Bartel@ccMail.Census.GOV>
+       echo i586-unisys-sysv4
+       exit ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
@@ -1162,11 +1174,11 @@ EOF
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv${UNAME_RELEASE}
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv${UNAME_RELEASE}
        fi
-        exit ;;
+       exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
        echo powerpc-be-beos
        exit ;;
@@ -1231,6 +1243,9 @@ EOF
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+       echo neo-tandem-nsk${UNAME_RELEASE}
+       exit ;;
     NSE-?:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
@@ -1276,13 +1291,13 @@ EOF
        echo pdp10-unknown-its
        exit ;;
     SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
+       echo mips-sei-seiux${UNAME_RELEASE}
        exit ;;
     *:DragonFly:*:*)
        echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
        exit ;;
     *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
        case "${UNAME_MACHINE}" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
@@ -1322,11 +1337,11 @@ main ()
 #include <sys/param.h>
   printf ("m68k-sony-newsos%s\n",
 #ifdef NEWSOS4
-          "4"
+       "4"
 #else
-         ""
+       ""
 #endif
-         ); exit (0);
+       ); exit (0);
 #endif
 #endif
 
index 21c0d01..30250fb 100644 (file)
 /* system wide data directory */
 #undef GST_DATADIR
 
+/* Extra platform specific plugin suffix */
+#undef GST_EXTRA_MODULE_SUFFIX
+
 /* macro to use to show function name */
 #undef GST_FUNCTION
 
 /* Defined if gcov is enabled to force a rebuild due to config.h changing */
 #undef GST_GCOV_ENABLED
 
+/* Defined when registry scanning through fork is unsafe */
+#undef GST_HAVE_UNSAFE_FORK
+
 /* plugin install helper script */
 #undef GST_INSTALL_PLUGINS_HELPER
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
+/* Define to 1 if you have the <emmintrin.h> header file. */
+#undef HAVE_EMMINTRIN_H
+
 /* Define to enable building of experimental plug-ins. */
 #undef HAVE_EXPERIMENTAL
 
 /* Use Orc */
 #undef HAVE_ORC
 
+/* Defined if compiling for OSX */
+#undef HAVE_OSX
+
 /* Define to enable Pango font rendering (used by pango). */
 #undef HAVE_PANGO
 
 /* defined if vorbis_synthesis_restart is present */
 #undef HAVE_VORBIS_SYNTHESIS_RESTART
 
+/* Defined if compiling for Windows */
+#undef HAVE_WIN32
+
 /* Define to 1 if you have the <winsock2.h> header file. */
 #undef HAVE_WINSOCK2_H
 
 /* Define to enable X libraries and plugins (used by ximagesink). */
 #undef HAVE_X
 
+/* Define to 1 if you have the <xmmintrin.h> header file. */
+#undef HAVE_XMMINTRIN_H
+
 /* Define to enable X Shared Memory extension. */
 #undef HAVE_XSHM
 
 /* Define to enable X11 XVideo extensions (used by xvimagesink). */
 #undef HAVE_XVIDEO
 
+/* Define to enable zlib support for ID3 parsing in libgsttag. */
+#undef HAVE_ZLIB
+
 /* the host CPU */
 #undef HOST_CPU
 
 
 /* Define for large files, on AIX-style hosts. */
 #undef _LARGE_FILES
+
+/* We need at least WinXP SP2 for __stat64 */
+#undef __MSVCRT_VERSION__
index c2d1257..30fdca8 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011 Free Software Foundation, Inc.
 
-timestamp='2010-01-22'
+timestamp='2011-03-23'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -76,7 +76,7 @@ version="\
 GNU config.sub ($timestamp)
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
 Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -124,8 +124,9 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
@@ -157,8 +158,8 @@ case $os in
                os=
                basic_machine=$1
                ;;
-        -bluegene*)
-               os=-cnk
+       -bluegene*)
+               os=-cnk
                ;;
        -sim | -cisco | -oki | -wec | -winbond)
                os=
@@ -174,10 +175,10 @@ case $os in
                os=-chorusos
                basic_machine=$1
                ;;
-       -chorusrdb)
-               os=-chorusrdb
+       -chorusrdb)
+               os=-chorusrdb
                basic_machine=$1
-               ;;
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
@@ -282,11 +283,13 @@ case $basic_machine in
        | moxie \
        | mt \
        | msp430 \
+       | nds32 | nds32le | nds32be \
        | nios | nios2 \
        | ns16k | ns32k \
+       | open8 \
        | or32 \
        | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
        | rx \
        | score \
@@ -294,15 +297,24 @@ case $basic_machine in
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic80 | tron \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
        | v850 | v850e \
        | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
                ;;
+       c54x)
+               basic_machine=tic54x-unknown
+               ;;
+       c55x)
+               basic_machine=tic55x-unknown
+               ;;
+       c6x)
+               basic_machine=tic6x-unknown
+               ;;
        m6811 | m68hc11 | m6812 | m68hc12 | picochip)
                # Motorola 68HC11/12.
                basic_machine=$basic_machine-unknown
@@ -314,6 +326,18 @@ case $basic_machine in
                basic_machine=mt-unknown
                ;;
 
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -334,7 +358,7 @@ case $basic_machine in
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
        | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* \
        | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
@@ -368,26 +392,28 @@ case $basic_machine in
        | mmix-* \
        | mt-* \
        | msp430-* \
+       | nds32-* | nds32le-* | nds32be-* \
        | nios-* | nios2-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
        | romp-* | rs6000-* | rx-* \
        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | tahoe-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
        | tile-* | tilegx-* \
        | tron-* \
        | ubicom32-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
        | ymp-* \
        | z8k-* | z80-*)
@@ -412,7 +438,7 @@ case $basic_machine in
                basic_machine=a29k-amd
                os=-udi
                ;;
-       abacus)
+       abacus)
                basic_machine=abacus-unknown
                ;;
        adobe68k)
@@ -482,11 +508,20 @@ case $basic_machine in
                basic_machine=powerpc-ibm
                os=-cnk
                ;;
+       c54x-*)
+               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c55x-*)
+               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c6x-*)
+               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        c90)
                basic_machine=c90-cray
                os=-unicos
                ;;
-        cegcc)
+       cegcc)
                basic_machine=arm-unknown
                os=-cegcc
                ;;
@@ -518,7 +553,7 @@ case $basic_machine in
                basic_machine=craynv-cray
                os=-unicosmp
                ;;
-       cr16)
+       cr16 | cr16-*)
                basic_machine=cr16-unknown
                os=-elf
                ;;
@@ -734,7 +769,7 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
-        microblaze)
+       microblaze)
                basic_machine=microblaze-xilinx
                ;;
        mingw32)
@@ -841,6 +876,12 @@ case $basic_machine in
        np1)
                basic_machine=np1-gould
                ;;
+       neo-tandem)
+               basic_machine=neo-tandem
+               ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
@@ -923,9 +964,10 @@ case $basic_machine in
                ;;
        power)  basic_machine=power-ibm
                ;;
-       ppc)    basic_machine=powerpc-unknown
+       ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
@@ -1019,6 +1061,9 @@ case $basic_machine in
                basic_machine=i860-stratus
                os=-sysv4
                ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -1075,20 +1120,8 @@ case $basic_machine in
                basic_machine=t90-cray
                os=-unicos
                ;;
-       tic54x | c54x*)
-               basic_machine=tic54x-unknown
-               os=-coff
-               ;;
-       tic55x | c55x*)
-               basic_machine=tic55x-unknown
-               os=-coff
-               ;;
-       tic6x | c6x*)
-               basic_machine=tic6x-unknown
-               os=-coff
-               ;;
-        # This must be matched before tile*.
-        tilegx*)
+       # This must be matched before tile*.
+       tilegx*)
                basic_machine=tilegx-unknown
                os=-linux-gnu
                ;;
@@ -1163,6 +1196,9 @@ case $basic_machine in
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               ;;
        ymp)
                basic_machine=ymp-cray
                os=-unicos
@@ -1260,11 +1296,11 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
+       # First match some system type aliases
+       # that might get confused with valid system types.
        # -solaris* is a basic system type, with this one exception.
-        -auroraux)
-               os=-auroraux
+       -auroraux)
+               os=-auroraux
                ;;
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1301,7 +1337,8 @@ case $os in
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+             | -mingw32* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1348,7 +1385,7 @@ case $os in
        -opened*)
                os=-openedition
                ;;
-        -os400*)
+       -os400*)
                os=-os400
                ;;
        -wince*)
@@ -1397,7 +1434,7 @@ case $os in
        -sinix*)
                os=-sysv4
                ;;
-        -tpf*)
+       -tpf*)
                os=-tpf
                ;;
        -triton*)
@@ -1442,8 +1479,8 @@ case $os in
        -dicos*)
                os=-dicos
                ;;
-        -nacl*)
-               ;;
+       -nacl*)
+               ;;
        -none)
                ;;
        *)
@@ -1466,10 +1503,10 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
-        score-*)
+       score-*)
                os=-elf
                ;;
-        spu-*)
+       spu-*)
                os=-elf
                ;;
        *-acorn)
@@ -1481,8 +1518,17 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-        c4x-* | tic4x-*)
-               os=-coff
+       c4x-* | tic4x-*)
+               os=-coff
+               ;;
+       tic54x-*)
+               os=-coff
+               ;;
+       tic55x-*)
+               os=-coff
+               ;;
+       tic6x-*)
+               os=-coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
@@ -1509,7 +1555,7 @@ case $basic_machine in
        m68*-cisco)
                os=-aout
                ;;
-        mep-*)
+       mep-*)
                os=-elf
                ;;
        mips*-cisco)
@@ -1536,7 +1582,7 @@ case $basic_machine in
        *-ibm)
                os=-aix
                ;;
-       *-knuth)
+       *-knuth)
                os=-mmixware
                ;;
        *-wec)
index 6bac1ed..2f161b5 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for GStreamer Base Plug-ins 0.10.34.
+# Generated by GNU Autoconf 2.68 for GStreamer Base Plug-ins 0.10.36.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -91,6 +91,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -173,6 +174,14 @@ test x\$exitcode = x0 || exit 1"
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
 test \$(( 1 + 1 )) = 2 || exit 1"
   if (eval "$as_required") 2>/dev/null; then :
   as_have_required=yes
@@ -216,11 +225,18 @@ IFS=$as_save_IFS
   # We cannot yet assume a decent shell, so we have to provide a
        # neutralization value for shells without unset; and this also
        # works around shells that cannot unset nonexistent variables.
+       # Preserve -v and -x to the replacement shell.
        BASH_ENV=/dev/null
        ENV=/dev/null
        (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
        export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+       case $- in # ((((
+         *v*x* | *x*v* ) as_opts=-vx ;;
+         *v* ) as_opts=-v ;;
+         *x* ) as_opts=-x ;;
+         * ) as_opts= ;;
+       esac
+       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -529,155 +545,8 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 # Sed expression to map a string onto a valid variable name.
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-
-
-# Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
-
-         if test "$prev" != 'sed 50q "$0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
 
 test -n "$DJDIR" || exec 7<&0 </dev/null
 exec 6>&1
@@ -702,8 +571,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GStreamer Base Plug-ins'
 PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='0.10.34'
-PACKAGE_STRING='GStreamer Base Plug-ins 0.10.34'
+PACKAGE_VERSION='0.10.36'
+PACKAGE_STRING='GStreamer Base Plug-ins 0.10.36'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -826,6 +695,11 @@ X_LIBS
 X_PRE_LIBS
 X_CFLAGS
 XMKMF
+USE_ZLIB_FALSE
+USE_ZLIB_TRUE
+HAVE_ZLIB
+ZLIB_LIBS
+ZLIB_CFLAGS
 USE_ISO_CODES_FALSE
 USE_ISO_CODES_TRUE
 USE_XML_FALSE
@@ -929,6 +803,7 @@ ORCC_FLAGS
 ORCC
 ORC_LIBS
 ORC_CFLAGS
+GLIB_EXTRA_CFLAGS
 GLIB_LIBS
 GLIB_CFLAGS
 GLIB_REQ
@@ -958,6 +833,9 @@ GTKDOC_CHECK
 HTML_DIR
 HAVE_INTROSPECTION_FALSE
 HAVE_INTROSPECTION_TRUE
+INTROSPECTION_MAKEFILE
+INTROSPECTION_LIBS
+INTROSPECTION_CFLAGS
 INTROSPECTION_TYPELIBDIR
 INTROSPECTION_GIRDIR
 INTROSPECTION_GENERATE
@@ -1055,8 +933,9 @@ OTOOL
 LIPO
 NMEDIT
 DSYMUTIL
-lt_ECHO
+MANIFEST_TOOL
 RANLIB
+ac_ct_AR
 AR
 LN_S
 NM
@@ -1070,6 +949,7 @@ SED
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
+am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -1095,6 +975,8 @@ GST_CURRENT
 GST_MAJORMINOR
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 host_os
 host_vendor
 host_cpu
@@ -1183,6 +1065,7 @@ with_pic
 enable_fast_install
 enable_dependency_tracking
 with_gnu_ld
+with_sysroot
 enable_libtool_lock
 with_autoconf
 with_autoheader
@@ -1211,7 +1094,6 @@ enable_gtk_doc
 enable_gobject_cast_checks
 enable_glib_asserts
 enable_orc
-with_gtk
 enable_Bsymbolic
 with_default_audiosink
 with_default_audiosrc
@@ -1237,6 +1119,7 @@ enable_videorate
 enable_videoscale
 enable_volume
 enable_iso_codes
+enable_zlib
 enable_x
 with_x
 enable_xvideo
@@ -1303,6 +1186,8 @@ GTK_X11_CFLAGS
 GTK_X11_LIBS
 QT_CFLAGS
 QT_LIBS
+ZLIB_CFLAGS
+ZLIB_LIBS
 XMKMF
 GUDEV_CFLAGS
 GUDEV_LIBS
@@ -1732,7 +1617,7 @@ Try \`$0 --help' for more information"
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1870,7 +1755,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer Base Plug-ins 0.10.34 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 0.10.36 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1945,7 +1830,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 0.10.34:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 0.10.36:";;
    esac
   cat <<\_ACEOF
 
@@ -2003,6 +1888,7 @@ Optional Features:
   --disable-videoscale    disable dependency-less videoscale plugin
   --disable-volume        disable dependency-less volume plugin
   --enable-iso-codes      use iso-codes if installed
+  --disable-zlib               disable zlib support for ID3 parsing in libgsttag
   --disable-x                  disable X libraries and plugins: ximagesink
   --disable-xvideo             disable X11 XVideo extensions: xvimagesink
   --disable-xshm               disable X Shared Memory extension
@@ -2025,9 +1911,11 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects [default=use
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
   --with-autoconf         use a different autoconf for regeneration of
                           Makefiles
   --with-autoheader       use a different autoheader for regeneration of
@@ -2050,7 +1938,6 @@ Optional Packages:
   --with-plugins          comma-separated list of dependencyless plug-ins to
                           compile
   --with-html-dir=PATH    path to installed docs
-  --with-gtk=3.0|2.0      which gtk+ version to compile against (default: 2.0)
   --with-default-audiosink
                           specify default audio sink
   --with-default-audiosrc specify default audio source
@@ -2125,6 +2012,8 @@ Some influential environment variables:
               linker flags for GTK_X11, overriding pkg-config
   QT_CFLAGS   C compiler flags for QT, overriding pkg-config
   QT_LIBS     linker flags for QT, overriding pkg-config
+  ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
+  ZLIB_LIBS   linker flags for ZLIB, overriding pkg-config
   XMKMF       Path to xmkmf, Makefile generator for X Window System
   GUDEV_CFLAGS
               C compiler flags for GUDEV, overriding pkg-config
@@ -2229,8 +2118,8 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 0.10.34
-generated by GNU Autoconf 2.67
+GStreamer Base Plug-ins configure 0.10.36
+generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -2276,7 +2165,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -2322,7 +2211,7 @@ fi
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -2336,7 +2225,7 @@ ac_fn_c_check_header_compile ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2354,7 +2243,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -2390,7 +2279,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -2432,7 +2321,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -2445,7 +2334,7 @@ ac_fn_c_check_func ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2500,7 +2389,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
@@ -2515,7 +2404,7 @@ ac_fn_c_check_decl ()
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
 $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2546,7 +2435,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_decl
 
@@ -2583,7 +2472,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_compile
@@ -2620,7 +2509,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_cpp
@@ -2666,7 +2555,7 @@ fi
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_link
@@ -2679,10 +2568,10 @@ fi
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -2749,7 +2638,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -2758,7 +2647,7 @@ eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 
@@ -2771,7 +2660,7 @@ ac_fn_c_check_type ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -2812,7 +2701,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
 
@@ -2989,7 +2878,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 rm -f conftest.val
 
   fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_compute_int
@@ -2997,8 +2886,8 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer Base Plug-ins $as_me 0.10.34, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+It was created by GStreamer Base Plug-ins $as_me 0.10.36, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -3256,7 +3145,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -3399,7 +3288,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3486,11 +3375,11 @@ am_lf='
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
+    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
 esac
 
 # Do `set' in a subshell so we don't clobber the current shell's
@@ -3576,7 +3465,7 @@ if test "$cross_compiling" != no; then
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -3616,7 +3505,7 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -3669,7 +3558,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
+  if ${ac_cv_path_mkdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3720,7 +3609,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -3760,7 +3649,7 @@ done
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -3818,7 +3707,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='0.10.34'
+ VERSION='0.10.36'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3848,21 +3737,21 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
 
-AMTAR=${AMTAR-"${am_missing_run}tar"}
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 
 
 
 
 
-
-  PACKAGE_VERSION_MAJOR=$(echo 0.10.34 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 0.10.34 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 0.10.34 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 0.10.36 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 0.10.36 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 0.10.36 | cut -d'.' -f3)
 
 
 
@@ -3873,7 +3762,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 0.10.34 | cut -d'.' -f4)
+  NANO=$(echo 0.10.36 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -3931,7 +3820,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -3947,7 +3836,7 @@ fi
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -3965,7 +3854,7 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -3980,7 +3869,7 @@ fi
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -4007,6 +3896,33 @@ yes) AM_DEFAULT_VERBOSITY=0;;
 no)  AM_DEFAULT_VERBOSITY=1;;
 *)   AM_DEFAULT_VERBOSITY=0;;
 esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
 AM_BACKSLASH='\'
 
 
@@ -4015,10 +3931,10 @@ GST_MAJORMINOR=0.10
 
 
 
-  GST_CURRENT=24
+  GST_CURRENT=25
   GST_REVISION=0
-  GST_AGE=24
-  GST_LIBVERSION=24:0:24
+  GST_AGE=25
+  GST_LIBVERSION=25:0:25
 
 
 
@@ -4041,13 +3957,13 @@ GST_MAJORMINOR=0.10
 enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
+if ${ac_cv_prog_AS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AS"; then
@@ -4087,7 +4003,7 @@ if test -z "$ac_cv_prog_AS"; then
 set dummy as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AS"; then
@@ -4139,7 +4055,7 @@ fi
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DLLTOOL"; then
@@ -4179,7 +4095,7 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
 set dummy dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DLLTOOL"; then
@@ -4231,7 +4147,7 @@ fi
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -4271,7 +4187,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -4349,8 +4265,8 @@ esac
 
 
 
-macro_version='2.2.6b'
-macro_revision='1.3017'
+macro_version='2.4.2'
+macro_revision='1.3337'
 
 
 
@@ -4366,6 +4282,75 @@ macro_revision='1.3017'
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 DEPDIR="${am__leading_dot}deps"
 
 ac_config_commands="$ac_config_commands depfiles"
@@ -4418,6 +4403,7 @@ fi
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -4438,7 +4424,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4478,7 +4464,7 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4531,7 +4517,7 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4571,7 +4557,7 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4630,7 +4616,7 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4674,7 +4660,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4729,7 +4715,7 @@ fi
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4844,7 +4830,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -4887,7 +4873,7 @@ else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4946,7 +4932,7 @@ $as_echo "$ac_try_echo"; } >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -4957,7 +4943,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4998,7 +4984,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -5008,7 +4994,7 @@ OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5045,7 +5031,7 @@ ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -5123,7 +5109,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -5222,7 +5208,7 @@ depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -5231,6 +5217,7 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -5290,7 +5277,7 @@ else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -5347,7 +5334,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -5429,7 +5416,7 @@ Xsed="$SED -e 1s/^X//"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5492,7 +5479,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5559,7 +5546,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
+if ${ac_cv_path_FGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -5690,7 +5677,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then :
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -5730,7 +5717,7 @@ fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -5757,7 +5744,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
+if ${lt_cv_path_NM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -5810,14 +5797,17 @@ if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -5855,13 +5845,13 @@ fi
 fi
 if test -z "$DUMPBIN"; then
   ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  for ac_prog in dumpbin "link -dump"
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -5910,6 +5900,15 @@ esac
   fi
 fi
 
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
 
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -5924,18 +5923,18 @@ test -z "$NM" && NM=nm
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
+if ${lt_cv_nm_interface+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5932: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5935: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5938: output\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -5959,7 +5958,7 @@ fi
 # find the maximum length of command line arguments
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -5992,6 +5991,11 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -6017,6 +6021,11 @@ else
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -6056,8 +6065,8 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -6099,8 +6108,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -6149,9 +6158,83 @@ esac
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
+if ${lt_cv_ld_reload_flag+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
@@ -6165,6 +6248,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -6187,7 +6275,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -6227,7 +6315,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -6283,7 +6371,7 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
+if ${lt_cv_deplibs_check_method+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -6325,16 +6413,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -6364,6 +6454,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -6372,11 +6466,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -6397,7 +6491,7 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -6479,6 +6573,21 @@ esac
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -6494,16 +6603,26 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 
 
+
+
+
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -6512,7 +6631,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -6522,10 +6641,10 @@ IFS=$as_save_IFS
 
 fi
 fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -6533,17 +6652,17 @@ fi
 
 
 fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -6552,7 +6671,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -6562,17 +6681,17 @@ IFS=$as_save_IFS
 
 fi
 fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
@@ -6580,35 +6699,71 @@ yes:)
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
-    AR=$ac_ct_AR
+    DLLTOOL=$ac_ct_DLLTOOL
   fi
 else
-  AR="$ac_cv_prog_AR"
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
 fi
 
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
 
 
 
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
 
 
 
 
 
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -6617,7 +6772,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -6627,10 +6782,179 @@ IFS=$as_save_IFS
 
 fi
 fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$AR" && break
+  done
+fi
+if test -z "$AR"; then
+  ac_ct_AR=$AR
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_AR" && break
+done
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -6644,7 +6968,7 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -6703,7 +7027,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -6743,7 +7067,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -6805,15 +7129,27 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
 
 
 
@@ -6860,7 +7196,7 @@ compiler=$CC
 # Check for command to grab the raw symbol name followed by C symbol from nm.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6921,8 +7257,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -6946,6 +7282,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -6958,6 +7295,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -6983,8 +7321,8 @@ _LT_EOF
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "$nlist"; then
@@ -6999,6 +7337,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -7010,7 +7360,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -7036,8 +7386,8 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -7047,8 +7397,8 @@ _LT_EOF
   test $ac_status = 0; } && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&5
        fi
@@ -7085,6 +7435,15 @@ else
 $as_echo "ok" >&6; }
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+
+
 
 
 
@@ -7107,6 +7466,45 @@ fi
 
 
 
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
@@ -7138,7 +7536,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 7141 "configure"' > conftest.$ac_ext
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7232,7 +7630,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
+if ${lt_cv_cc_needs_belf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -7273,7 +7671,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -7284,7 +7682,20 @@ sparc*-*solaris*)
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -7300,6 +7711,123 @@ esac
 
 need_locks="$enable_libtool_lock"
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
 
   case $host_os in
     rhapsody* | darwin*)
@@ -7308,7 +7836,7 @@ need_locks="$enable_libtool_lock"
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -7348,7 +7876,7 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
 set dummy dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -7400,7 +7928,7 @@ fi
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -7440,7 +7968,7 @@ if test -z "$ac_cv_prog_NMEDIT"; then
 set dummy nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -7492,7 +8020,7 @@ fi
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
+if ${ac_cv_prog_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -7532,7 +8060,7 @@ if test -z "$ac_cv_prog_LIPO"; then
 set dummy lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -7584,7 +8112,7 @@ fi
 set dummy ${ac_tool_prefix}otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
+if ${ac_cv_prog_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -7624,7 +8152,7 @@ if test -z "$ac_cv_prog_OTOOL"; then
 set dummy otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -7676,7 +8204,7 @@ fi
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -7716,7 +8244,7 @@ if test -z "$ac_cv_prog_OTOOL64"; then
 set dummy otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -7791,7 +8319,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -7807,7 +8335,13 @@ else
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&5
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&5
@@ -7818,9 +8352,10 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
@@ -7850,6 +8385,41 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -7877,7 +8447,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -7897,7 +8467,7 @@ if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -8013,7 +8583,7 @@ else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -8025,7 +8595,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8156,7 +8726,7 @@ for ac_header in dlfcn.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_DLFCN_H 1
 _ACEOF
@@ -8167,6 +8737,8 @@ done
 
 
 
+
+
 # Set options
 
 
@@ -8238,7 +8810,22 @@ fi
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
 else
   pic_mode=default
 fi
@@ -8315,6 +8902,11 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+
+
+
+
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -8336,7 +8928,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
+if ${lt_cv_objdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -8364,19 +8956,6 @@ _ACEOF
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 case $host_os in
 aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
@@ -8389,23 +8968,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -8434,7 +8996,7 @@ for cc_temp in $compiler""; do
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
 # Only perform the check for file, if the check method requires it
@@ -8444,7 +9006,7 @@ file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8510,7 +9072,7 @@ if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8643,11 +9205,16 @@ if test -n "$compiler"; then
 lt_prog_compiler_no_builtin_flag=
 
 if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -8663,15 +9230,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8666: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8670: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
@@ -8700,8 +9267,6 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -8749,6 +9314,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -8791,6 +9362,15 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -8853,7 +9433,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='--shared'
        lt_prog_compiler_static='--static'
        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+       # NAG Fortran compiler
+       lt_prog_compiler_wl='-Wl,-Wl,,'
+       lt_prog_compiler_pic='-PIC'
+       lt_prog_compiler_static='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
        lt_prog_compiler_wl='-Wl,'
@@ -8865,25 +9451,40 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
         # All Alpha code is PIC.
         lt_prog_compiler_static='-non_shared'
         ;;
-      xl*)
-       # IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
        lt_prog_compiler_wl='-Wl,'
        lt_prog_compiler_pic='-qpic'
        lt_prog_compiler_static='-qstaticlink'
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl='-Qoption ld '
+         ;;
        *Sun\ C*)
          # Sun C 5.9
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
          lt_prog_compiler_wl='-Wl,'
          ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
-         lt_prog_compiler_pic='-KPIC'
+        *Intel*\ [CF]*Compiler*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fPIC'
+         lt_prog_compiler_static='-static'
+         ;;
+       *Portland\ Group*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fpic'
          lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl=''
          ;;
        esac
        ;;
@@ -8915,7 +9516,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-KPIC'
       lt_prog_compiler_static='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
        lt_prog_compiler_wl='-Qoption ld ';;
       *)
        lt_prog_compiler_wl='-Wl,';;
@@ -8972,13 +9573,17 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
@@ -8986,7 +9591,7 @@ $as_echo "$lt_prog_compiler_pic" >&6; }
 if test -n "$lt_prog_compiler_pic"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -9002,15 +9607,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9005: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9009: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
@@ -9039,13 +9644,18 @@ fi
 
 
 
+
+
+
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -9058,7 +9668,7 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
@@ -9088,7 +9698,7 @@ fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9107,16 +9717,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9110: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9114: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -9143,7 +9753,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9162,16 +9772,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9165: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9169: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -9237,7 +9847,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -9281,13 +9890,39 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
+  linux* | k*bsd*-gnu | gnu*)
     link_all_deplibs=no
     ;;
   esac
 
   ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+         *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -9321,11 +9956,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -9361,10 +9997,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -9382,6 +10020,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
@@ -9407,15 +10050,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -9426,13 +10070,17 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          whole_archive_flag_spec=
          tmp_sharedflag='--shared' ;;
-       xl[cC]*)                        # IBM XL C 8.0 on PPC (deal with xlf below)
+       xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         compiler_needs_object=yes
+         ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          compiler_needs_object=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
@@ -9448,17 +10096,16 @@ _LT_EOF
         fi
 
        case $cc_basename in
-       xlf*)
+       xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-         hardcode_libdir_flag_spec=
-         hardcode_libdir_flag_spec_ld='-rpath $libdir'
-         archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+         archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
              echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -9472,8 +10119,8 @@ _LT_EOF
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -9491,8 +10138,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9538,8 +10185,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -9579,8 +10226,10 @@ _LT_EOF
       else
        # If we're using GNU nm, then we don't want the "-C" option.
        # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        else
          export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        fi
@@ -9668,7 +10317,13 @@ _LT_EOF
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -9681,25 +10336,32 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
        if test "$host_cpu" = ia64; then
          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
@@ -9708,7 +10370,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -9721,30 +10389,42 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
          no_undefined_flag=' ${wl}-bernotok'
          allow_undefined_flag=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           whole_archive_flag_spec='$convenience'
+         fi
          archive_cmds_need_lc=yes
          # This is similar to how AIX traditionally builds its shared libraries.
          archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -9776,20 +10456,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       always_export_symbols=yes
+       file_list_spec='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+       enable_shared_with_static_runtimes=yes
+       exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       old_postinstall_cmds='chmod 644 $oldlib'
+       postlink_cmds='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_from_new_cmds='true'
+       # FIXME: Should let the user specify the lib program.
+       old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       enable_shared_with_static_runtimes=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -9799,7 +10523,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec=''
+  fi
   link_all_deplibs=yes
   allow_undefined_flag="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -9807,7 +10536,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -9825,10 +10554,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       hardcode_shlibpath_var=no
       ;;
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -9841,7 +10566,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -9850,7 +10575,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       hardcode_shlibpath_var=no
@@ -9858,7 +10583,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux9*)
       if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -9873,14 +10598,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld='+b $libdir'
        hardcode_libdir_separator=:
        hardcode_direct=yes
        hardcode_direct_absolute=yes
@@ -9892,16 +10616,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
        case $host_cpu in
        hppa*64*)
          archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -9913,7 +10637,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
          ;;
        esac
       fi
@@ -9941,26 +10704,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+       # This should be the same for all languages, so no per-tag cache variable.
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-int foo(void) {}
+int foo (void) { return 0; }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -10022,17 +10798,17 @@ rm -f core conftest.err conftest.$ac_objext \
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -10042,13 +10818,13 @@ rm -f core conftest.err conftest.$ac_objext \
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        hardcode_libdir_flag_spec='-rpath $libdir'
@@ -10061,9 +10837,9 @@ rm -f core conftest.err conftest.$ac_objext \
       no_undefined_flag=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -10251,44 +11027,50 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-       pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$lt_prog_compiler_wl
+         pic_flag=$lt_prog_compiler_pic
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$allow_undefined_flag
+         allow_undefined_flag=
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-         archive_cmds_need_lc=no
-        else
-         archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
+         then
+           lt_cv_archive_cmds_need_lc=no
+         else
+           lt_cv_archive_cmds_need_lc=yes
+         fi
+         allow_undefined_flag=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
   fi
@@ -10446,11 +11228,6 @@ esac
 
 
 
-
-
-
-
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -10459,16 +11236,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -10481,7 +11265,7 @@ if test "$GCC" = yes; then
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -10501,7 +11285,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[lt_foo]++; }
   if (lt_freq[lt_foo] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -10527,7 +11317,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -10536,7 +11326,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -10589,7 +11379,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -10601,7 +11391,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -10620,8 +11410,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -10642,36 +11433,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -10692,7 +11530,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -10700,10 +11538,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -10711,7 +11545,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -10729,7 +11563,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -10749,12 +11583,26 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -10800,12 +11648,14 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -10821,7 +11671,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -10858,9 +11708,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -10868,12 +11718,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10886,13 +11741,17 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -10901,7 +11760,7 @@ rm -f core conftest.err conftest.$ac_objext \
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -10945,7 +11804,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -11014,7 +11873,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11039,7 +11898,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -11063,7 +11922,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -11094,7 +11953,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11104,7 +11963,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
 
 
 
+
+
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
@@ -11288,7 +12152,7 @@ else
   # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11322,7 +12186,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
 
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
+if test "x$ac_cv_func_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+if ${ac_cv_lib_dld_shl_load+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11375,16 +12239,16 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
+if test "x$ac_cv_func_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11418,12 +12282,12 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+if ${ac_cv_lib_svld_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11457,12 +12321,12 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+if ${ac_cv_lib_dld_dld_link+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11496,7 +12360,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -11537,7 +12401,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
+if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -11546,7 +12410,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11549 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11587,7 +12451,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -11596,7 +12466,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -11633,7 +12507,7 @@ $as_echo "$lt_cv_dlopen_self" >&6; }
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
+if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -11642,7 +12516,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11645 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11683,7 +12557,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -11692,7 +12572,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -11861,6 +12745,8 @@ CC="$lt_save_CC"
 
 
 
+
+
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -11870,7 +12756,7 @@ CC="$lt_save_CC"
 
 
 
-GST_REQ=0.10.34
+GST_REQ=0.10.36
 
 
 
@@ -11988,7 +12874,7 @@ rm -f conf$$.file
 set dummy msgfmt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then :
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -12029,7 +12915,7 @@ fi
 set dummy gmsgfmt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+if ${ac_cv_path_GMSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -12111,7 +12997,7 @@ rm -f conf$$.file
 set dummy xgettext; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+if ${ac_cv_path_XGETTEXT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -12189,7 +13075,7 @@ rm -f conf$$.file
 set dummy msgmerge; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+if ${ac_cv_path_MSGMERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGMERGE" in
@@ -12311,7 +13197,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -12348,7 +13234,7 @@ fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -12368,7 +13254,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
 
                                                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
 $as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12882,7 +13768,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then :
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -12916,7 +13802,7 @@ $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
   fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then :
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -12992,7 +13878,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
 
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
 $as_echo_n "checking for GNU gettext in libc... " >&6; }
-if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then :
+if eval \${$gt_func_gnugettext_libc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13055,7 +13941,7 @@ $as_echo "$ac_res" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 $as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
+if ${am_cv_func_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13112,7 +13998,7 @@ $as_echo "$am_cv_func_iconv" >&6; }
   if test "$am_cv_func_iconv" = yes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
 $as_echo_n "checking for working iconv... " >&6; }
-if test "${am_cv_func_iconv_works+set}" = set; then :
+if ${am_cv_func_iconv_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13663,7 +14549,7 @@ fi
 
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then :
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_CPPFLAGS="$CPPFLAGS"
@@ -13894,7 +14780,7 @@ if test "${enable_debug+set}" = set; then :
       case "${enableval}" in
         yes) USE_DEBUG=yes ;;
         no)  USE_DEBUG=no ;;
-        *)   as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5  ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
       esac
 
 else
@@ -13908,7 +14794,7 @@ if test "${enable_profiling+set}" = set; then :
       case "${enableval}" in
         yes) USE_PROFILING=yes ;;
         no)  USE_PROFILING=no ;;
-        *)   as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5  ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;;
       esac
 
 else
@@ -13923,7 +14809,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -13966,7 +14852,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $ac_pt_PKG_CONFIG in
@@ -14038,7 +14924,7 @@ if test "${enable_valgrind+set}" = set; then :
       case "${enableval}" in
         yes) USE_VALGRIND="$USE_DEBUG" ;;
         no)  USE_VALGRIND=no ;;
-        *)   as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5  ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;;
       esac
 
 else
 
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-
-        USE_VALGRIND="no"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
+                USE_VALGRIND="no"
 elif test $pkg_failed = untried; then
-
-        USE_VALGRIND="no"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
+       USE_VALGRIND="no"
 else
        VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS
        VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS
@@ -14264,7 +15142,7 @@ if test "${enable_examples+set}" = set; then :
         case "${enableval}" in
           yes) BUILD_EXAMPLES=yes ;;
           no)  BUILD_EXAMPLES=no ;;
-          *)   as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5  ;;
+          *)   as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;;
         esac
 
 else
@@ -14298,8 +15176,8 @@ fi
 if test "${with_package_name+set}" = set; then :
   withval=$with_package_name;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;;
         *)   GST_PACKAGE_NAME="${withval}" ;;
       esac
 
@@ -14341,8 +15219,8 @@ _ACEOF
 if test "${with_package_origin+set}" = set; then :
   withval=$with_package_origin;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;;
         *)   GST_PACKAGE_ORIGIN="${withval}" ;;
       esac
 
@@ -14375,8 +15253,8 @@ $as_echo "$as_me: Using GST_PKG_CONFIG_PATH = $GST_PKG_CONFIG_PATH" >&6;}
 if test "${with_install_plugins_helper+set}" = set; then :
   withval=$with_install_plugins_helper;
     case "${withval}" in
-      yes) as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5  ;;
-      no)  as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5  ;;
+      yes) as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5 ;;
+      no)  as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5 ;;
       *)   GST_INSTALL_PLUGINS_HELPER="${withval}" ;;
     esac
 
@@ -14458,7 +15336,7 @@ if test "${enable_external+set}" = set; then :
   enableval=$enable_external;  case "${enableval}" in
       yes) USE_EXTERNAL=yes;;
       no) USE_EXTERNAL=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-external" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-external" "$LINENO" 5 ;;
     esac
 else
    USE_EXTERNAL=yes
@@ -14556,7 +15434,7 @@ if test "${enable_experimental+set}" = set; then :
   enableval=$enable_experimental;  case "${enableval}" in
       yes) USE_EXPERIMENTAL=yes;;
       no) USE_EXPERIMENTAL=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-experimental" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-experimental" "$LINENO" 5 ;;
     esac
 else
    USE_EXPERIMENTAL=no
 
 
 
+  case $host_os in
+    rhapsody*)
+
+cat >>confdefs.h <<_ACEOF
+#define GST_EXTRA_MODULE_SUFFIX ".dylib"
+_ACEOF
+
+      ;;
+    darwin*)
+
+cat >>confdefs.h <<_ACEOF
+#define GST_EXTRA_MODULE_SUFFIX ".dylib"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_OSX 1
+_ACEOF
+
+      ;;
+    cygwin*)
+
+cat >>confdefs.h <<_ACEOF
+#define GST_HAVE_UNSAFE_FORK 1
+_ACEOF
+
+      ;;
+    mingw* | msvc* | mks*)
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WIN32 1
+_ACEOF
+
+
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return __MSVCRT_VERSION__;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+            #if __MSVCRT_VERSION__ < 0x0601
+            #error "MSVCRT too old"
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: MSVCRT version looks ok" >&5
+$as_echo "$as_me: MSVCRT version looks ok" >&6;}
+
+else
+
+            as_fn_error $? "MSVCRT version too old, need at least WinXP SP2" "$LINENO" 5
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: Setting MSVCRT version to 0x0601" >&5
+$as_echo "$as_me: Setting MSVCRT version to 0x0601" >&6;}
+
+cat >>confdefs.h <<_ACEOF
+#define __MSVCRT_VERSION__ 0x0601
+_ACEOF
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      ;;
+     *)
+      ;;
+  esac
+
+
+
+
 
     case "x${host_cpu}" in
     xi?86 | xk? | xi?86_64)
       case $host_os in
          solaris*)
             ac_fn_c_check_decl "$LINENO" "__i386" "ac_cv_have_decl___i386" "$ac_includes_default"
-if test "x$ac_cv_have_decl___i386" = x""yes; then :
+if test "x$ac_cv_have_decl___i386" = xyes; then :
   I386_ABI="yes"
 else
   I386_ABI="no"
 fi
 
             ac_fn_c_check_decl "$LINENO" "__amd64" "ac_cv_have_decl___amd64" "$ac_includes_default"
-if test "x$ac_cv_have_decl___amd64" = x""yes; then :
+if test "x$ac_cv_have_decl___amd64" = xyes; then :
   AMD64_ABI="yes"
 else
   AMD64_ABI="no"
@@ -14757,7 +15729,7 @@ $as_echo "#define HAVE_CPU_CRISV32 1" >>confdefs.h
 
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
+if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
@@ -14976,7 +15948,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
      ;; #(
    *)
      as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5  ;;
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
 
@@ -15109,7 +16081,7 @@ if test "$enable_largefile" != no; then
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
@@ -15160,7 +16132,7 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -15229,7 +16201,7 @@ rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -15310,7 +16282,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15350,7 +16322,7 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -15403,7 +16375,7 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15443,7 +16415,7 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15502,7 +16474,7 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15546,7 +16518,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -15601,7 +16573,7 @@ fi
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -15630,7 +16602,7 @@ done
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15667,7 +16639,7 @@ ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -15745,7 +16717,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -15844,7 +16816,7 @@ depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -15853,6 +16825,7 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -15912,7 +16885,7 @@ else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -15973,7 +16946,7 @@ fi
   *) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
-if test "${ac_cv_prog_cc_c99+set}" = set; then :
+if ${ac_cv_prog_cc_c99+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c99=no
@@ -16148,7 +17121,7 @@ if test "x$ac_cv_prog_cc_c99" != xno; then :
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -16244,7 +17217,7 @@ fi
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5
 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; }
-  if test "${ac_cv_prog_cc_stdc+set}" = set; then :
+  if ${ac_cv_prog_cc_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 
@@ -16270,7 +17243,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
 fi
 set dummy $CC; ac_cc=`$as_echo "$2" |
                      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then :
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16404,7 +17377,7 @@ if test -z "$CXX"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
+if ${ac_cv_prog_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
@@ -16448,7 +17421,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
@@ -16526,7 +17499,7 @@ done
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16563,7 +17536,7 @@ ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
+if ${ac_cv_prog_cxx_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
@@ -16649,7 +17622,7 @@ depcc="$CXX"  am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -16658,6 +17631,7 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -16717,7 +17691,7 @@ else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
 
 
 
-ac_ext=cpp
+
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+
+      if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+  if ${ac_cv_prog_CXXCPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
 do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
 
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
 done
-  done
-IFS=$as_save_IFS
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
 
 fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-        CXXFLAGS="-g"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-       continue
-      else
-       break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
 $as_echo "$CXXCPP" >&6; }
@@ -17283,7 +17882,8 @@ if $ac_preproc_ok; then :
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-_lt_caught_CXX_error=yes; }
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -17296,9 +17896,6 @@ else
   _lt_caught_CXX_error=yes
 fi
 
-
-
-
 ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -17314,7 +17911,6 @@ export_dynamic_flag_spec_CXX=
 hardcode_direct_CXX=no
 hardcode_direct_absolute_CXX=no
 hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
 hardcode_libdir_separator_CXX=
 hardcode_minus_L_CXX=no
 hardcode_shlibpath_var_CXX=unsupported
@@ -17324,6 +17920,8 @@ module_cmds_CXX=
 module_expsym_cmds_CXX=
 link_all_deplibs_CXX=unknown
 old_archive_cmds_CXX=$old_archive_cmds
+reload_flag_CXX=$reload_flag
+reload_cmds_CXX=$reload_cmds
 no_undefined_flag_CXX=
 whole_archive_flag_spec_CXX=
 enable_shared_with_static_runtimes_CXX=no
@@ -17379,6 +17977,7 @@ $RM -r conftest*
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -17396,6 +17995,7 @@ $RM -r conftest*
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   compiler_CXX=$CC
   for cc_temp in $compiler""; do
@@ -17406,7 +18006,7 @@ $RM -r conftest*
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
   if test -n "$compiler"; then
@@ -17469,7 +18069,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then :
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -17509,7 +18109,7 @@ fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -17535,8 +18135,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -17568,7 +18168,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -17678,7 +18278,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
           allow_undefined_flag_CXX='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+          if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath__CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -17691,26 +18297,33 @@ main ()
 _ACEOF
 if ac_fn_cxx_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__CXX
+fi
 
           hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
            hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
@@ -17719,7 +18332,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+           if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath__CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -17732,30 +18351,42 @@ main ()
 _ACEOF
 if ac_fn_cxx_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__CXX
+fi
 
            hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
            no_undefined_flag_CXX=' ${wl}-bernotok'
            allow_undefined_flag_CXX=' ${wl}-berok'
-           # Exported symbols can be pulled into shared objects from archives
-           whole_archive_flag_spec_CXX='$convenience'
+           if test "$with_gnu_ld" = yes; then
+             # We only use this code for GNU lds that support --whole-archive.
+             whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           else
+             # Exported symbols can be pulled into shared objects from archives
+             whole_archive_flag_spec_CXX='$convenience'
+           fi
            archive_cmds_need_lc_CXX=yes
            # This is similar to how AIX traditionally builds its shared
            # libraries.
@@ -17785,28 +18416,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-        # as there is no search path for DLLs.
-        hardcode_libdir_flag_spec_CXX='-L$libdir'
-        allow_undefined_flag_CXX=unsupported
-        always_export_symbols_CXX=no
-        enable_shared_with_static_runtimes_CXX=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           cp $export_symbols $output_objdir/$soname.def;
-          else
-           echo EXPORTS > $output_objdir/$soname.def;
-           cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          ld_shlibs_CXX=no
-        fi
-        ;;
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         hardcode_libdir_flag_spec_CXX=' '
+         allow_undefined_flag_CXX=unsupported
+         always_export_symbols_CXX=yes
+         file_list_spec_CXX='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
+         enable_shared_with_static_runtimes_CXX=yes
+         # Don't use ranlib
+         old_postinstall_cmds_CXX='chmod 644 $oldlib'
+         postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+         # as there is no search path for DLLs.
+         hardcode_libdir_flag_spec_CXX='-L$libdir'
+         export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
+         allow_undefined_flag_CXX=unsupported
+         always_export_symbols_CXX=no
+         enable_shared_with_static_runtimes_CXX=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           ld_shlibs_CXX=no
+         fi
+         ;;
+       esac
+       ;;
       darwin* | rhapsody*)
 
 
@@ -17814,7 +18492,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_direct_CXX=no
   hardcode_automatic_CXX=yes
   hardcode_shlibpath_var_CXX=unsupported
-  whole_archive_flag_spec_CXX=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec_CXX=''
+  fi
   link_all_deplibs_CXX=yes
   allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -17822,7 +18505,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -17856,7 +18539,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         esac
         ;;
 
-      freebsd[12]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
        # switch to ELF
         ld_shlibs_CXX=no
@@ -17875,6 +18558,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       gnu*)
         ;;
 
+      haiku*)
+        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        link_all_deplibs_CXX=yes
+        ;;
+
       hpux9*)
         hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
         hardcode_libdir_separator_CXX=:
@@ -17899,11 +18587,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               ld_shlibs_CXX=no
@@ -17964,7 +18652,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
           *)
            if test "$GXX" = yes; then
@@ -17974,10 +18662,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
                    archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -18007,7 +18695,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         case $cc_basename in
           CC*)
            # SGI C++
-           archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+           archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
            # Archives containing C++ object files must be created using
            # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -18018,9 +18706,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
           *)
            if test "$GXX" = yes; then
              if test "$with_gnu_ld" = no; then
-               archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+               archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
              else
-               archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+               archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
              fi
            fi
            link_all_deplibs_CXX=yes
@@ -18049,7 +18737,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
            hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
            export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -18086,26 +18774,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
-           *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
+           *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
              prelink_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              old_archive_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
                $RANLIB $oldlib'
              archive_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              archive_expsym_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
-           *) # Version 6 will use weak symbols
+           *) # Version 6 and above use weak symbols
              archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
@@ -18113,7 +18801,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
            hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
            export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-           whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+           whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
          cxx*)
            # Compaq C++
@@ -18132,9 +18820,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
            ;;
-         xl*)
+         xl* | mpixl* | bgxl*)
            # IBM XL 8.0 on PPC, with GNU ld
            hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
            export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -18154,13 +18842,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
              archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
              archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
              hardcode_libdir_flag_spec_CXX='-R$libdir'
-             whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+             whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
              compiler_needs_object_CXX=yes
 
              # Not sure whether something based on
              # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
              # would be better.
-             output_verbose_link_cmd='echo'
+             output_verbose_link_cmd='func_echo_all'
 
              # Archives containing C++ object files must be created using
              # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -18229,7 +18917,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            export_dynamic_flag_spec_CXX='${wl}-E'
            whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
          fi
-         output_verbose_link_cmd=echo
+         output_verbose_link_cmd=func_echo_all
        else
          ld_shlibs_CXX=no
        fi
@@ -18264,15 +18952,15 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            case $host in
              osf3*)
                allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-               archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
                ;;
              *)
                allow_undefined_flag_CXX=' -expect_unresolved \*'
-               archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
                  echo "-hidden">> $lib.exp~
-                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
                  $RM $lib.exp'
                hardcode_libdir_flag_spec_CXX='-rpath $libdir'
                ;;
@@ -18288,17 +18976,17 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
          *)
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
              case $host in
                osf3*)
-                 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
                *)
-                 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
              esac
 
@@ -18308,7 +18996,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
              # Commands to make compiler produce verbose output that lists
              # what "hidden" libraries, object files and flags are used when
              # linking a shared library.
-             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
            else
              # FIXME: insert proper C++ library support
@@ -18344,7 +19032,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
             archive_cmds_need_lc_CXX=yes
            no_undefined_flag_CXX=' -zdefs'
@@ -18365,7 +19053,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            esac
            link_all_deplibs_CXX=yes
 
-           output_verbose_link_cmd='echo'
+           output_verbose_link_cmd='func_echo_all'
 
            # Archives containing C++ object files must be created using
            # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -18385,14 +19073,14 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
                archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
                # g++ 2.7 appears to require `-G' NOT `-shared' on this
                # platform.
@@ -18403,7 +19091,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
              hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
@@ -18457,6 +19145,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
           CC*)
            archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
+             '"$old_archive_cmds_CXX"
+           reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
+             '"$reload_cmds_CXX"
            ;;
          *)
            archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -18518,6 +19210,14 @@ private:
 };
 _LT_EOF
 
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -18531,7 +19231,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -18540,13 +19240,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
           test $p = "-R"; then
         prev=$p
         continue
-       else
-        prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
+        case ${prev} in
+        -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
@@ -18566,8 +19275,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
           postdeps_CXX="${postdeps_CXX} ${prev}${p}"
         fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -18603,6 +19314,7 @@ else
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 case $host_os in
@@ -18638,7 +19350,7 @@ linux*)
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -18703,8 +19415,6 @@ fi
 lt_prog_compiler_pic_CXX=
 lt_prog_compiler_static_CXX=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -18754,6 +19464,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       # DJGPP does not support shared libraries at all
       lt_prog_compiler_pic_CXX=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static_CXX=
+      ;;
     interix[3-9]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -18803,6 +19518,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
          ;;
        esac
        ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+       ;;
       dgux*)
        case $cc_basename in
          ec++*)
@@ -18892,8 +19612,8 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
            lt_prog_compiler_pic_CXX=
            lt_prog_compiler_static_CXX='-non_shared'
            ;;
-         xlc* | xlC*)
-           # IBM XL 8.0 on PPC
+         xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
+           # IBM XL 8.0, 9.0 on PPC and BlueGene
            lt_prog_compiler_wl_CXX='-Wl,'
            lt_prog_compiler_pic_CXX='-qpic'
            lt_prog_compiler_static_CXX='-qstaticlink'
@@ -18955,7 +19675,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        ;;
       solaris*)
        case $cc_basename in
-         CC*)
+         CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
            lt_prog_compiler_pic_CXX='-KPIC'
            lt_prog_compiler_static_CXX='-Bstatic'
@@ -19020,10 +19740,17 @@ case $host_os in
     lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
 
 #
 # Check to make sure the PIC flag actually works.
@@ -19031,7 +19758,7 @@ $as_echo "$lt_prog_compiler_pic_CXX" >&6; }
 if test -n "$lt_prog_compiler_pic_CXX"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works_CXX=no
@@ -19047,15 +19774,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19050: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19054: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works_CXX=yes
 
 
 
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works_CXX=no
@@ -19100,7 +19829,7 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works_CXX=yes
@@ -19127,7 +19856,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
@@ -19146,16 +19875,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19149: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19153: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_CXX=yes
@@ -19179,7 +19908,7 @@ $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
@@ -19198,16 +19927,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19201: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19205: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_CXX=yes
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   case $host_os in
   aix[4-9]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
+    case $cc_basename in
+    cl*)
+      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+      ;;
+    esac
+    ;;
+  linux* | k*bsd*-gnu | gnu*)
     link_all_deplibs_CXX=no
-  ;;
+    ;;
   *)
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
 $as_echo "$ld_shlibs_CXX" >&6; }
@@ -19313,44 +20052,50 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-       pic_flag=$lt_prog_compiler_pic_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$lt_prog_compiler_wl_CXX
+         pic_flag=$lt_prog_compiler_pic_CXX
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+         allow_undefined_flag_CXX=
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-         archive_cmds_need_lc_CXX=no
-        else
-         archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
-$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+         then
+           lt_cv_archive_cmds_need_lc_CXX=no
+         else
+           lt_cv_archive_cmds_need_lc_CXX=yes
+         fi
+         allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
+      archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
       ;;
     esac
   fi
@@ -19418,8 +20163,6 @@ esac
 
 
 
-
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -19445,7 +20188,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -19454,7 +20197,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -19507,7 +20250,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -19519,7 +20262,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -19538,8 +20281,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -19560,36 +20304,82 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -19609,7 +20399,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -19617,10 +20407,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -19628,7 +20414,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -19646,7 +20432,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -19666,12 +20452,26 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -19717,12 +20517,14 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -19738,7 +20540,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -19775,9 +20577,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -19785,12 +20587,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -19803,13 +20610,17 @@ main ()
 _ACEOF
 if ac_fn_cxx_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -19818,7 +20629,7 @@ rm -f core conftest.err conftest.$ac_objext \
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -19862,7 +20673,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -19931,7 +20742,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -19956,7 +20767,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -19980,7 +20791,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -20011,7 +20822,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -20021,7 +20832,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -20082,6 +20893,8 @@ fi
 
 
 
+
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_CXX=
@@ -20129,6 +20942,7 @@ fi
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -20190,7 +21004,7 @@ fi
 set dummy valgrind; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_VALGRIND_PATH+set}" = set; then :
+if ${ac_cv_path_VALGRIND_PATH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $VALGRIND_PATH in
@@ -20306,6 +21120,9 @@ $as_echo "$found_introspection" >&6; }
        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
        INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
        INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
     fi
 
 
@@ -20313,6 +21130,9 @@ $as_echo "$found_introspection" >&6; }
 
 
 
+
+
+
      if test "x$found_introspection" = "xyes"; then
   HAVE_INTROSPECTION_TRUE=
   HAVE_INTROSPECTION_FALSE='#'
@@ -20358,7 +21178,7 @@ fi
     if test -z "$SED"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -20439,7 +21259,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then :
+if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GTKDOC_CHECK in
@@ -20521,7 +21341,7 @@ else:
 set dummy $python_candidate; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PYTHON+set}" = set; then :
+if ${ac_cv_path_PYTHON+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PYTHON in
 
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5
 $as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; }
-if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then :
+if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -20688,13 +21508,13 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5
 $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
-if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then :
+if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
   LIBM="-lmw"
 fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
 $as_echo_n "checking for cos in -lm... " >&6; }
-if test "${ac_cv_lib_m_cos+set}" = set; then :
+if ${ac_cv_lib_m_cos+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -20728,7 +21548,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
 $as_echo "$ac_cv_lib_m_cos" >&6; }
-if test "x$ac_cv_lib_m_cos" = x""yes; then :
+if test "x$ac_cv_lib_m_cos" = xyes; then :
   LIBM="$LIBM -lm"
 fi
 
@@ -20736,7 +21556,7 @@ fi
 *)
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
 $as_echo_n "checking for cos in -lm... " >&6; }
-if test "${ac_cv_lib_m_cos+set}" = set; then :
+if ${ac_cv_lib_m_cos+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -20770,7 +21590,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
 $as_echo "$ac_cv_lib_m_cos" >&6; }
-if test "x$ac_cv_lib_m_cos" = x""yes; then :
+if test "x$ac_cv_lib_m_cos" = xyes; then :
   LIBM="-lm"
 fi
 
@@ -20783,7 +21603,7 @@ esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20897,7 +21717,7 @@ fi
 for ac_header in malloc.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
-if test "x$ac_cv_header_malloc_h" = x""yes; then :
+if test "x$ac_cv_header_malloc_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_MALLOC_H 1
 _ACEOF
@@ -20945,7 +21765,7 @@ fi
 for ac_header in sys/socket.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_socket_h" = x""yes; then :
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_SOCKET_H 1
 _ACEOF
@@ -20968,7 +21788,7 @@ fi
 for ac_header in winsock2.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = x""yes; then :
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WINSOCK2_H 1
 _ACEOF
 
 save_libs="$LIBS"
 ac_fn_c_check_func "$LINENO" "hstrerror" "ac_cv_func_hstrerror"
-if test "x$ac_cv_func_hstrerror" = x""yes; then :
+if test "x$ac_cv_func_hstrerror" = xyes; then :
 
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror in -lresolv" >&5
 $as_echo_n "checking for hstrerror in -lresolv... " >&6; }
-if test "${ac_cv_lib_resolv_hstrerror+set}" = set; then :
+if ${ac_cv_lib_resolv_hstrerror+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -21023,7 +21843,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_hstrerror" >&5
 $as_echo "$ac_cv_lib_resolv_hstrerror" >&6; }
-if test "x$ac_cv_lib_resolv_hstrerror" = x""yes; then :
+if test "x$ac_cv_lib_resolv_hstrerror" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBRESOLV 1
 _ACEOF
 done
 
 
+for ac_header in xmmintrin.h emmintrin.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
 # ------ AX CREATE STDINT H -------------------------------------
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint types" >&5
 $as_echo_n "checking for stdint types... " >&6; }
 ac_stdint_h=`echo _stdint.h`
 # try to shortcircuit - if the default include path of the compiler
 # can find a "stdint.h" header then we assume that all compilers can.
-if test "${ac_cv_header_stdint_t+set}" = set; then :
+if ${ac_cv_header_stdint_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21137,7 +21971,7 @@ ac_cv_stdint_result="(no helpful system typedefs seen)"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5
 $as_echo_n "checking for stdint uintptr_t... " >&6; }
-if test "${ac_cv_header_stdint_x+set}" = set; then :
+if ${ac_cv_header_stdint_x+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21150,7 +21984,7 @@ $as_echo "(..)" >&6; }
    unset ac_cv_type_uint64_t
    ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <$i>
 "
-if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+if test "x$ac_cv_type_uintptr_t" = xyes; then :
   ac_cv_header_stdint_x=$i
 else
   continue
@@ -21158,7 +21992,7 @@ fi
 
    ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i>
 "
-if test "x$ac_cv_type_uint64_t" = x""yes; then :
+if test "x$ac_cv_type_uint64_t" = xyes; then :
   and64="/uint64_t"
 else
   and64=""
@@ -21179,7 +22013,7 @@ if test "_$ac_cv_header_stdint_x" = "_" ; then
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5
 $as_echo_n "checking for stdint uint32_t... " >&6; }
-if test "${ac_cv_header_stdint_o+set}" = set; then :
+if ${ac_cv_header_stdint_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21192,7 +22026,7 @@ $as_echo "(..)" >&6; }
    unset ac_cv_type_uint64_t
    ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <$i>
 "
-if test "x$ac_cv_type_uint32_t" = x""yes; then :
+if test "x$ac_cv_type_uint32_t" = xyes; then :
   ac_cv_header_stdint_o=$i
 else
   continue
@@ -21200,7 +22034,7 @@ fi
 
    ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i>
 "
-if test "x$ac_cv_type_uint64_t" = x""yes; then :
+if test "x$ac_cv_type_uint64_t" = xyes; then :
   and64="/uint64_t"
 else
   and64=""
@@ -21224,7 +22058,7 @@ if test "_$ac_cv_header_stdint_o" = "_" ; then
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5
 $as_echo_n "checking for stdint u_int32_t... " >&6; }
-if test "${ac_cv_header_stdint_u+set}" = set; then :
+if ${ac_cv_header_stdint_u+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21236,7 +22070,7 @@ $as_echo "(..)" >&6; }
    unset ac_cv_type_u_int64_t
    ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <$i>
 "
-if test "x$ac_cv_type_u_int32_t" = x""yes; then :
+if test "x$ac_cv_type_u_int32_t" = xyes; then :
   ac_cv_header_stdint_u=$i
 else
   continue
@@ -21244,7 +22078,7 @@ fi
 
    ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include<$i>
 "
-if test "x$ac_cv_type_u_int64_t" = x""yes; then :
+if test "x$ac_cv_type_u_int64_t" = xyes; then :
   and64="/u_int64_t"
 else
   and64=""
@@ -21275,7 +22109,7 @@ $as_echo "(..)" >&6; }
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
 $as_echo_n "checking size of char... " >&6; }
-if test "${ac_cv_sizeof_char+set}" = set; then :
+if ${ac_cv_sizeof_char+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char"        "$ac_includes_default"; then :
@@ -21285,7 +22119,7 @@ else
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (char)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_char=0
    fi
@@ -21308,7 +22142,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
 $as_echo_n "checking size of short... " >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then :
+if ${ac_cv_sizeof_short+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short"        "$ac_includes_default"; then :
@@ -21318,7 +22152,7 @@ else
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (short)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_short=0
    fi
@@ -21341,7 +22175,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
 $as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then :
+if ${ac_cv_sizeof_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
@@ -21351,7 +22185,7 @@ else
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (int)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_int=0
    fi
@@ -21374,7 +22208,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
 $as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then :
+if ${ac_cv_sizeof_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
@@ -21384,7 +22218,7 @@ else
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (long)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_long=0
    fi
@@ -21407,7 +22241,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5
 $as_echo_n "checking size of void*... " >&6; }
-if test "${ac_cv_sizeof_voidp+set}" = set; then :
+if ${ac_cv_sizeof_voidp+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp"        "$ac_includes_default"; then :
@@ -21417,7 +22251,7 @@ else
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (void*)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_voidp=0
    fi
@@ -21486,19 +22320,19 @@ unset ac_cv_type_int_least32_t
 unset ac_cv_type_int_fast32_t
 ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <$ac_cv_header_stdint>
 "
-if test "x$ac_cv_type_int_least32_t" = x""yes; then :
+if test "x$ac_cv_type_int_least32_t" = xyes; then :
 
 fi
 
 ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include<$ac_cv_header_stdint>
 "
-if test "x$ac_cv_type_int_fast32_t" = x""yes; then :
+if test "x$ac_cv_type_int_fast32_t" = xyes; then :
 
 fi
 
 ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "#include <$ac_cv_header_stdint>
 "
-if test "x$ac_cv_type_intmax_t" = x""yes; then :
+if test "x$ac_cv_type_intmax_t" = xyes; then :
 
 fi
 
@@ -21537,7 +22371,7 @@ LIBS="$LIBS $LIBM"
 for ac_func in log2
 do :
   ac_fn_c_check_func "$LINENO" "log2" "ac_cv_func_log2"
-if test "x$ac_cv_func_log2" = x""yes; then :
+if test "x$ac_cv_func_log2" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LOG2 1
 _ACEOF
@@ -21552,7 +22386,7 @@ LIBS=$LIBS_SAVE
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/ioctl.h" >&5
 $as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; }
-  if test "${_cv_gst_fionread_in_sys_ioctl+set}" = set; then :
+  if ${_cv_gst_fionread_in_sys_ioctl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21596,7 +22430,7 @@ $as_echo "#define HAVE_FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/filio.h" >&5
 $as_echo_n "checking for FIONREAD in sys/filio.h... " >&6; }
-    if test "${_cv_gst_fionread_in_sys_filio+set}" = set; then :
+    if ${_cv_gst_fionread_in_sys_filio+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21646,7 +22480,7 @@ $as_echo "#define HAVE_FIONREAD_IN_SYS_FILIO 1" >>confdefs.h
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_source+set}" = set; then :
+if ${ac_cv_sys_largefile_source+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -21717,7 +22551,7 @@ save_libs=$LIBS
 LIBS="$LIBS $LIBM"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lrint" >&5
 $as_echo_n "checking for lrint... " >&6; }
-if test "${ac_cv_c99_lrint+set}" = set; then :
+if ${ac_cv_c99_lrint+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21754,7 +22588,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lrintf" >&5
 $as_echo_n "checking for lrintf... " >&6; }
-if test "${ac_cv_c99_lrintf+set}" = set; then :
+if ${ac_cv_c99_lrintf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21794,7 +22628,7 @@ LIBS=$save_libs
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __PRETTY_FUNCTION__" >&5
 $as_echo_n "checking whether $CC implements __PRETTY_FUNCTION__... " >&6; }
-  if test "${gst_cv_have_pretty_function+set}" = set; then :
+  if ${gst_cv_have_pretty_function+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21829,7 +22663,7 @@ $as_echo "#define HAVE_PRETTY_FUNCTION 1" >>confdefs.h
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __FUNCTION__" >&5
 $as_echo_n "checking whether $CC implements __FUNCTION__... " >&6; }
-  if test "${gst_cv_have_function+set}" = set; then :
+  if ${gst_cv_have_function+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21864,7 +22698,7 @@ $as_echo "#define HAVE_FUNCTION 1" >>confdefs.h
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __func__" >&5
 $as_echo_n "checking whether $CC implements __func__... " >&6; }
-  if test "${gst_cv_have_func+set}" = set; then :
+  if ${gst_cv_have_func+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -21918,12 +22752,12 @@ _ACEOF
 
 
 ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
-if test "x$ac_cv_func_socket" = x""yes; then :
+if test "x$ac_cv_func_socket" = xyes; then :
 
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
 $as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then :
+if ${ac_cv_lib_socket_socket+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -21957,7 +22791,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
 $as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then :
+if test "x$ac_cv_lib_socket_socket" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBSOCKET 1
 _ACEOF
 fi
 
 ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+if test "x$ac_cv_func_gethostbyname" = xyes; then :
 
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -22008,7 +22842,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBNSL 1
 _ACEOF
@@ -22024,7 +22858,7 @@ fi
 
 
 
-    GLIB_REQ=2.22
+    GLIB_REQ=2.24
   if test "x$GLIB_REQ" = "x"
   then
     as_fn_error $? "Please specify a required version for GLib 2.0" "$LINENO" 5
@@ -22190,6 +23024,8 @@ fi
 
 
 
+
+
   ORC_REQ=0.4.11
 
   # Check whether --enable-orc was given.
@@ -22198,7 +23034,7 @@ if test "${enable_orc+set}" = set; then :
     auto) enable_orc=auto ;;
     yes) enable_orc=yes ;;
     no)  enable_orc=no ;;
-    *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5  ;;
+    *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5 ;;
   esac
 
 else
@@ -22297,17 +23133,27 @@ $as_echo "yes" >&6; }
 
 $as_echo "#define HAVE_ORC 1" >>confdefs.h
 
+      HAVE_ORC=yes
       if test "x$ORCC" = "x" ; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable orcc" >&5
+$as_echo_n "checking for usable orcc... " >&6; }
         ORCC=`$PKG_CONFIG --variable=orcc orc-0.4`
+                        if $ORCC --version 1> /dev/null 2> /dev/null; then :
+
+else
+  ORCC=`which orcc`
+fi
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ORCC" >&5
+$as_echo "$ORCC" >&6; }
       fi
 
       ORCC_FLAGS="--compat $ORC_REQ"
 
-      HAVE_ORC=yes
-      HAVE_ORCC=yes
-      if test "x$cross_compiling" = "xyes" ; then
-        HAVE_ORCC=no
-      fi
+      if test "x$ORCC" = "x"; then :
+  HAVE_ORCC=no
+else
+  HAVE_ORCC=yes
+fi
 
 fi
   else
@@ -22881,26 +23727,8 @@ GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`"
 
 HAVE_GTK=no
 HAVE_GTK_X11=no
-GTK2_REQ=2.14.0
-GTK3_REQ=2.91.3
+GTK_REQ=3.0.0
 if test "x$BUILD_EXAMPLES" = "xyes"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gtk+ version to compile examples against (optional)" >&5
-$as_echo_n "checking which gtk+ version to compile examples against (optional)... " >&6; }
-
-# Check whether --with-gtk was given.
-if test "${with_gtk+set}" = set; then :
-  withval=$with_gtk; case "$with_gtk" in
-        2.0) GTK_REQ=$GTK2_REQ ;;
-        3.0) GTK_REQ=$GTK3_REQ ;;
-        *) as_fn_error $? "invalid gtk+ version specified" "$LINENO" 5 ;;
-    esac
-else
-  with_gtk=2.0
-     GTK_REQ=$GTK2_REQ
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_gtk (>= $GTK_REQ)" >&5
-$as_echo "$with_gtk (>= $GTK_REQ)" >&6; }
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
@@ -22911,12 +23739,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk >= \$GTK_REQ\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk >= $GTK_REQ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= \$GTK_REQ\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= $GTK_REQ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-$with_gtk >= $GTK_REQ" 2>/dev/null`
+  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= $GTK_REQ" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -22929,12 +23757,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_GTK_LIBS="$GTK_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk >= \$GTK_REQ\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk >= $GTK_REQ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= \$GTK_REQ\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= $GTK_REQ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-$with_gtk >= $GTK_REQ" 2>/dev/null`
+  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= $GTK_REQ" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -22953,9 +23781,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-$with_gtk >= $GTK_REQ"`
+               GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-3.0 >= $GTK_REQ"`
         else
-               GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-$with_gtk >= $GTK_REQ"`
+               GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-3.0 >= $GTK_REQ"`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$GTK_PKG_ERRORS" >&5
@@ -22982,12 +23810,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_GTK_X11_CFLAGS="$GTK_X11_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-\$with_gtk >= \$GTK_REQ\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-3.0 >= \$GTK_REQ\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-x11-3.0 >= $GTK_REQ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_X11_CFLAGS=`$PKG_CONFIG --cflags "gtk+-x11-$with_gtk >= $GTK_REQ" 2>/dev/null`
+  pkg_cv_GTK_X11_CFLAGS=`$PKG_CONFIG --cflags "gtk+-x11-3.0 >= $GTK_REQ" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -23000,12 +23828,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_GTK_X11_LIBS="$GTK_X11_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-\$with_gtk >= \$GTK_REQ\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-3.0 >= \$GTK_REQ\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-x11-3.0 >= $GTK_REQ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GTK_X11_LIBS=`$PKG_CONFIG --libs "gtk+-x11-$with_gtk >= $GTK_REQ" 2>/dev/null`
+  pkg_cv_GTK_X11_LIBS=`$PKG_CONFIG --libs "gtk+-x11-3.0 >= $GTK_REQ" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -23024,9 +23852,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               GTK_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ"`
+               GTK_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-x11-3.0 >= $GTK_REQ"`
         else
-               GTK_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ"`
+               GTK_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-x11-3.0 >= $GTK_REQ"`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$GTK_X11_PKG_ERRORS" >&5
@@ -23513,6 +24341,55 @@ _ACEOF
   fi
 
 
+# set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
+NO_WARNINGS=""
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the GStreamer debugging system is enabled" >&5
+$as_echo_n "checking whether the GStreamer debugging system is enabled... " >&6; }
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$GST_CFLAGS $CFLAGS"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+      #include <gst/gstconfig.h>
+      #ifdef GST_DISABLE_GST_DEBUG
+      #error "debugging disabled, make compiler fail"
+      #endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+   debug_system_enabled=yes
+else
+  debug_system_enabled=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $debug_system_enabled" >&5
+$as_echo "$debug_system_enabled" >&6; }
+
+  if test "x$debug_system_enabled" = "xyes" ; then
+    NO_WARNINGS=""
+    true
+  else
+    NO_WARNINGS="-Wno-unused"
+    true
+  fi
+
+
 
 
 
     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef
     -Wwrite-strings -Wformat-nonliteral -Wformat-security
     -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-    -Wno-multichar -Wnested-externs " != "x"
+    -Wno-multichar -Wnested-externs $NO_WARNINGS" != "x"
   then
     UNSUPPORTED=""
     list="
     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef
     -Wwrite-strings -Wformat-nonliteral -Wformat-security
     -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-    -Wno-multichar -Wnested-externs "
+    -Wno-multichar -Wnested-externs $NO_WARNINGS"
     for each in $list
     do
 
@@ -24317,14 +25194,14 @@ $as_echo "$flag_ok" >&6; }
     -Wmissing-declarations -Wredundant-decls -Wundef
     -Wwrite-strings -Wformat-nonliteral -Wformat-security
     -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-    -Wno-multichar" != "x"
+    -Wno-multichar $NO_WARNINGS" != "x"
   then
     UNSUPPORTED=""
     list="
     -Wmissing-declarations -Wredundant-decls -Wundef
     -Wwrite-strings -Wformat-nonliteral -Wformat-security
     -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-    -Wno-multichar"
+    -Wno-multichar $NO_WARNINGS"
     for each in $list
     do
 
@@ -24429,8 +25306,8 @@ _ACEOF
 if test "${with_default_audiosink+set}" = set; then :
   withval=$with_default_audiosink;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;;
         *)   DEFAULT_AUDIOSINK="${withval}" ;;
       esac
 
@@ -24454,8 +25331,8 @@ _ACEOF
 if test "${with_default_audiosrc+set}" = set; then :
   withval=$with_default_audiosrc;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;;
         *)   DEFAULT_AUDIOSRC="${withval}" ;;
       esac
 
@@ -24479,8 +25356,8 @@ _ACEOF
 if test "${with_default_videosink+set}" = set; then :
   withval=$with_default_videosink;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;;
         *)   DEFAULT_VIDEOSINK="${withval}" ;;
       esac
 
@@ -24504,8 +25381,8 @@ _ACEOF
 if test "${with_default_videosrc+set}" = set; then :
   withval=$with_default_videosrc;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;;
         *)   DEFAULT_VIDEOSRC="${withval}" ;;
       esac
 
@@ -24529,8 +25406,8 @@ _ACEOF
 if test "${with_default_visualizer+set}" = set; then :
   withval=$with_default_visualizer;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;;
         *)   DEFAULT_VISUALIZER="${withval}" ;;
       esac
 
@@ -24605,7 +25482,7 @@ if test "${enable_adder+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_adder=yes ;;
         no) gst_use_adder=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-adder" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-adder" "$LINENO" 5 ;;
        esac
 
 else
@@ -24645,7 +25522,7 @@ if test "${enable_app+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_app=yes ;;
         no) gst_use_app=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-app" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-app" "$LINENO" 5 ;;
        esac
 
 else
@@ -24685,7 +25562,7 @@ if test "${enable_audioconvert+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_audioconvert=yes ;;
         no) gst_use_audioconvert=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-audioconvert" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-audioconvert" "$LINENO" 5 ;;
        esac
 
 else
@@ -24725,7 +25602,7 @@ if test "${enable_audiorate+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_audiorate=yes ;;
         no) gst_use_audiorate=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-audiorate" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-audiorate" "$LINENO" 5 ;;
        esac
 
 else
@@ -24765,7 +25642,7 @@ if test "${enable_audiotestsrc+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_audiotestsrc=yes ;;
         no) gst_use_audiotestsrc=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-audiotestsrc" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-audiotestsrc" "$LINENO" 5 ;;
        esac
 
 else
@@ -24805,7 +25682,7 @@ if test "${enable_encoding+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_encoding=yes ;;
         no) gst_use_encoding=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-encoding" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-encoding" "$LINENO" 5 ;;
        esac
 
 else
@@ -24845,7 +25722,7 @@ if test "${enable_ffmpegcolorspace+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_ffmpegcolorspace=yes ;;
         no) gst_use_ffmpegcolorspace=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-ffmpegcolorspace" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-ffmpegcolorspace" "$LINENO" 5 ;;
        esac
 
 else
@@ -24885,7 +25762,7 @@ if test "${enable_gdp+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_gdp=yes ;;
         no) gst_use_gdp=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-gdp" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-gdp" "$LINENO" 5 ;;
        esac
 
 else
@@ -24925,7 +25802,7 @@ if test "${enable_playback+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_playback=yes ;;
         no) gst_use_playback=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-playback" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-playback" "$LINENO" 5 ;;
        esac
 
 else
@@ -24965,7 +25842,7 @@ if test "${enable_audioresample+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_audioresample=yes ;;
         no) gst_use_audioresample=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-audioresample" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-audioresample" "$LINENO" 5 ;;
        esac
 
 else
@@ -25005,7 +25882,7 @@ if test "${enable_subparse+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_subparse=yes ;;
         no) gst_use_subparse=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-subparse" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-subparse" "$LINENO" 5 ;;
        esac
 
 else
@@ -25045,7 +25922,7 @@ if test "${enable_tcp+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_tcp=yes ;;
         no) gst_use_tcp=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-tcp" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-tcp" "$LINENO" 5 ;;
        esac
 
 else
@@ -25085,7 +25962,7 @@ if test "${enable_typefind+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_typefind=yes ;;
         no) gst_use_typefind=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-typefind" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-typefind" "$LINENO" 5 ;;
        esac
 
 else
@@ -25125,7 +26002,7 @@ if test "${enable_videotestsrc+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_videotestsrc=yes ;;
         no) gst_use_videotestsrc=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-videotestsrc" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-videotestsrc" "$LINENO" 5 ;;
        esac
 
 else
@@ -25165,7 +26042,7 @@ if test "${enable_videorate+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_videorate=yes ;;
         no) gst_use_videorate=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-videorate" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-videorate" "$LINENO" 5 ;;
        esac
 
 else
@@ -25205,7 +26082,7 @@ if test "${enable_videoscale+set}" = set; then :
       case "${enableval}" in
         yes) gst_use_videoscale=yes ;;
         no) gst_use_videoscale=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-videoscale" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-videoscale" "$LINENO" 5 ;;
        esac
 
 else
 
 
 
-  GST_PLUGINS_ALL="$GST_PLUGINS_ALL volume"
+  GST_PLUGINS_ALL="$GST_PLUGINS_ALL volume"
+
+
+
+  # Check whether --enable-volume was given.
+if test "${enable_volume+set}" = set; then :
+  enableval=$enable_volume;
+      case "${enableval}" in
+        yes) gst_use_volume=yes ;;
+        no) gst_use_volume=no ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-volume" "$LINENO" 5 ;;
+       esac
+
+else
+  gst_use_volume=yes
+fi
+
+  if test x$gst_use_volume = xno; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin volume" >&5
+$as_echo "$as_me: disabling dependency-less plugin volume" >&6;}
+    WITHOUT_PLUGINS="$WITHOUT_PLUGINS volume"
+  fi
+
+
+  if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
+    GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED volume"
+  fi
+  if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
+    GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ volume / /'`
+  fi
+   if echo " $GST_PLUGINS_SELECTED " | grep -i " volume " > /dev/null; then
+  USE_PLUGIN_VOLUME_TRUE=
+  USE_PLUGIN_VOLUME_FALSE='#'
+else
+  USE_PLUGIN_VOLUME_TRUE='#'
+  USE_PLUGIN_VOLUME_FALSE=
+fi
+
+
+
+GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
+
+
+  grep >/dev/null "#undef GST_DISABLE_GST_DEBUG" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_GST_DEBUG=0
+  else
+    GST_DISABLE_GST_DEBUG=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_LOADSAVE" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_LOADSAVE=0
+  else
+    GST_DISABLE_LOADSAVE=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_PARSE" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_PARSE=0
+  else
+    GST_DISABLE_PARSE=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_TRACE" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_TRACE=0
+  else
+    GST_DISABLE_TRACE=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_ALLOC_TRACE" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_ALLOC_TRACE=0
+  else
+    GST_DISABLE_ALLOC_TRACE=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_REGISTRY" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_REGISTRY=0
+  else
+    GST_DISABLE_REGISTRY=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_PLUGIN" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_PLUGIN=0
+  else
+    GST_DISABLE_PLUGIN=1
+  fi
+
+
+
+  grep >/dev/null "#undef GST_DISABLE_XML" $GST_CONFIGPATH
+  if test $? = 0; then
+    GST_DISABLE_XML=0
+  else
+    GST_DISABLE_XML=1
+  fi
+
+
+
+ if test $GST_DISABLE_XML != "1"; then
+  USE_XML_TRUE=
+  USE_XML_FALSE='#'
+else
+  USE_XML_TRUE='#'
+  USE_XML_FALSE=
+fi
+
+
+if test "x$HAVE_LIBXML_HTML" != "xyes"; then
+
+  GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ subparse / /'`
+   if false; then
+  USE_PLUGIN_SUBPARSE_TRUE=
+  USE_PLUGIN_SUBPARSE_FALSE='#'
+else
+  USE_PLUGIN_SUBPARSE_TRUE='#'
+  USE_PLUGIN_SUBPARSE_FALSE=
+fi
+
+
+fi
+
+if test "x$HAVE_SYS_SOCKET_H" != "xyes"; then
+
+  GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ tcp / /'`
+   if false; then
+  USE_PLUGIN_TCP_TRUE=
+  USE_PLUGIN_TCP_FALSE='#'
+else
+  USE_PLUGIN_TCP_TRUE='#'
+  USE_PLUGIN_TCP_FALSE=
+fi
+
+
+fi
+
+# Check whether --enable-iso-codes was given.
+if test "${enable_iso_codes+set}" = set; then :
+  enableval=$enable_iso_codes; case "${enableval}" in
+  yes) enable_iso_codes=yes ;;
+  no)  enable_iso_codes=no ;;
+  *) as_fn_error $? "bad value ${enableval} for --enable-iso-codes" "$LINENO" 5 ;;
+esac
+
+else
+  enable_iso_codes=yes
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use iso-codes if they are available" >&5
+$as_echo_n "checking whether to use iso-codes if they are available... " >&6; }
+if test "x$enable_iso_codes" = "xyes"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  have_iso_codes=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes are available on this system" >&5
+$as_echo_n "checking whether iso-codes are available on this system... " >&6; }
+  if $PKG_CONFIG iso-codes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes has iso-639 domain" >&5
+$as_echo_n "checking whether iso-codes has iso-639 domain... " >&6; }
+    if $PKG_CONFIG --variable=domains iso-codes | $GREP -q 639 ; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iso-codes prefix" >&5
+$as_echo_n "checking for iso-codes prefix... " >&6; }
+      ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
+      if test -d "$ISO_CODES_PREFIX"; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_CODES_PREFIX" >&5
+$as_echo_n "checking ISO_CODES_PREFIX... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_CODES_PREFIX" >&5
+$as_echo "$ISO_CODES_PREFIX" >&6; }
+        ISO_639_DOMAIN="iso_639"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_639_DOMAIN" >&5
+$as_echo_n "checking ISO_639_DOMAIN... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_639_DOMAIN" >&5
+$as_echo "$ISO_639_DOMAIN" >&6; }
+        have_iso_codes=yes
+
+$as_echo "#define HAVE_ISO_CODES 1" >>confdefs.h
+
 
+cat >>confdefs.h <<_ACEOF
+#define ISO_CODES_PREFIX "$ISO_CODES_PREFIX"
+_ACEOF
 
+        ISO_CODES_VERSION=`$PKG_CONFIG --modversion iso-codes`
 
-  # Check whether --enable-volume was given.
-if test "${enable_volume+set}" = set; then :
-  enableval=$enable_volume;
-      case "${enableval}" in
-        yes) gst_use_volume=yes ;;
-        no) gst_use_volume=no ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-volume" "$LINENO" 5  ;;
-       esac
+cat >>confdefs.h <<_ACEOF
+#define ISO_CODES_VERSION "$ISO_CODES_VERSION"
+_ACEOF
 
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+      fi
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  fi
+   if test "x$have_iso_codes" = "xyes"; then
+  USE_ISO_CODES_TRUE=
+  USE_ISO_CODES_FALSE='#'
 else
-  gst_use_volume=yes
+  USE_ISO_CODES_TRUE='#'
+  USE_ISO_CODES_FALSE=
 fi
 
-  if test x$gst_use_volume = xno; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin volume" >&5
-$as_echo "$as_me: disabling dependency-less plugin volume" >&6;}
-    WITHOUT_PLUGINS="$WITHOUT_PLUGINS volume"
-  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled via --disable-iso-codes)" >&5
+$as_echo "no (disabled via --disable-iso-codes)" >&6; }
+   if false; then
+  USE_ISO_CODES_TRUE=
+  USE_ISO_CODES_FALSE='#'
+else
+  USE_ISO_CODES_TRUE='#'
+  USE_ISO_CODES_FALSE=
+fi
 
+fi
 
-  if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
-    GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED volume"
-  fi
-  if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
-    GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ volume / /'`
-  fi
-   if echo " $GST_PLUGINS_SELECTED " | grep -i " volume " > /dev/null; then
-  USE_PLUGIN_VOLUME_TRUE=
-  USE_PLUGIN_VOLUME_FALSE='#'
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: zlib support for ID3 parsing in libgsttag ***" >&5
+$as_echo "$as_me: *** checking feature: zlib support for ID3 parsing in libgsttag ***" >&6;}
+if test "x" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins:  ***" >&5
+$as_echo "$as_me: *** for plug-ins:  ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_ZLIB" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-zlib was given.
+if test "${enable_zlib+set}" = set; then :
+  enableval=$enable_zlib;  case "${enableval}" in
+      yes) USE_ZLIB=yes;;
+      no) USE_ZLIB=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-zlib" "$LINENO" 5 ;;
+    esac
 else
-  USE_PLUGIN_VOLUME_TRUE='#'
-  USE_PLUGIN_VOLUME_FALSE=
+   USE_ZLIB=yes
 fi
 
+if test "x$NOUSE" = "xyes"; then
+  USE_ZLIB="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***  pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: ***  pre-configured not to be built" >&2;}
+fi
+NOUSE=
 
 
-GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
-
+if test x$USE_ZLIB = xyes; then
 
-  grep >/dev/null "#undef GST_DISABLE_GST_DEBUG" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_GST_DEBUG=0
-  else
-    GST_DISABLE_GST_DEBUG=1
-  fi
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
 
+  HAVE_ZLIB=no
 
 
-  grep >/dev/null "#undef GST_DISABLE_LOADSAVE" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_LOADSAVE=0
-  else
-    GST_DISABLE_LOADSAVE=1
-  fi
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5
+$as_echo_n "checking for ZLIB... " >&6; }
 
+if test -n "$PKG_CONFIG"; then
+    if test -n "$ZLIB_CFLAGS"; then
+        pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" zlib \""; } >&5
+  ($PKG_CONFIG --exists --print-errors " zlib ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags " zlib " 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+       pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$ZLIB_LIBS"; then
+        pkg_cv_ZLIB_LIBS="$ZLIB_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" zlib \""; } >&5
+  ($PKG_CONFIG --exists --print-errors " zlib ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs " zlib " 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+       pkg_failed=untried
+fi
 
 
-  grep >/dev/null "#undef GST_DISABLE_PARSE" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_PARSE=0
-  else
-    GST_DISABLE_PARSE=1
-  fi
 
+if test $pkg_failed = yes; then
 
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               ZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " zlib "`
+        else
+               ZLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " zlib "`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$ZLIB_PKG_ERRORS" >&5
 
-  grep >/dev/null "#undef GST_DISABLE_TRACE" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_TRACE=0
-  else
-    GST_DISABLE_TRACE=1
-  fi
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5
+$as_echo_n "checking for uncompress in -lz... " >&6; }
+if ${ac_cv_lib_z_uncompress+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  grep >/dev/null "#undef GST_DISABLE_ALLOC_TRACE" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_ALLOC_TRACE=0
-  else
-    GST_DISABLE_ALLOC_TRACE=1
-  fi
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uncompress ();
+int
+main ()
+{
+return uncompress ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_z_uncompress=yes
+else
+  ac_cv_lib_z_uncompress=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_uncompress" >&5
+$as_echo "$ac_cv_lib_z_uncompress" >&6; }
+if test "x$ac_cv_lib_z_uncompress" = xyes; then :
+  HAVE_ZLIB=yes
+else
+  HAVE_ZLIB=no
+fi
 
+  if test "x$HAVE_ZLIB" = "xyes"; then
+    ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+  :
+else
+  HAVE_ZLIB=no
+fi
 
 
-  grep >/dev/null "#undef GST_DISABLE_REGISTRY" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_REGISTRY=0
-  else
-    GST_DISABLE_REGISTRY=1
-  fi
+    if test "x$HAVE_ZLIB" = "xyes"; then
 
+        HAVE_ZLIB="yes"
+        ZLIB_LIBS="-lz"
 
 
-  grep >/dev/null "#undef GST_DISABLE_PLUGIN" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_PLUGIN=0
+    else
+      :
+    fi
   else
-    GST_DISABLE_PLUGIN=1
+    :
   fi
 
 
 
-  grep >/dev/null "#undef GST_DISABLE_XML" $GST_CONFIGPATH
-  if test $? = 0; then
-    GST_DISABLE_XML=0
-  else
-    GST_DISABLE_XML=1
-  fi
 
+elif test $pkg_failed = untried; then
 
 
- if test $GST_DISABLE_XML != "1"; then
-  USE_XML_TRUE=
-  USE_XML_FALSE='#'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5
+$as_echo_n "checking for uncompress in -lz... " >&6; }
+if ${ac_cv_lib_z_uncompress+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  USE_XML_TRUE='#'
-  USE_XML_FALSE=
-fi
-
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-if test "x$HAVE_LIBXML_HTML" != "xyes"; then
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uncompress ();
+int
+main ()
+{
+return uncompress ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_z_uncompress=yes
+else
+  ac_cv_lib_z_uncompress=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_uncompress" >&5
+$as_echo "$ac_cv_lib_z_uncompress" >&6; }
+if test "x$ac_cv_lib_z_uncompress" = xyes; then :
+  HAVE_ZLIB=yes
+else
+  HAVE_ZLIB=no
+fi
 
-  GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ subparse / /'`
-   if false; then
-  USE_PLUGIN_SUBPARSE_TRUE=
-  USE_PLUGIN_SUBPARSE_FALSE='#'
+  if test "x$HAVE_ZLIB" = "xyes"; then
+    ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes; then :
+  :
 else
-  USE_PLUGIN_SUBPARSE_TRUE='#'
-  USE_PLUGIN_SUBPARSE_FALSE=
+  HAVE_ZLIB=no
 fi
 
 
-fi
+    if test "x$HAVE_ZLIB" = "xyes"; then
 
-if test "x$HAVE_SYS_SOCKET_H" != "xyes"; then
+        HAVE_ZLIB="yes"
+        ZLIB_LIBS="-lz"
 
-  GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ tcp / /'`
-   if false; then
-  USE_PLUGIN_TCP_TRUE=
-  USE_PLUGIN_TCP_FALSE='#'
-else
-  USE_PLUGIN_TCP_TRUE='#'
-  USE_PLUGIN_TCP_FALSE=
-fi
+
+    else
+      :
+    fi
+  else
+    :
+  fi
 
 
-fi
 
-# Check whether --enable-iso-codes was given.
-if test "${enable_iso_codes+set}" = set; then :
-  enableval=$enable_iso_codes; case "${enableval}" in
-  yes) enable_iso_codes=yes ;;
-  no)  enable_iso_codes=no ;;
-  *) as_fn_error $? "bad value ${enableval} for --enable-iso-codes" "$LINENO" 5  ;;
-esac
 
 else
-  enable_iso_codes=yes
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use iso-codes if they are available" >&5
-$as_echo_n "checking whether to use iso-codes if they are available... " >&6; }
-if test "x$enable_iso_codes" = "xyes"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  have_iso_codes=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes are available on this system" >&5
-$as_echo_n "checking whether iso-codes are available on this system... " >&6; }
-  if $PKG_CONFIG iso-codes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes has iso-639 domain" >&5
-$as_echo_n "checking whether iso-codes has iso-639 domain... " >&6; }
-    if $PKG_CONFIG --variable=domains iso-codes | $GREP -q 639 ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iso-codes prefix" >&5
-$as_echo_n "checking for iso-codes prefix... " >&6; }
-      ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
-      if test -d "$ISO_CODES_PREFIX"; then
+       ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS
+       ZLIB_LIBS=$pkg_cv_ZLIB_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_CODES_PREFIX" >&5
-$as_echo_n "checking ISO_CODES_PREFIX... " >&6; }
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_CODES_PREFIX" >&5
-$as_echo "$ISO_CODES_PREFIX" >&6; }
-        ISO_639_DOMAIN="iso_639"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_639_DOMAIN" >&5
-$as_echo_n "checking ISO_639_DOMAIN... " >&6; }
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_639_DOMAIN" >&5
-$as_echo "$ISO_639_DOMAIN" >&6; }
-        have_iso_codes=yes
-
-$as_echo "#define HAVE_ISO_CODES 1" >>confdefs.h
 
+      HAVE_ZLIB="yes"
 
-cat >>confdefs.h <<_ACEOF
-#define ISO_CODES_PREFIX "$ISO_CODES_PREFIX"
-_ACEOF
+fi
 
-        ISO_CODES_VERSION=`$PKG_CONFIG --modversion iso-codes`
 
-cat >>confdefs.h <<_ACEOF
-#define ISO_CODES_VERSION "$ISO_CODES_VERSION"
-_ACEOF
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
 
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-      fi
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
+    if test x$HAVE_ZLIB = xno; then
+    USE_ZLIB=no
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+    :
   fi
-   if test "x$have_iso_codes" = "xyes"; then
-  USE_ISO_CODES_TRUE=
-  USE_ISO_CODES_FALSE='#'
-else
-  USE_ISO_CODES_TRUE='#'
-  USE_ISO_CODES_FALSE=
 fi
+if test x$USE_ZLIB = xyes; then
+  :
+  if test "x" != "x"; then
+    GST_PLUGINS_YES="\t\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_ZLIB /**/" >>confdefs.h
 
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled via --disable-iso-codes)" >&5
-$as_echo "no (disabled via --disable-iso-codes)" >&6; }
-   if false; then
-  USE_ISO_CODES_TRUE=
-  USE_ISO_CODES_FALSE='#'
+  :
+  if test "x" != "x"; then
+    GST_PLUGINS_NO="\t\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_ZLIB = xyes; then
+  USE_ZLIB_TRUE=
+  USE_ZLIB_FALSE='#'
 else
-  USE_ISO_CODES_TRUE='#'
-  USE_ISO_CODES_FALSE=
+  USE_ZLIB_TRUE='#'
+  USE_ZLIB_FALSE=
 fi
 
-fi
+
 
 
 echo
@@ -25499,8 +26665,8 @@ if test "x$with_x" = xno; then
   have_x=disabled
 else
   case $x_includes,$x_libraries in #(
-    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #(
-    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
+    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
+    *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # One or both of the vars are not set, and there is no cached value.
@@ -25694,7 +26860,7 @@ if test "${enable_x+set}" = set; then :
   enableval=$enable_x;  case "${enableval}" in
       yes) USE_X=yes;;
       no) USE_X=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-x" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-x" "$LINENO" 5 ;;
     esac
 else
    USE_X=yes
@@ -25818,7 +26984,7 @@ if ac_fn_c_try_link "$LINENO"; then :
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
-if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -25852,14 +27018,14 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
-if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
 fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
-if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -25893,7 +27059,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
-if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
 fi
 
@@ -25912,14 +27078,14 @@ rm -f core conftest.err conftest.$ac_objext \
     # The functions gethostbyname, getservbyname, and inet_addr are
     # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
     ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+if test "x$ac_cv_func_gethostbyname" = xyes; then :
 
 fi
 
     if test $ac_cv_func_gethostbyname = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -25953,14 +27119,14 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
 fi
 
       if test $ac_cv_lib_nsl_gethostbyname = no; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
-if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+if ${ac_cv_lib_bsd_gethostbyname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -25994,7 +27160,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
-if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
 fi
 
     # must be given before -lnsl if both are needed.  We assume that
     # if connect needs -lnsl, so does gethostbyname.
     ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
-if test "x$ac_cv_func_connect" = x""yes; then :
+if test "x$ac_cv_func_connect" = xyes; then :
 
 fi
 
     if test $ac_cv_func_connect = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
 $as_echo_n "checking for connect in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_connect+set}" = set; then :
+if ${ac_cv_lib_socket_connect+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26050,7 +27216,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
 $as_echo "$ac_cv_lib_socket_connect" >&6; }
-if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+if test "x$ac_cv_lib_socket_connect" = xyes; then :
   X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
 fi
 
 
     # Guillermo Gomez says -lposix is necessary on A/UX.
     ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
-if test "x$ac_cv_func_remove" = x""yes; then :
+if test "x$ac_cv_func_remove" = xyes; then :
 
 fi
 
     if test $ac_cv_func_remove = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
 $as_echo_n "checking for remove in -lposix... " >&6; }
-if test "${ac_cv_lib_posix_remove+set}" = set; then :
+if ${ac_cv_lib_posix_remove+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26099,7 +27265,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
 $as_echo "$ac_cv_lib_posix_remove" >&6; }
-if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+if test "x$ac_cv_lib_posix_remove" = xyes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
 fi
 
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
-if test "x$ac_cv_func_shmat" = x""yes; then :
+if test "x$ac_cv_func_shmat" = xyes; then :
 
 fi
 
     if test $ac_cv_func_shmat = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
 $as_echo_n "checking for shmat in -lipc... " >&6; }
-if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+if ${ac_cv_lib_ipc_shmat+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26148,7 +27314,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
 $as_echo "$ac_cv_lib_ipc_shmat" >&6; }
-if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+if test "x$ac_cv_lib_ipc_shmat" = xyes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
 fi
 
@@ -26166,7 +27332,7 @@ fi
   # John Interrante, Karl Berry
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
-if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26200,7 +27366,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
-if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then :
   X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
 fi
 
@@ -26214,7 +27380,7 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
     ac_fn_c_check_header_mongrel "$LINENO" "X11/Xlib.h" "ac_cv_header_X11_Xlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_X11_Xlib_h" = x""yes; then :
+if test "x$ac_cv_header_X11_Xlib_h" = xyes; then :
   HAVE_X="yes"
 else
   HAVE_X="no"
@@ -26293,7 +27459,7 @@ if test "${enable_xvideo+set}" = set; then :
   enableval=$enable_xvideo;  case "${enableval}" in
       yes) USE_XVIDEO=yes;;
       no) USE_XVIDEO=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-xvideo" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-xvideo" "$LINENO" 5 ;;
     esac
 else
    USE_XVIDEO=yes
@@ -26321,7 +27487,7 @@ if test x$USE_XVIDEO = xyes; then
   if test x$HAVE_X = xyes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv_pic" >&5
 $as_echo_n "checking for XvQueryExtension in -lXv_pic... " >&6; }
-if test "${ac_cv_lib_Xv_pic_XvQueryExtension+set}" = set; then :
+if ${ac_cv_lib_Xv_pic_XvQueryExtension+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26355,7 +27521,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_pic_XvQueryExtension" >&5
 $as_echo "$ac_cv_lib_Xv_pic_XvQueryExtension" >&6; }
-if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = x""yes; then :
+if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = xyes; then :
   HAVE_XVIDEO="yes"
 else
   HAVE_XVIDEO="no"
@@ -26369,7 +27535,7 @@ fi
             if test x$HAVE_XVIDEO = xno; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv" >&5
 $as_echo_n "checking for XvQueryExtension in -lXv... " >&6; }
-if test "${ac_cv_lib_Xv_XvQueryExtension+set}" = set; then :
+if ${ac_cv_lib_Xv_XvQueryExtension+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26403,7 +27569,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_XvQueryExtension" >&5
 $as_echo "$ac_cv_lib_Xv_XvQueryExtension" >&6; }
-if test "x$ac_cv_lib_Xv_XvQueryExtension" = x""yes; then :
+if test "x$ac_cv_lib_Xv_XvQueryExtension" = xyes; then :
   HAVE_XVIDEO="yes"
 else
   HAVE_XVIDEO="no"
@@ -26476,7 +27642,7 @@ if test "${enable_xshm+set}" = set; then :
   enableval=$enable_xshm;  case "${enableval}" in
       yes) USE_XSHM=yes;;
       no) USE_XSHM=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-xshm" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-xshm" "$LINENO" 5 ;;
     esac
 else
    USE_XSHM=yes
@@ -26503,7 +27669,7 @@ if test x$USE_XSHM = xyes; then
   if test x$HAVE_X = xyes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXext" >&5
 $as_echo_n "checking for XShmAttach in -lXext... " >&6; }
-if test "${ac_cv_lib_Xext_XShmAttach+set}" = set; then :
+if ${ac_cv_lib_Xext_XShmAttach+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26537,7 +27703,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmAttach" >&5
 $as_echo "$ac_cv_lib_Xext_XShmAttach" >&6; }
-if test "x$ac_cv_lib_Xext_XShmAttach" = x""yes; then :
+if test "x$ac_cv_lib_Xext_XShmAttach" = xyes; then :
   HAVE_XSHM="yes"
 else
   HAVE_XSHM="no"
@@ -26548,7 +27714,7 @@ fi
     else
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXextSam" >&5
 $as_echo_n "checking for XShmAttach in -lXextSam... " >&6; }
-if test "${ac_cv_lib_XextSam_XShmAttach+set}" = set; then :
+if ${ac_cv_lib_XextSam_XShmAttach+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -26582,7 +27748,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XextSam_XShmAttach" >&5
 $as_echo "$ac_cv_lib_XextSam_XShmAttach" >&6; }
-if test "x$ac_cv_lib_XextSam_XShmAttach" = x""yes; then :
+if test "x$ac_cv_lib_XextSam_XShmAttach" = xyes; then :
   HAVE_XSHM="yes"
 else
   HAVE_XSHM="no"
@@ -26653,7 +27819,7 @@ if test "${enable_gst_v4l+set}" = set; then :
   enableval=$enable_gst_v4l;  case "${enableval}" in
       yes) USE_GST_V4L=yes;;
       no) USE_GST_V4L=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-gst_v4l" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-gst_v4l" "$LINENO" 5 ;;
     esac
 else
    USE_GST_V4L=yes
@@ -26684,7 +27850,7 @@ if test x$USE_GST_V4L = xyes; then
 #include <linux/videodev.h>
 
 "
-if test "x$ac_cv_have_decl_VID_TYPE_MPEG_ENCODER" = x""yes; then :
+if test "x$ac_cv_have_decl_VID_TYPE_MPEG_ENCODER" = xyes; then :
   HAVE_GST_V4L="yes"
 else
   HAVE_GST_V4L="no"
@@ -26864,7 +28030,7 @@ if test "${enable_alsa+set}" = set; then :
   enableval=$enable_alsa;  case "${enableval}" in
       yes) USE_ALSA=yes;;
       no) USE_ALSA=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-alsa" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-alsa" "$LINENO" 5 ;;
     esac
 else
    USE_ALSA=yes
@@ -27086,7 +28252,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test "x$enable_alsatest" = "xyes"; then
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_ctl_open in -lasound" >&5
 $as_echo_n "checking for snd_ctl_open in -lasound... " >&6; }
-if test "${ac_cv_lib_asound_snd_ctl_open+set}" = set; then :
+if ${ac_cv_lib_asound_snd_ctl_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27120,7 +28286,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_ctl_open" >&5
 $as_echo "$ac_cv_lib_asound_snd_ctl_open" >&6; }
-if test "x$ac_cv_lib_asound_snd_ctl_open" = x""yes; then :
+if test "x$ac_cv_lib_asound_snd_ctl_open" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBASOUND 1
 _ACEOF
@@ -27292,7 +28458,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test "x$enable_alsatest" = "xyes"; then
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_ctl_open in -lasound" >&5
 $as_echo_n "checking for snd_ctl_open in -lasound... " >&6; }
-if test "${ac_cv_lib_asound_snd_ctl_open+set}" = set; then :
+if ${ac_cv_lib_asound_snd_ctl_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27326,7 +28492,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_ctl_open" >&5
 $as_echo "$ac_cv_lib_asound_snd_ctl_open" >&6; }
-if test "x$ac_cv_lib_asound_snd_ctl_open" = x""yes; then :
+if test "x$ac_cv_lib_asound_snd_ctl_open" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBASOUND 1
 _ACEOF
@@ -27429,7 +28595,7 @@ if test "${enable_cdparanoia+set}" = set; then :
   enableval=$enable_cdparanoia;  case "${enableval}" in
       yes) USE_CDPARANOIA=yes;;
       no) USE_CDPARANOIA=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-cdparanoia" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-cdparanoia" "$LINENO" 5 ;;
     esac
 else
    USE_CDPARANOIA=yes
@@ -27518,7 +28684,7 @@ $as_echo "no" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
 $as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27552,7 +28718,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
 $as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
   HAVE_CDPARANOIA=yes
 else
   HAVE_CDPARANOIA=no
@@ -27560,7 +28726,7 @@ fi
 
   if test "x$HAVE_CDPARANOIA" = "xyes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "cdda_interface.h" "ac_cv_header_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_interface_h" = xyes; then :
   :
 else
   HAVE_CDPARANOIA=no
@@ -27585,7 +28751,7 @@ fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
 $as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27619,7 +28785,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
 $as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
   HAVE_CDPARANOIA=yes
 else
   HAVE_CDPARANOIA=no
@@ -27627,7 +28793,7 @@ fi
 
   if test "x$HAVE_CDPARANOIA" = "xyes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "cdda/cdda_interface.h" "ac_cv_header_cdda_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_cdda_interface_h" = xyes; then :
   :
 else
   HAVE_CDPARANOIA=no
@@ -27660,7 +28826,7 @@ _ACEOF
     then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for paranoia_cachemodel_size in -lcdda_paranoia" >&5
 $as_echo_n "checking for paranoia_cachemodel_size in -lcdda_paranoia... " >&6; }
-if test "${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+set}" = set; then :
+if ${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27694,7 +28860,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&5
 $as_echo "$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&6; }
-if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = x""yes; then :
+if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = xyes; then :
   :
 else
   HAVE_CDPARANOIA=no
@@ -27709,7 +28875,7 @@ elif test $pkg_failed = untried; then
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
 $as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27743,7 +28909,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
 $as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
   HAVE_CDPARANOIA=yes
 else
   HAVE_CDPARANOIA=no
@@ -27751,7 +28917,7 @@ fi
 
   if test "x$HAVE_CDPARANOIA" = "xyes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "cdda_interface.h" "ac_cv_header_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_interface_h" = xyes; then :
   :
 else
   HAVE_CDPARANOIA=no
@@ -27776,7 +28942,7 @@ fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
 $as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27810,7 +28976,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
 $as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
   HAVE_CDPARANOIA=yes
 else
   HAVE_CDPARANOIA=no
@@ -27818,7 +28984,7 @@ fi
 
   if test "x$HAVE_CDPARANOIA" = "xyes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "cdda/cdda_interface.h" "ac_cv_header_cdda_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_cdda_interface_h" = xyes; then :
   :
 else
   HAVE_CDPARANOIA=no
@@ -27851,7 +29017,7 @@ _ACEOF
     then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for paranoia_cachemodel_size in -lcdda_paranoia" >&5
 $as_echo_n "checking for paranoia_cachemodel_size in -lcdda_paranoia... " >&6; }
-if test "${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+set}" = set; then :
+if ${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -27885,7 +29051,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&5
 $as_echo "$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&6; }
-if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = x""yes; then :
+if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = xyes; then :
   :
 else
   HAVE_CDPARANOIA=no
@@ -27962,7 +29128,7 @@ if test "${enable_gnome_vfs+set}" = set; then :
   enableval=$enable_gnome_vfs;  case "${enableval}" in
       yes) USE_GNOME_VFS=yes;;
       no) USE_GNOME_VFS=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-gnome_vfs" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-gnome_vfs" "$LINENO" 5 ;;
     esac
 else
    USE_GNOME_VFS=yes
@@ -28131,7 +29297,7 @@ if test "${enable_ivorbis+set}" = set; then :
   enableval=$enable_ivorbis;  case "${enableval}" in
       yes) USE_IVORBIS=yes;;
       no) USE_IVORBIS=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-ivorbis" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-ivorbis" "$LINENO" 5 ;;
     esac
 else
    USE_IVORBIS=yes
@@ -28256,7 +29422,7 @@ fi
     IVORBIS_CFLAGS=
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vorbis_block_init in -lvorbisidec" >&5
 $as_echo_n "checking for vorbis_block_init in -lvorbisidec... " >&6; }
-if test "${ac_cv_lib_vorbisidec_vorbis_block_init+set}" = set; then :
+if ${ac_cv_lib_vorbisidec_vorbis_block_init+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -28290,7 +29456,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vorbisidec_vorbis_block_init" >&5
 $as_echo "$ac_cv_lib_vorbisidec_vorbis_block_init" >&6; }
-if test "x$ac_cv_lib_vorbisidec_vorbis_block_init" = x""yes; then :
+if test "x$ac_cv_lib_vorbisidec_vorbis_block_init" = xyes; then :
   IVORBIS_LIBS=-lvorbisidec
       HAVE_IVORBIS=yes
       case $host in
@@ -28307,7 +29473,7 @@ fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vorbis_dsp_pcmout in -lvorbisidec" >&5
 $as_echo_n "checking for vorbis_dsp_pcmout in -lvorbisidec... " >&6; }
-if test "${ac_cv_lib_vorbisidec_vorbis_dsp_pcmout+set}" = set; then :
+if ${ac_cv_lib_vorbisidec_vorbis_dsp_pcmout+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -28341,7 +29507,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" >&5
 $as_echo "$ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" >&6; }
-if test "x$ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" = x""yes; then :
+if test "x$ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" = xyes; then :
 
 $as_echo "#define USE_TREMOLO 1" >>confdefs.h
 
@@ -28408,7 +29574,7 @@ if test "${enable_gio+set}" = set; then :
   enableval=$enable_gio;  case "${enableval}" in
       yes) USE_GIO=yes;;
       no) USE_GIO=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-gio" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-gio" "$LINENO" 5 ;;
     esac
 else
    USE_GIO=yes
@@ -28582,7 +29748,7 @@ if test "${enable_libvisual+set}" = set; then :
   enableval=$enable_libvisual;  case "${enableval}" in
       yes) USE_LIBVISUAL=yes;;
       no) USE_LIBVISUAL=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-libvisual" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-libvisual" "$LINENO" 5 ;;
     esac
 else
    USE_LIBVISUAL=yes
@@ -28873,7 +30039,7 @@ if test "${enable_ogg+set}" = set; then :
   enableval=$enable_ogg;  case "${enableval}" in
       yes) USE_OGG=yes;;
       no) USE_OGG=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-ogg" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-ogg" "$LINENO" 5 ;;
     esac
 else
    USE_OGG=yes
@@ -29211,7 +30377,7 @@ if test "${enable_pango+set}" = set; then :
   enableval=$enable_pango;  case "${enableval}" in
       yes) USE_PANGO=yes;;
       no) USE_PANGO=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-pango" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-pango" "$LINENO" 5 ;;
     esac
 else
    USE_PANGO=yes
@@ -29388,7 +30554,7 @@ if test "${enable_theora+set}" = set; then :
   enableval=$enable_theora;  case "${enableval}" in
       yes) USE_THEORA=yes;;
       no) USE_THEORA=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-theora" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-theora" "$LINENO" 5 ;;
     esac
 else
    USE_THEORA=yes
@@ -29565,7 +30731,7 @@ if test "${enable_vorbis+set}" = set; then :
   enableval=$enable_vorbis;  case "${enableval}" in
       yes) USE_VORBIS=yes;;
       no) USE_VORBIS=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-vorbis" "$LINENO" 5  ;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-vorbis" "$LINENO" 5 ;;
     esac
 else
    USE_VORBIS=yes
@@ -30131,7 +31297,7 @@ fi
 set dummy freetype-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_FT2_CONFIG+set}" = set; then :
+if ${ac_cv_path_FT2_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $FT2_CONFIG in
@@ -30280,7 +31446,7 @@ $as_echo "no" >&6; }
        echo "*** The FreeType test program failed to run.  If your system uses"
        echo "*** shared libraries and they are installed outside the normal"
        echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
-       echo "*** (or whatever is appropiate for your system) is correctly set."
+       echo "*** (or whatever is appropriate for your system) is correctly set."
      fi
    fi
    FT2_CFLAGS=""
@@ -30333,7 +31499,7 @@ fi
 set dummy freetype-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_FT2_CONFIG+set}" = set; then :
+if ${ac_cv_path_FT2_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $FT2_CONFIG in
@@ -30482,7 +31648,7 @@ $as_echo "no" >&6; }
        echo "*** The FreeType test program failed to run.  If your system uses"
        echo "*** shared libraries and they are installed outside the normal"
        echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
-       echo "*** (or whatever is appropiate for your system) is correctly set."
+       echo "*** (or whatever is appropriate for your system) is correctly set."
      fi
    fi
    FT2_CFLAGS=""
@@ -30535,8 +31701,8 @@ GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$
 GST_PLUGINS_BASE_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
 
 
-GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
-GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
+GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)"
+GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)"
 
 
 GST_LIBS="$GST_LIBS \$(GCOV_LIBS)"
@@ -30555,7 +31721,7 @@ GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_
 
 
 
-ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/ffmpegcolorspace/Makefile gst/gdp/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile sys/v4l/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/gnomevfs/Makefile ext/gio/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/cdda/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/floatcast/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/netbuffer/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-cdda.pc pkgconfig/gstreamer-cdda-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-floatcast.pc pkgconfig/gstreamer-floatcast-uninstalled.pc pkgconfig/gstreamer-interfaces.pc pkgconfig/gstreamer-interfaces-uninstalled.pc pkgconfig/gstreamer-netbuffer.pc pkgconfig/gstreamer-netbuffer-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playrec/Makefile tests/examples/volume/Makefile tests/examples/v4l/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
+ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/ffmpegcolorspace/Makefile gst/gdp/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile sys/v4l/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/gnomevfs/Makefile ext/gio/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/cdda/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/floatcast/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/netbuffer/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-cdda.pc pkgconfig/gstreamer-cdda-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-floatcast.pc pkgconfig/gstreamer-floatcast-uninstalled.pc pkgconfig/gstreamer-interfaces.pc pkgconfig/gstreamer-interfaces-uninstalled.pc pkgconfig/gstreamer-netbuffer.pc pkgconfig/gstreamer-netbuffer-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playrec/Makefile tests/examples/v4l/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
 
 
 sed \
@@ -30666,10 +31832,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
+    if test "x$cache_file" != "x/dev/null"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -30809,10 +31986,6 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${HAVE_CXX_TRUE}" && test -z "${HAVE_CXX_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_CXX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -30965,6 +32138,10 @@ if test -z "${USE_ISO_CODES_TRUE}" && test -z "${USE_ISO_CODES_FALSE}"; then
   as_fn_error $? "conditional \"USE_ISO_CODES\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_ZLIB_TRUE}" && test -z "${USE_ZLIB_FALSE}"; then
+  as_fn_error $? "conditional \"USE_ZLIB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_X_TRUE}" && test -z "${USE_X_FALSE}"; then
   as_fn_error $? "conditional \"USE_X\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -31066,7 +32243,7 @@ if test -z "${HAVE_FT2_TRUE}" && test -z "${HAVE_FT2_FALSE}"; then
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -31167,6 +32344,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -31473,8 +32651,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 0.10.34, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+This file was extended by GStreamer Base Plug-ins $as_me 0.10.36, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -31539,8 +32717,8 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer Base Plug-ins config.status 0.10.34
-configured by $0, generated by GNU Autoconf 2.67,
+GStreamer Base Plug-ins config.status 0.10.36
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -31668,186 +32846,212 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
+predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
+postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
+reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
+reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
 
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
-for var in SED \
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
 GREP \
 EGREP \
 FGREP \
@@ -31859,8 +33063,12 @@ lt_NL2SP \
 reload_flag \
 deplibs_check_method \
 file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
+archiver_list_spec \
 STRIP \
 RANLIB \
 CC \
@@ -31870,14 +33078,14 @@ lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
+nm_file_list_spec \
 lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
 lt_prog_compiler_pic \
+lt_prog_compiler_wl \
 lt_prog_compiler_static \
 lt_cv_prog_compiler_c_o \
 need_locks \
+MANIFEST_TOOL \
 DSYMUTIL \
 NMEDIT \
 LIPO \
@@ -31891,9 +33099,7 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
-fix_srcfile_path \
 exclude_expsyms \
 include_expsyms \
 file_list_spec \
@@ -31901,6 +33107,7 @@ variables_saved_for_relink \
 libname_spec \
 library_names_spec \
 soname_spec \
+install_override_mode \
 finish_eval \
 old_striplib \
 striplib \
@@ -31911,10 +33118,11 @@ predeps \
 postdeps \
 compiler_lib_search_path \
 LD_CXX \
+reload_flag_CXX \
 compiler_CXX \
 lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_wl_CXX \
 lt_prog_compiler_pic_CXX \
+lt_prog_compiler_wl_CXX \
 lt_prog_compiler_static_CXX \
 lt_cv_prog_compiler_c_o_CXX \
 export_dynamic_flag_spec_CXX \
@@ -31924,9 +33132,7 @@ with_gnu_ld_CXX \
 allow_undefined_flag_CXX \
 no_undefined_flag_CXX \
 hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_flag_spec_ld_CXX \
 hardcode_libdir_separator_CXX \
-fix_srcfile_path_CXX \
 exclude_expsyms_CXX \
 include_expsyms_CXX \
 file_list_spec_CXX \
@@ -31936,9 +33142,9 @@ postdep_objects_CXX \
 predeps_CXX \
 postdeps_CXX \
 compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -31960,11 +33166,13 @@ module_cmds \
 module_expsym_cmds \
 export_symbols_cmds \
 prelink_cmds \
+postlink_cmds \
 postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
 sys_lib_dlsearch_path_spec \
+reload_cmds_CXX \
 old_archive_cmds_CXX \
 old_archive_from_new_cmds_CXX \
 old_archive_from_expsyms_cmds_CXX \
@@ -31973,10 +33181,11 @@ archive_expsym_cmds_CXX \
 module_cmds_CXX \
 module_expsym_cmds_CXX \
 export_symbols_cmds_CXX \
-prelink_cmds_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+prelink_cmds_CXX \
+postlink_cmds_CXX; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -31984,12 +33193,6 @@ prelink_cmds_CXX; do
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
 ac_aux_dir='$ac_aux_dir'
 xsi_shell='$xsi_shell'
 lt_shell_append='$lt_shell_append'
     "tests/check/Makefile") CONFIG_FILES="$CONFIG_FILES tests/check/Makefile" ;;
     "tests/examples/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/Makefile" ;;
     "tests/examples/app/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/app/Makefile" ;;
+    "tests/examples/audio/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/audio/Makefile" ;;
     "tests/examples/dynamic/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/dynamic/Makefile" ;;
     "tests/examples/encoding/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/encoding/Makefile" ;;
+    "tests/examples/fft/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/fft/Makefile" ;;
     "tests/examples/gio/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/gio/Makefile" ;;
     "tests/examples/overlay/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/overlay/Makefile" ;;
     "tests/examples/seek/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/seek/Makefile" ;;
     "tests/examples/snapshot/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/snapshot/Makefile" ;;
     "tests/examples/playrec/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/playrec/Makefile" ;;
-    "tests/examples/volume/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/volume/Makefile" ;;
     "tests/examples/v4l/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/v4l/Makefile" ;;
     "tests/files/Makefile") CONFIG_FILES="$CONFIG_FILES tests/files/Makefile" ;;
     "tests/icles/Makefile") CONFIG_FILES="$CONFIG_FILES tests/icles/Makefile" ;;
@@ -32159,7 +33363,7 @@ do
     "common/m4/Makefile") CONFIG_FILES="$CONFIG_FILES common/m4/Makefile" ;;
     "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -32192,12 +33397,13 @@ $debug ||
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -32219,7 +33425,7 @@ else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -32247,7 +33453,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -32295,7 +33501,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = "\a"
 
@@ -32327,7 +33533,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -32361,7 +33567,7 @@ fi # test -n "$CONFIG_FILES"
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -32373,8 +33579,8 @@ _ACEOF
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@@ -32475,7 +33681,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -32494,7 +33700,7 @@ do
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@ -32503,7 +33709,7 @@ do
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -32529,8 +33735,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -32666,21 +33872,22 @@ s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
@@ -32691,20 +33898,20 @@ which seems to be undefined.  Please make sure it is defined" >&2;}
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
+      mv "$ac_tmp/config.h" "$ac_file" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
@@ -32866,7 +34073,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -32899,13 +34107,13 @@ available_tags="CXX "
 # ### BEGIN LIBTOOL CONFIG
 
 # Assembler program.
-AS=$AS
+AS=$lt_AS
 
 # DLL creation program.
-DLLTOOL=$DLLTOOL
+DLLTOOL=$lt_DLLTOOL
 
 # Object dumper program.
-OBJDUMP=$OBJDUMP
+OBJDUMP=$lt_OBJDUMP
 
 # Which release of libtool.m4 was used?
 macro_version=$macro_version
@@ -32923,6 +34131,15 @@ pic_mode=$pic_mode
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -32972,20 +34189,36 @@ SP2NL=$lt_lt_SP2NL
 # turn newlines into spaces.
 NL2SP=$lt_lt_NL2SP
 
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method == "file_magic".
+# Command to use when deplibs_check_method = "file_magic".
 file_magic_cmd=$lt_file_magic_cmd
 
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
 # The archiver.
 AR=$lt_AR
+
+# Flags to create an archive.
 AR_FLAGS=$lt_AR_FLAGS
 
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
 # A symbol stripping program.
 STRIP=$lt_STRIP
 
@@ -32994,6 +34227,9 @@ RANLIB=$lt_RANLIB
 old_postinstall_cmds=$lt_old_postinstall_cmds
 old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
 # A C compiler.
 LTCC=$lt_CC
 
@@ -33012,14 +34248,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
 
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
 # Used to examine libraries when file_magic_cmd begins with "file".
 MAGIC_CMD=$MAGIC_CMD
@@ -33027,6 +34263,9 @@ MAGIC_CMD=$MAGIC_CMD
 # Must we lock files when doing compilation?
 need_locks=$lt_need_locks
 
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 DSYMUTIL=$lt_DSYMUTIL
 
@@ -33083,6 +34322,9 @@ library_names_spec=$lt_library_names_spec
 # The coded name of the library, if different from the real name.
 soname_spec=$lt_soname_spec
 
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
 # Command to use after installation of a shared archive.
 postinstall_cmds=$lt_postinstall_cmds
 
@@ -33122,6 +34364,10 @@ striplib=$lt_striplib
 # The linker used to build libraries.
 LD=$lt_LD
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds
 
@@ -33134,12 +34380,12 @@ with_gcc=$GCC
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static
 
@@ -33189,10 +34435,6 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
@@ -33226,9 +34468,6 @@ inherit_rpath=$inherit_rpath
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols
 
@@ -33244,6 +34483,9 @@ include_expsyms=$lt_include_expsyms
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec
 
@@ -33290,212 +34532,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
@@ -33507,6 +34706,10 @@ _LT_EOF
 # The linker used to build libraries.
 LD=$lt_LD_CXX
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_CXX
+reload_cmds=$lt_reload_cmds_CXX
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds_CXX
 
@@ -33519,12 +34722,12 @@ with_gcc=$GCC_CXX
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic_CXX
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static_CXX
 
@@ -33574,10 +34777,6 @@ no_undefined_flag=$lt_no_undefined_flag_CXX
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
 
@@ -33611,9 +34810,6 @@ inherit_rpath=$inherit_rpath_CXX
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs_CXX
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_CXX
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols_CXX
 
@@ -33629,6 +34825,9 @@ include_expsyms=$lt_include_expsyms_CXX
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds_CXX
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_CXX
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec_CXX
 
index 8131f8a..1901bcf 100644 (file)
@@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/prerelease
-AC_INIT(GStreamer Base Plug-ins, 0.10.34,
+AC_INIT(GStreamer Base Plug-ins, 0.10.36,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gst-plugins-base)
 
@@ -49,7 +49,7 @@ dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 24, 0, 24)
+AS_LIBTOOL(GST, 25, 0, 25)
 
 dnl FIXME: this macro doesn't actually work;
 dnl the generated libtool script has no support for the listed tags.
@@ -60,7 +60,7 @@ AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=0.10.34
+GST_REQ=0.10.36
 
 dnl *** autotools stuff ****
 
@@ -119,6 +119,7 @@ AG_GST_ARG_ENABLE_EXTERNAL
 AG_GST_ARG_ENABLE_EXPERIMENTAL
 
 dnl *** checks for platform ***
+AG_GST_PLATFORM
 
 dnl * hardware/architecture *
 
@@ -189,7 +190,7 @@ CPPFLAGS="$ac_cppflags_save"
 AM_CONDITIONAL(HAVE_LIBXML_HTML, test "x$HAVE_LIBXML_HTML" = "xyes")
 
 dnl used in gst/tcp
-AC_CHECK_HEADERS([sys/socket.h], 
+AC_CHECK_HEADERS([sys/socket.h],
   HAVE_SYS_SOCKET_H="yes", HAVE_SYS_SOCKET_H="no")
 AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
 
@@ -213,6 +214,8 @@ LIBS="$save_libs"
 dnl used in gst-libs/gst/pbutils and associated unit test
 AC_CHECK_HEADERS([process.h sys/types.h sys/wait.h sys/stat.h])
 
+AC_CHECK_HEADERS([xmmintrin.h emmintrin.h])
+
 dnl ffmpegcolorspace includes _stdint.h
 dnl also, Windows does not have long long
 AX_CREATE_STDINT_H
@@ -259,7 +262,7 @@ AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
 dnl *** checks for dependency libraries ***
 
 dnl GLib is required
-AG_GST_GLIB_CHECK([2.22])
+AG_GST_GLIB_CHECK([2.24])
 
 ORC_CHECK([0.4.11])
 
@@ -281,24 +284,11 @@ AC_SUBST(GST_PREFIX)
 dnl GTK is optional and only used in examples
 HAVE_GTK=no
 HAVE_GTK_X11=no
-GTK2_REQ=2.14.0
-GTK3_REQ=2.91.3
+GTK_REQ=3.0.0
 if test "x$BUILD_EXAMPLES" = "xyes"; then
-  AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
-  AC_ARG_WITH([gtk],
-    AC_HELP_STRING([--with-gtk=3.0|2.0],
-                   [which gtk+ version to compile against (default: 2.0)]),
-    [case "$with_gtk" in
-        2.0) GTK_REQ=$GTK2_REQ ;;
-        3.0) GTK_REQ=$GTK3_REQ ;;
-        *) AC_MSG_ERROR([invalid gtk+ version specified]);;
-    esac],
-    [with_gtk=2.0
-     GTK_REQ=$GTK2_REQ])
-  AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
-  PKG_CHECK_MODULES(GTK, gtk+-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
+  PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
   dnl some examples need gtk+-x11
-  PKG_CHECK_MODULES(GTK_X11, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK_X11=yes, HAVE_GTK_X11=no)
+  PKG_CHECK_MODULES(GTK_X11, gtk+-x11-3.0 >= $GTK_REQ, HAVE_GTK_X11=yes, HAVE_GTK_X11=no)
   AC_SUBST(GTK_LIBS)
   AC_SUBST(GTK_CFLAGS)
 fi
@@ -370,20 +360,25 @@ AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
   ["${srcdir}/gst-plugins-base.doap"],
   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
 
+# set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
+dnl make sure it doesn't complain about unused variables if debugging is disabled
+NO_WARNINGS=""
+AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
+
 dnl define an ERROR_CFLAGS Makefile variable
 dnl -Wformat-nonliteral - see ext/pango/gstclockoverlay.c and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39438
 AG_GST_SET_ERROR_CFLAGS($GST_GIT, [
     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef
     -Wwrite-strings -Wformat-nonliteral -Wformat-security
     -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-    -Wno-multichar -Wnested-externs ])
+    -Wno-multichar -Wnested-externs $NO_WARNINGS])
 
 dnl define an ERROR_CXXFLAGS Makefile variable
 AG_GST_SET_ERROR_CXXFLAGS($GST_GIT, [
     -Wmissing-declarations -Wredundant-decls -Wundef
     -Wwrite-strings -Wformat-nonliteral -Wformat-security
     -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
-    -Wno-multichar])
+    -Wno-multichar $NO_WARNINGS])
 
 dnl define correct level for debugging messages
 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
@@ -503,6 +498,20 @@ else
   AM_CONDITIONAL(USE_ISO_CODES, false)
 fi
 
+dnl *** zlib is optionally used by id3 tag parsing in libgsttag ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_ZLIB, true)
+AG_GST_CHECK_FEATURE(ZLIB, [zlib support for ID3 parsing in libgsttag],, [
+  PKG_CHECK_MODULES(ZLIB, [ zlib ], [
+      HAVE_ZLIB="yes"
+    ], [
+      AG_GST_CHECK_LIBHEADER(ZLIB, z, uncompress,, zlib.h, [
+        HAVE_ZLIB="yes"
+        ZLIB_LIBS="-lz"
+        AC_SUBST(ZLIB_LIBS)
+      ])
+    ])
+])
+
 dnl *** sys plug-ins ***
 
 echo
@@ -538,7 +547,7 @@ AG_GST_CHECK_FEATURE(X, [X libraries and plugins],
   CFLAGS="$ac_cflags_save"
   CPPFLAGS="$ac_cppflags_save"
 ])
-  
+
 dnl Check for Xv extension
 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
 AG_GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
@@ -550,24 +559,24 @@ dnl check for X Shm
 translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
 AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [
   if test x$HAVE_X = xyes; then
-    AC_CHECK_LIB(Xext, XShmAttach, 
+    AC_CHECK_LIB(Xext, XShmAttach,
                 HAVE_XSHM="yes", HAVE_XSHM="no",
-                $X_LIBS) 
+                $X_LIBS)
     if test "x$HAVE_XSHM" = "xyes"; then
       XSHM_LIBS="-lXext"
     else
       dnl On AIX, it is in XextSam instead, but we still need -lXext
-      AC_CHECK_LIB(XextSam, XShmAttach, 
+      AC_CHECK_LIB(XextSam, XShmAttach,
                   HAVE_XSHM="yes", HAVE_XSHM="no",
-                  $X_LIBS) 
+                  $X_LIBS)
       if test "x$HAVE_XSHM" = "xyes"; then
        XSHM_LIBS="-lXext -lXextSam"
       fi
     fi
   fi
-], , [ 
-  AC_SUBST(HAVE_XSHM) 
-  AC_SUBST(XSHM_LIBS) 
+], , [
+  AC_SUBST(HAVE_XSHM)
+  AC_SUBST(XSHM_LIBS)
 ])
 
 dnl v4l/v4l2 checks have been moved down because they require X
@@ -643,17 +652,17 @@ AG_GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
   PKG_CHECK_MODULES(CDPARANOIA, cdparanoia-3 >= 10.2, [
     HAVE_CDPARANOIA="yes"
   ], [
-    AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
-                        cdda_open, -lm, 
-                        cdda_interface.h, 
+    AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
+                        cdda_open, -lm,
+                        cdda_interface.h,
                         CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
                         HEADER_DIR="no"
                         FOUND_CDPARANOIA="yes")
     if test "x$FOUND_CDPARANOIA" != "xyes";
     then
-      AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
-                          cdda_open, -lm, 
-                          cdda/cdda_interface.h, 
+      AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
+                          cdda_open, -lm,
+                          cdda/cdda_interface.h,
                           CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
                           HEADER_DIR="yes"
                           FOUND_CDPARANOIA="yes")
@@ -886,8 +895,8 @@ AC_SUBST(GST_PLUGINS_BASE_CFLAGS)
 
 dnl FIXME: do we want to rename to GST_ALL_* ?
 dnl add GST_OPTION_CFLAGS, but overridable
-GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
-GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
+GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)"
+GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)"
 AC_SUBST(GST_CFLAGS)
 AC_SUBST(GST_CXXFLAGS)
 dnl add GCOV libs because libtool strips -fprofile-arcs -ftest-coverage
@@ -1004,14 +1013,15 @@ tests/Makefile
 tests/check/Makefile
 tests/examples/Makefile
 tests/examples/app/Makefile
+tests/examples/audio/Makefile
 tests/examples/dynamic/Makefile
 tests/examples/encoding/Makefile
+tests/examples/fft/Makefile
 tests/examples/gio/Makefile
 tests/examples/overlay/Makefile
 tests/examples/seek/Makefile
 tests/examples/snapshot/Makefile
 tests/examples/playrec/Makefile
-tests/examples/volume/Makefile
 tests/examples/v4l/Makefile
 tests/files/Makefile
 tests/icles/Makefile
index 063e55f..3d1b849 100644 (file)
@@ -1,7 +1,854 @@
+gst-plugins-base0.10 (0.10.36-1slp2+6) unstable; urgency=low
+
+  * Destroy xim_transparenter image when destroying xwindow
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.36-1slp2+6
+
+ -- Sangchul Lee <sc11.lee@samsung.com>  Mon, 13 Aug 2012 12:39:13 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+5) unstable; urgency=low
+
+  * Remove unused binary file
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.36-1slp2+5
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 08 Aug 2012 20:33:11 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+4) unstable; urgency=low
+
+  * Enable the RM type
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.36-1slp2+4
+
+ -- Dowan Kim <dowan2171.kim@samsung.com>  Fri, 03 Aug 2012 13:46:19 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+3) unstable; urgency=low
+
+  * Remove unused library
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.36-1slp2+3
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 20 Jul 2012 12:01:18 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+2) unstable; urgency=low
+
+  * [xvimagesink] Bug fix - "display-mode" is not set if state is NULL
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.36-1slp2+2
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 04 Jul 2012 14:21:58 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+1) unstable; urgency=low
+
+  * Upgrade 0.10.34 to 0.10.36
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.36-1slp2+1
+
+ -- Hyunseok Lee <hs7388.lee@samsung.com>  Wed, 27 Jun 2012 20:49:06 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+20) unstable; urgency=low
+
+  * [cameracontrol] Add new interface for face zoom
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+20
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 01 Jun 2012 18:00:51 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+19) unstable; urgency=low
+
+  * [xvimagesink] Update display-mode
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+19
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 23 May 2012 19:41:36 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+18) unstable; urgency=low
+
+  * [cameracontrol] Add new structure for face detection
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+18
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Tue, 22 May 2012 10:29:25 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+17) unstable; urgency=low
+
+  * [xvimagesink] skip buffer if aligned size is smaller than size of caps
+  * [xvimagesink] flush last-buffer when setcaps
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+17
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Thu, 19 Apr 2012 17:18:36 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+16) unstable; urgency=low
+
+  * [playsink] change ffmpegcolorspace to autoconvert for using h/w convert by sangho park
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+16
+
+ -- Younghwan Ahn <younghwan_.an@samsung.com>  Mon, 09 Apr 2012 14:54:44 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+15) unstable; urgency=low
+
+  * [ffmpegcolorspace] Support SUYV, SYVY, S420 format
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+15
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 10 Feb 2012 15:09:39 +0900
+
 gst-plugins-base0.10 (0.10.34-39slp2+14) unstable; urgency=low
 
-  * Initial release
-  * Git: pkgs/g/gst-plugins-base0.10
+  * Update debian/copyright file from ubuntu package
+  * Git: slp/pkgs/g/gst-plugins-base0.10
   * Tag: gst-plugins-base0.10_0.10.34-39slp2+14
 
- -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 07 Dec 2011 12:43:18 +0900
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 04 Jan 2012 11:20:17 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+13) unstable; urgency=low
+
+  * [xvimagesink] Support ITLV format
+  * [gio] Enable gio for WebAudio API
+  * Git: slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+13
+
+ -- Hyunseok Lee <hs7388.lee@samsung.com>  Fri, 16 Dec 2011 11:11:11 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+12) unstable; urgency=low
+
+  * [typefind] Modified specific MP3 contents are playback using flacparse
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+12
+
+ -- Seongho Jeong <sh33.jeong@samsung.com>  Mon, 07 Nov 2011 13:22:08 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+11) unstable; urgency=low
+
+  * [typefind] Enable FLAC, Sorenson Spark codec.
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+11
+
+ -- Hyunseok Lee <hs7388.lee@samsung.com>  Wed, 02 Nov 2011 20:08:41 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+10) unstable; urgency=low
+
+  * [xvimagesink] Fix bug on Emulator - set XvImage size as ZERO if buffer alloc function is called
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+10
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Thu, 13 Oct 2011 20:18:58 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+9) unstable; urgency=low
+
+  * [xvimagesink] Update code for XvImage size with samsung extension format and remove code related multiplane buffer
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+9
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 05 Oct 2011 21:03:26 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+8) unstable; urgency=low
+
+  * [xvimagesink] Improve code - Show proper window screen when xid is not set
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+8
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Thu, 11 Aug 2011 20:06:23 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+7) unstable; urgency=low
+
+  * Repackaging for playing sami subtitle
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+7
+
+ -- YeJin Cho <cho.yejin@samsung.com>  Wed, 10 Aug 2011 14:18:48 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+6) unstable; urgency=low
+
+  * [xvimagesink] Enable samsung extension feature on simulator
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+6
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 25 Jul 2011 14:10:14 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+5) unstable; urgency=low
+
+  * [xvimagesink] Clear screen when window is deactivated
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+5
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 24 Jun 2011 14:27:56 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+4) unstable; urgency=low
+
+  * remove old files
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+4
+
+ -- Younghwan Ahn <younghwan_.an@samsung.com>  Wed, 08 Jun 2011 16:58:40 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+3) unstable; urgency=low
+
+  * update changelog
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+3
+
+ -- Younghwan Ahn <younghwan_.an@samsung.com>  Tue, 07 Jun 2011 20:36:02 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+1) lucid; urgency=low
+
+  * upgrade 33 to 34
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.34-39slp2+1
+
+ -- nosurprises <nosurprises@nosurprises-desktop>  Mon, 23 May 2011 12:09:27 +0900
+
+gst-plugins-base0.10 (0.10.33-39slp2+2) lucid; urgency=low
+
+  * merging textrenderer 
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.33-39slp2+2 
+
+ -- YeJin Cho <cho.yejin@nsamsung.com>  Mon, 16 May 2011 16:18:14 +0900
+
+gst-plugins-base0.10 (0.10.33-39slp2+1) lucid; urgency=low
+
+  * upgrade 25 to 33
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.33-39slp2+1
+
+ -- Younghwan Ahn <younghwan_.an@nsamsung.com>  Thu, 12 May 2011 19:32:09 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+50) unstable; urgency=low
+
+  * [queue2] Fix to remove the temp file by unlinking
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+50 
+
+ -- Yejin Cho <cho.yejin@samsung.com>  Wed, 20 Apr 2011 13:44:55 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+49) unstable; urgency=low
+
+  * [queue2] Fix to set buffer start position for handling buffering query
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+49 
+
+ -- Yejin Cho <cho.yejin@samsung.com>  Tue, 05 Apr 2011 17:15:59 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+48) unstable; urgency=low
+
+  * [queue2] Bug fix - no lock stream when handling seek event
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+48
+
+ -- Yejin Cho <cho.yejin@samsung.com>  Fri, 01 Apr 2011 12:23:40 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+47) unstable; urgency=low
+
+  * [xvimagesink] Trim an odd videosrc size
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+47
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 25 Mar 2011 11:13:56 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+46) unstable; urgency=low
+
+  * [xvimagesink] Resolve video conflict problem
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+46
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 11 Mar 2011 17:49:55 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+45) unstable; urgency=low
+
+  * [volume] remove liboil from the plugin
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+45
+
+ -- Wonhyung Cho <wh01.cho@samsung.com>  Wed, 02 Mar 2011 14:31:04 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+44) unstable; urgency=low
+
+  * [xvimagesink] Update xv interface - Replace CPhyAddr with CbPhyAddr and CrPhyAddr
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+44
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 14 Feb 2011 14:58:53 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+43) unstable; urgency=low
+
+  * [xvimagesink] Update code for c210 - Call XvStopVideo when PAUSED to READY
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+43
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Thu, 10 Feb 2011 13:43:09 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+42) unstable; urgency=low
+
+  * disable Pango and remove depandancy
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+42
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Tue, 08 Feb 2011 12:28:30 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+41) unstable; urgency=low
+
+  * [xvimagesink] Update code for c210 multiplane buffer
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+41
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 26 Jan 2011 11:11:40 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+40) unstable; urgency=low
+
+  * [gstqueue2] Fix to handle seek event for http streaming
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+40
+
+ -- YeJin Cho <cho.yejin@samsung.com>  Tue, 18 Jan 2011 13:46:31 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+39) unstable; urgency=low
+
+  * [xvimagesink] Add SYVY for marvell support
+  * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+39
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 07 Jan 2011 16:39:09 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+38) unstable; urgency=low
+
+  * Fix queue2 for buffering using file
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+38
+
+ -- YeJin Cho <cho.yejin@samsung.com>  Tue, 14 Dec 2010 17:35:08 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+37) unstable; urgency=low
+
+  * Fix for as-needed
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+37
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Wed, 24 Nov 2010 21:30:58 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+36) unstable; urgency=low
+
+  * Add dbg-package, fPIC, as-needed
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+36
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Fri, 19 Nov 2010 11:21:07 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+35) unstable; urgency=low
+
+  * [cameracontrol] Add interface for setting auto focus area
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+35
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 06 Oct 2010 15:48:15 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+34) unstable; urgency=low
+
+  * [xvimagesink] Add Full screen mode(display-geometry-method)
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+34
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 04 Oct 2010 11:04:17 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+33) unstable; urgency=low
+
+  * [xvimagesink] Bug fix - Request output with wrong video src parameter in particular condition
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+33
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 29 Sep 2010 11:16:38 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+32) unstable; urgency=low
+
+  * [cameracontrol] Add information for dynamic capability
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+32
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 13 Sep 2010 17:57:01 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+31) unstable; urgency=low
+
+  * [xvimagesink] Bug fix - Last screen is remained
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+31
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 10 Sep 2010 17:16:18 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+30) unstable; urgency=low
+
+  * [camera]      Add camera capture interface in cameracontol interface
+  * [xvimagesink] Add log and check routine for some Xv APIs
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+30
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 06 Sep 2010 16:15:14 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+29) unstable; urgency=low
+
+  * Re-packaging for basesink
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+29
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 25 Aug 2010 13:17:12 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+28) unstable; urgency=low
+
+  * Re-packaging for basesink
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+28
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Wed, 25 Aug 2010 12:10:25 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+27) unstable; urgency=low
+
+  * [typefindfunction] Fix audio/x-m4a rank primary for supporting fast http streaming
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+27
+
+ -- Cho Ye Jin <cho.yejin@samsung.com>  Thu, 05 Aug 2010 14:04:17 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+26) unstable; urgency=low
+
+  * [xvimagesink] Bug fix - do not request proper size for xv output
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+26
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Thu, 29 Jul 2010 13:13:08 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+25) unstable; urgency=low
+
+  * [xvimagesink] Add control for visible setting
+  * [xvimagesink] Remove "origin-size" property because of duplicated function in "display-geometry-method"
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+25
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 26 Jul 2010 16:43:13 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+24) unstable; urgency=low
+
+  * [xvimagesink] zoom property is implemented
+  * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+24
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Fri, 23 Jul 2010 20:20:22 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+23) unstable; urgency=low
+
+  * [xvimagesink] Block image put when scmn_data is NULL for showing last image
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+23
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Tue, 13 Jul 2010 15:38:44 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+22) unstable; urgency=low
+
+  * [xvimagesink] Modify the drawing input geometry for bug fix and window move
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+22
+
+ -- Jeongmo Yang <jm80.yang@samsung.com>  Mon, 12 Jul 2010 16:39:54 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+21) unstable; urgency=low
+
+  * Remove temporary code of ximagesink
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+21
+
+ -- Wonhyung Cho <wh01.cho@samsung.com>  Wed, 07 Jul 2010 18:18:39 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+20) unstable; urgency=low
+
+  * camera interface changed(query)
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+20
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Fri, 25 Jun 2010 13:56:19 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+19) unstable; urgency=low
+
+  * changing webm sink caps
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+19
+
+ -- Naveen Ch <naveen.ch@samsung.com>  Thu, 24 Jun 2010 14:13:46 +0530
+
+gst-plugins-base0.10 (0.10.25-39slp2+18) unstable; urgency=low
+
+  * added webm typefind function in typefindfunctions
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+18
+
+ -- Naveen Ch <naveen.ch@samsung.com>  Thu, 24 Jun 2010 09:28:18 +0530
+
+gst-plugins-base0.10 (0.10.25-39slp2+17) unstable; urgency=low
+
+  * SUYV output applied for ZSL
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+17
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Wed, 16 Jun 2010 17:59:41 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+16) unstable; urgency=low
+
+  * Changelog change
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+16
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sun, 13 Jun 2010 19:23:59 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+15) unstable; urgency=low
+
+  * limit of display size changed to 4096 x 4096 / SUYV enabled
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+15
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sun, 13 Jun 2010 19:18:15 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+14) unstable; urgency=low
+
+  * Enable adder for SISO (sandeep)
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+14
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Thu, 20 May 2010 13:55:19 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+13) unstable; urgency=low
+
+  * Changed videorate plugin to avoid freeze in dynamic frame rate setting in VT use case
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+13
+
+ -- Naveen Ch <naveen.ch@samsung.com>  Wed, 19 May 2010 14:59:30 +0530
+
+gst-plugins-base0.10 (0.10.25-39slp2+12) unstable; urgency=low
+
+  * Add variables for device name query
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+12
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Mon, 17 May 2010 20:07:25 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+11) unstable; urgency=low
+
+  * Add libgstreamer0.10-dev for dev package
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+11
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Mon, 10 May 2010 20:49:06 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+10) unstable; urgency=low
+
+  * Use gstreamer SDK package
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+10
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Mon, 10 May 2010 16:40:48 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+9) unstable; urgency=low
+
+  * Add SDK package
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+9
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Mon, 10 May 2010 14:08:23 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+8) unstable; urgency=low
+
+  * build error fix (structure member has missed)
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+8
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Fri, 23 Apr 2010 18:00:24 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+7) unstable; urgency=low
+
+  * build error fix (GST_CAMERA_CTRL_TYPE_XXX)
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+7
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Fri, 23 Apr 2010 17:08:49 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+6) unstable; urgency=low
+
+  * Camera device info query function applied to camera control interface
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+6
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Tue, 20 Apr 2010 14:52:34 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+5) unstable; urgency=low
+
+  * enable matroska demuxer/muxer
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+  * Tag: gst-plugins-base0.10_0.10.25-39slp2+5
+
+ -- Heungsoon Rim <hs06.rim@samsung.com>  Fri, 09 Apr 2010 13:13:00 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+4) unstable; urgency=low
+
+  * Fix Flickering when camcorderlib state changes
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Tue, 30 Mar 2010 22:40:56 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+3) unstable; urgency=low
+
+  * email address violation fixed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sat, 27 Mar 2010 16:48:34 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+2) unstable; urgency=low
+
+  * build bug fix
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sat, 27 Mar 2010 16:35:08 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+1) unstable; urgency=low
+
+  * Queries maximum screen size to XV (BEFORE : Hard coded)
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sat, 27 Mar 2010 16:12:48 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+0) unstable; urgency=low
+
+  * Change package naming rule
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Thu, 25 Mar 2010 15:10:05 +0900
+
+gst-plugins-base0.10 (0.10.25-39) unstable; urgency=low
+
+  * Enable ogg/theora/vorbis typefindfunction
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Thu, 25 Mar 2010 15:09:16 +0900
+
+gst-plugins-base0.10 (0.10.25-38) unstable; urgency=low
+
+  * Add vorbis,ogg,theora .so to deb package
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Wed, 24 Mar 2010 12:51:53 +0900
+
+gst-plugins-base0.10 (0.10.25-37) unstable; urgency=low
+
+  * Because gstbasesrc.h was changed, I build and upload this package again.
+
+ -- Wonhyung Cho <wh01.cho@samsung.com>  Mon, 22 Mar 2010 14:22:53 +0900
+
+gst-plugins-base0.10 (0.10.25-36) unstable; urgency=low
+
+  * free box type handling in typefind functions 
+
+ -- Ranjit Reddy B <b.ranjit@samsung.com>  Thu, 18 Mar 2010 17:07:46 +0530
+
+gst-plugins-base0.10 (0.10.25-35) unstable; urgency=low
+
+  * xvimagesink caps bug fix
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Mon, 15 Mar 2010 15:10:58 +0900
+
+gst-plugins-base0.10 (0.10.25-34) unstable; urgency=low
+
+  * enable destination ROI functionalities
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Mon, 15 Mar 2010 15:10:36 +0900
+
+gst-plugins-base0.10 (0.10.25-33) unstable; urgency=low
+
+  * Enable ogg, vorbis, theora
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Fri, 12 Mar 2010 19:43:24 +0900
+
+gst-plugins-base0.10 (0.10.25-32) unstable; urgency=low
+
+  * Fix for H0100083919: Added "udta" box check in qt_type_find()
+
+ -- Prashanth Kumar D <prashanth.kd@samsung.com>  Tue, 09 Mar 2010 22:54:51 +0530
+
+gst-plugins-base0.10 (0.10.25-31) unstable; urgency=low
+
+  * Fix: Version control problem for uploading 0.10.25-30
+
+ -- Heungsoon Rim <hs06.rim@samsung.com>  Thu, 04 Mar 2010 10:29:11 +0900
+
+gst-plugins-base0.10 (0.10.25-30) unstable; urgency=low
+
+  * enable ac3 typefind
+
+ -- Heungsoon Rim <hs06.rim@samsung.com>  Thu, 04 Mar 2010 10:18:21 +0900
+
+gst-plugins-base0.10 (0.10.25-29) unstable; urgency=low
+
+  * Update screen when in get aspect ratio changed in paused state
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Mon, 22 Feb 2010 17:27:03 +0900
+
+gst-plugins-base0.10 (0.10.25-28) unstable; urgency=low
+
+  * Fix border problem of xvimagesink
+
+ -- Wonhyung Cho <wh01.cho@samsung.com>  Fri, 19 Feb 2010 20:34:03 +0900
+
+gst-plugins-base0.10 (0.10.25-27) unstable; urgency=low
+
+  * Repacking
+
+ -- Cho Ye Jin <cho.yejin@samsung.com>  Tue, 02 Feb 2010 19:25:56 +0900
+
+gst-plugins-base0.10 (0.10.25-26) unstable; urgency=low
+
+  * Fix i686 build error
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Tue, 02 Feb 2010 17:37:52 +0900
+
+gst-plugins-base0.10 (0.10.25-25) unstable; urgency=low
+
+  * [xvimagesink] fix to update overlay when it exposed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Tue, 02 Feb 2010 17:06:02 +0900
+
+gst-plugins-base0.10 (0.10.25-24) unstable; urgency=low
+
+  * xvimagesink rotation jitter problem fixed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Fri, 29 Jan 2010 16:55:16 +0900
+
+gst-plugins-base0.10 (0.10.25-23) unstable; urgency=low
+
+  * Simulator Build Bug Fixed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sun, 24 Jan 2010 17:15:12 +0900
+
+gst-plugins-base0.10 (0.10.25-22) unstable; urgency=low
+
+  * multishot applies default value when it returns from review screen. default value changed(270ㅇ\E3\84 degree)
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Sun, 24 Jan 2010 16:45:00 +0900
+
+gst-plugins-base0.10 (0.10.25-21) unstable; urgency=low
+
+  * xvimagesink Cropped fullscreen and origin size blitting enabled
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Fri, 22 Jan 2010 16:24:08 +0900
+
+gst-plugins-base0.10 (0.10.25-20) unstable; urgency=low
+
+  * xvimagesink log bursting disabled
+
+ -- Kum Jun Seung <junseung.kum@samsung.com>  Thu, 21 Jan 2010 21:13:35 +0900
+
+gst-plugins-base0.10 (0.10.25-19) unstable; urgency=low
+
+  * repacking
+
+ -- Cho Ye Jin <cho.yejin@samsung.com>  Wed, 20 Jan 2010 14:06:26 +0900
+
+gst-plugins-base0.10 (0.10.25-18) unstable; urgency=low
+
+  * fix library link
+
+ -- Cho Ye Jin <cho.yejin@samsung.com>  Wed, 20 Jan 2010 13:55:38 +0900
+
+gst-plugins-base0.10 (0.10.25-17) unstable; urgency=low
+
+  * fix dependency build error 
+
+ -- Cho Ye Jin <cho.yejin@samsung.com>  Sat, 16 Jan 2010 23:26:57 +0900
+
+gst-plugins-base0.10 (0.10.25-16) unstable; urgency=low
+
+  * enalbe subparse/pango and add properties to textrender 
+
+ -- Cho Ye Jin <cho.yejin@samsung.com>  Sat, 16 Jan 2010 23:26:17 +0900
+
+gst-plugins-base0.10 (0.10.25-15) unstable; urgency=low
+
+  * videorate enabled 
+
+ -- Rahul Mittal <mittal.rahul@samsung.com>  Wed, 13 Jan 2010 23:28:37 +0530
+
+gst-plugins-base0.10 (0.10.25-14) unstable; urgency=low
+
+  * xv image sink samsung extension on SDK build
+
+ -- root <sangho.g.park@samsung.com>  Fri, 08 Jan 2010 19:31:56 +0900
+
+gst-plugins-base0.10 (0.10.25-13) unstable; urgency=low
+
+  * build error fix (header path)
+
+ -- root <sangho.g.park@samsung.com>  Tue, 29 Dec 2009 15:28:26 +0900
+
+gst-plugins-base0.10 (0.10.25-12) unstable; urgency=low
+
+  * rotate check every frame
+
+ -- root <sangho.g.park@samsung.com>  Tue, 29 Dec 2009 10:26:48 +0900
+
+gst-plugins-base0.10 (0.10.25-11) unstable; urgency=low
+
+  * xvimagesink rotation uses X Attribute
+
+ -- root <sangho.g.park@samsung.com>  Tue, 29 Dec 2009 10:00:15 +0900
+
+gst-plugins-base0.10 (0.10.25-10) unstable; urgency=low
+
+  * xvimagesink can output to center well
+
+ -- root <sangho.g.park@samsung.com>  Wed, 23 Dec 2009 21:36:05 +0900
+
+gst-plugins-base0.10 (0.10.25-9) unstable; urgency=low
+
+  * build integrity problem fixed
+
+ -- root <sangho.g.park@samsung.com>  Tue, 22 Dec 2009 01:03:41 +0900
+
+gst-plugins-base0.10 (0.10.25-8) unstable; urgency=low
+
+  * dependency check code added
+
+ -- root <sangho.g.park@samsung.com>  Tue, 22 Dec 2009 00:44:05 +0900
+
+gst-plugins-base0.10 (0.10.25-7) unstable; urgency=low
+
+  * libuuid dependency problem fixed
+
+ -- root <sangho.g.park@samsung.com>  Tue, 22 Dec 2009 00:24:23 +0900
+
+gst-plugins-base0.10 (0.10.25-6) unstable; urgency=low
+
+  * solve build problem because of build integrity
+
+ -- root <sangho.g.park@samsung.com>  Mon, 21 Dec 2009 23:17:43 +0900
+
+gst-plugins-base0.10 (0.10.25-5) unstable; urgency=low
+
+  * xvimagesink uses convention with XV-extension
+
+ -- root <sangho.g.park@samsung.com>  Mon, 21 Dec 2009 21:25:44 +0900
+
+gst-plugins-base0.10 (0.10.25-4) unstable; urgency=low
+
+  * dummy update
+
+ -- root <sangho.g.park@samsung.com>  Mon, 21 Dec 2009 21:25:02 +0900
+
+gst-plugins-base0.10 (0.10.25-3) unstable; urgency=low
+
+  * Removed libxt-dev version dependencies.
+
+ -- sangho park <sangho.g.park@samsung.com>  Sat, 14 Nov 2009 11:28:00 +0900
+
+
+gst-plugins-base0.10 (0.10.25-2) unstable; urgency=low
+
+  * Removed dependencies.
+    - libmm-trace-service-dev
+    - libdata-networking-dev
+
+ -- Myungjae Lee <mjae.lee@samsung.com>  Fri, 13 Nov 2009 10:42:00 +0900
+
+gst-plugins-base0.10 (0.10.25-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Myungjae Lee <mjae.lee@samsung.com>  Fri, 13 Nov 2009 10:14:00 +0900
index 6950ac8..af59abd 100644 (file)
@@ -2,8 +2,8 @@ Source: gst-plugins-base0.10
 Section: libs
 Priority: optional
 Maintainer: Shin Seung Bae <seungbae.shin@samsung.com>, JongHyuk Choi <jhchoi.choi@samsung.com>
-Uploaders: Cho Ye Jin <cho.yejin@samsung.com>, Kum Jun Seung <junseung.kum@samsung.com>, Wonhyung Cho <wh01.cho@samsung.com>, Heungsoon Rim <hs06.rim@samsung.com>, Prashanth Kumar D <prashanth.kd@samsung.com>, Ranjit Reddy B <b.ranjit@samsung.com>, Naveen Ch <naveen.ch@samsung.com>, Jeongmo Yang <jm80.yang@samsung.com>
-Build-Depends: libgstreamer0.10-dev (>= 0.10.22), libasound2-dev (>= 0.9.0) [alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], autotools-dev, debhelper (>= 5), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2), libxt-dev,liboil0.3-dev (>= 0.3.14), libglib2.0-dev (>= 2.15.2), libxml2-dev (>= 2.4.23), zlib1g-dev (>= 1:1.1.4), gstreamer0.10-tools (>= 0.10.14), libvorbis-dev, libogg-dev, libtheora-dev
+Uploaders: Cho Ye Jin <cho.yejin@samsung.com>, Hyunseok Lee <hs7388.lee@samsung.com>, Ranjit Reddy B <b.ranjit@samsung.com>, Naveen Ch <naveen.ch@samsung.com>, Jeongmo Yang <jm80.yang@samsung.com>
+Build-Depends: libgstreamer0.10-dev (>= 0.10.22), libasound2-dev (>= 0.9.0) [alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], autotools-dev, debhelper (>= 5), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2), libxt-dev,liboil0.3-dev (>= 0.3.14), libglib2.0-dev (>= 2.15.2), libxml2-dev (>= 2.4.23), zlib1g-dev (>= 1:1.1.4), gstreamer0.10-tools (>= 0.10.14), libvorbis-dev, libogg-dev, libtheora-dev, libpango1.0-dev
 Standards-Version: 3.8.0
 
 Package: gstreamer0.10-plugins-base-apps
index 1d715fc..122d864 100644 (file)
@@ -19,3 +19,4 @@ usr/lib/gstreamer-0.10/libgstogg.so
 usr/lib/gstreamer-0.10/libgstvorbis.so
 usr/lib/gstreamer-0.10/libgsttheora.so
 usr/lib/gstreamer-0.10/libgstadder.so
+usr/lib/gstreamer-0.10/libgstpango.so
index d4c23ba..25fc4fb 100755 (executable)
@@ -9,28 +9,28 @@ DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 DEB_HOST_ARCH       ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
 
-CONFIGURE_OPTION +=--prefix=/usr       \
-       --disable-static                                \
-       --disable-nls                           \
-       --with-html-dir=/tmp/dump               \
-       --disable-examples                      \
-       --disable-audiorate                     \
-       --disable-gdp                           \
-       --disable-cdparanoia                    \
-       --disable-gnome_vfs                     \
-       --disable-libvisual                     \
-       --disable-freetypetest                  \
-       --disable-rpath                                 \
-       --disable-valgrind                      \
-       --disable-gcov                          \
-       --disable-gtk-doc                       \
-       --disable-debug                                 \
-       --disable-pango                         \
-       --with-audioresample-format=int 
-
-CFLAGS += -Wall -g -fPIC \
-       -DGST_EXT_TEXTRENDER_ENHANCEMENT \
-       -DGST_EXT_XV_ENHANCEMENT
+CONFIGURE_OPTION +=--prefix=/usr               \
+               --disable-static                \
+               --disable-nls                   \
+               --with-html-dir=/tmp/dump       \
+               --disable-examples              \
+               --disable-audiorate             \
+               --disable-gdp                   \
+               --disable-cdparanoia            \
+               --disable-gnome_vfs             \
+               --disable-libvisual             \
+               --disable-freetypetest          \
+               --disable-rpath                 \
+               --disable-valgrind              \
+               --disable-gcov                  \
+               --disable-gtk-doc               \
+               --disable-debug                 \
+               --with-audioresample-format=int
+
+CFLAGS += -Wall -g -fPIC                       \
+               -DGST_EXT_XV_ENHANCEMENT        \
+               -DGST_EXT_LINK_FIMCCONVERT      \
+               -DGST_EXT_MIME_TYPES
 
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
diff --git a/depcomp b/depcomp
index df8eea7..bd0ac08 100755 (executable)
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2011-12-04.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@ Environment variables:
   object      Object file output by `PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputing dependencies.
+  tmpdepfile  Temporary file to use when outputting dependencies.
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
@@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then
    # This is just like msvisualcpp but w/o cygpath translation.
    # Just convert the backslash-escaped backslashes to single forward
    # slashes to satisfy depend.m4
-   cygpath_u="sed s,\\\\\\\\,/,g"
+   cygpath_u='sed s,\\\\,/,g'
    depmode=msvisualcpp
 fi
 
+if test "$depmode" = msvc7msys; then
+   # This is just like msvc7 but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u='sed s,\\\\,/,g'
+   depmode=msvc7
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -158,10 +166,12 @@ gcc)
 ' < "$tmpdepfile" |
 ## Some versions of gcc put a space before the `:'.  On the theory
 ## that the space means something, we add a space to the output as
-## well.
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+      | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -405,6 +415,52 @@ tru64)
    rm -f "$tmpdepfile"
    ;;
 
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test "$stat" = 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/      \1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/        /
+  G
+  p
+}' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 #nosideeffect)
   # This comment above is used by automake to tell side-effect
   # dependency tracking mechanisms from slower ones.
@@ -503,7 +559,9 @@ makedepend)
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
   sed '1,2d' "$tmpdepfile" | tr ' ' '
 ' | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
index 0aa19e2..94dab6f 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -79,11 +80,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.entities
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -187,6 +188,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -247,6 +249,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -256,9 +259,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -281,6 +287,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -353,10 +360,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -390,7 +400,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -669,10 +678,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 4b3aa99..705f205 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -187,6 +188,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -247,6 +249,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -256,9 +259,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -281,6 +287,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -353,10 +360,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -390,7 +400,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -669,10 +678,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 0a84a98..bb8ab2d 100644 (file)
@@ -82,7 +82,7 @@ Design:
 
   Whenever new samples are to be put into the ringbuffer, the position of the
   read pointer is taken. The required write position is taken and the diff
-  is made between the required qnd actual position. If the defference is <0,
+  is made between the required and actual position. If the difference is <0,
   the sample is too late. If the difference is bigger than segtotal, the
   writing part has to wait for the play pointer to advance. 
 
index 3491945..1aa236b 100644 (file)
@@ -13,9 +13,9 @@ Description:
 
   _ a GstTypeFindElement connected to the single sink pad
 
-  _ optionnaly a demuxer/parser
+  _ optionally a demuxer/parser
 
-  _ optionnaly one or more DecodeGroup
+  _ optionally one or more DecodeGroup
 
 * Autoplugging
 
@@ -57,7 +57,7 @@ fine-tune the process.
 
     Get a list of elementfactories for @pad with @caps. This function is used to
     instruct decodebin2 of the elements it should try to autoplug. The default
-    behaviour when this function is not overridern is to get all elements that
+    behaviour when this function is not overriden is to get all elements that
     can handle @caps from the registry sorted by rank.
 
   - 'autoplug-select' :
@@ -142,7 +142,7 @@ Description:
 
   Multiple input-output data queue
   
-  The GstMultiQueue achieves the same functionnality as GstQueue, with a few
+  The GstMultiQueue achieves the same functionality as GstQueue, with a few
 differences:
 
   * Multiple streams handling.
@@ -203,3 +203,72 @@ differences:
   controlled by the element. This means that a buffer cannot be pushed to a
   non-linked pad any sooner than buffers in any other stream which were received
   before it.
+
+
+=====================================
+ Parsers, decoders and auto-plugging
+=====================================
+
+This section has DRAFT status.
+
+Some media formats come in different "flavours" or "stream formats". These
+formats differ in the way the setup data and media data is signalled and/or
+packaged. An example for this is H.264 video, where there is a bytestream
+format (with codec setup data signalled inline and units prefixed by a sync
+code and packet length information) and a "raw" format where codec setup
+data is signalled out of band (via the caps) and the chunking is implicit
+in the way the buffers were muxed into a container, to mention just two of
+the possible variants.
+
+Especially on embedded platforms it is common that decoders can only
+handle one particular stream format, and not all of them.
+
+Where there are multiple stream formats, parsers are usually expected
+to be able to convert between the different formats. This will, if
+implemented correctly, work as expected in a static pipeline such as
+
+   ... ! parser ! decoder ! sink
+
+where the parser can query the decoder's capabilities even before
+processing the first piece of data, and configure itself to convert
+accordingly, if conversion is needed at all.
+
+In an auto-plugging context this is not so straight-forward though,
+because elements are plugged incrementally and not before the previous
+element has processes some data and decided what it will output exactly
+(unless the template caps are completely fixed, then it can continue
+right away, this is not always the case here though, see below). A
+parser will thus have to decide on *some* output format so auto-plugging
+can continue. It doesn't know anything about the available decoders and
+their capabilities though, so it's possible that it will choose a format
+that is not supported by any of the available decoders, or by the preferred
+decoder.
+
+If the parser had sufficiently concise but fixed source pad template caps,
+decodebin could continue to plug a decoder right away, allowing the
+parser to configure itself in the same way as it would with a static
+pipeline. This is not an option, unfortunately, because often the
+parser needs to process some data to determine e.g. the format's profile or
+other stream properties (resolution, sample rate, channel configuration, etc.),
+and there may be different decoders for different profiles (e.g. DSP codec
+for baseline profile, and software fallback for main/high profile; or a DSP
+codec only supporting certain resolutions, with a software fallback for
+unusual resolutions). So if decodebin just plugged the most highest-ranking
+decoder, that decoder might not be be able to handle the actual stream later
+on, which would yield an error (this is a data flow error then which would
+be hard to intercept and avoid in decodebin). In other words, we can't solve
+this issue by plugging a decoder right away with the parser.
+
+So decodebin needs to communicate to the parser the set of available decoder
+caps (which would contain the relevant capabilities/restrictions such as
+supported profiles, resolutions, etc.), after the usual "autoplug-*" signal
+filtering/sorting of course.
+
+This is done by plugging a capsfilter element right after the parser, and
+constructing set of filter caps from the list of available decoders (one
+appends at the end just the name(s) of the caps structures from the parser
+pad template caps to function as an 'ANY other' caps equivalent). This let
+the parser negotiate to a supported stream format in the same way as with
+the static pipeline mentioned above, but of course incur some overhead
+through the additional capsfilter element.
+
index dda79ad..bfe2e9f 100644 (file)
@@ -16,13 +16,13 @@ A. Problems this proposal attempts to solve
 
 * Duplication of pipeline code for gstreamer-based applications
   wishing to encode and or mux streams, leading to subtle differences
-  and inconsistencies accross those applications.
+  and inconsistencies across those applications.
 
 * No unified system for describing encoding targets for applications
   in a user-friendly way.
 
 * No unified system for creating encoding targets for applications,
-  resulting in duplication of code accross all applications,
+  resulting in duplication of code across all applications,
   differences and inconsistencies that come with that duplication,
   and applications hardcoding element names and settings resulting in
   poor portability.
index d5d146c..a6a401d 100644 (file)
@@ -86,7 +86,7 @@ given an input format, channel position manipulation, dithering and
 quantizing configuration, and output format, a Orc code generator
 would create an OrcProgram, add the appropriate instructions to do
 each step based on the configuration, and then compile the program.
-Sucessfully compiling the program would return a function pointer
+Successfully compiling the program would return a function pointer
 that can be called to perform the operation.
 
 This sort of advanced usage requires structural changes to current
index 8dd0f01..14945f0 100644 (file)
@@ -11,7 +11,7 @@ Consider the following use case:
   the existing file we are writing to and start writing to a new file.
 
   We want the new file to start with a keyframe so that one can start decoding
-  the file immediatly.
+  the file immediately.
 
 Components:
 
index a63a643..be02706 100644 (file)
@@ -7,7 +7,7 @@ Status:
   
 Purpose:
 
-  Provide an standarized generic way to introduce Video Acceleration APIs in
+  Provide an standardized generic way to introduce Video Acceleration APIs in
   already available elements instead of duplicating those into specialized ones.
   
   Provide a mechanism for a light GstBuffer subclassing in order to be able
@@ -26,7 +26,7 @@ Proposal:
 
    video/x-raw-va
    
-   Light subclassing embeding an structure in the data field of a standard
+   Light subclassing embedding an structure in the data field of a standard
    GstBuffer.
    
    struct {
index af2632c..81955a1 100644 (file)
@@ -13,43 +13,17 @@ FORMATS=html
 html: html-build.stamp
 include $(top_srcdir)/common/upload-doc.mak
 
-# generated basefiles
-#basefiles = \
-##             $(DOC_MODULE).types \
-#              $(DOC_MODULE)-sections.txt \
-#              $(DOC_MODULE)-docs.sgml
-
-# ugly hack to make -unused.sgml work
-#unused-build.stamp:
-#      BUILDDIR=`pwd` && \
-#      cd $(srcdir)/tmpl && \
-#      ln -sf gstreamer-libs-unused.sgml \
-#              $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
-#      touch unused-build.stamp
-
-# these rules are added to create parallel docs using GST_MAJORMINOR
-#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
-#      cp $< $@
-
-#CLEANFILES = $(basefiles)
-
 # The top-level SGML file. Change it if you want.
 DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
 
-# The directory containing the source code. Relative to $(top_srcdir).
+# The directory containing the source code.
 # gtk-doc will search all .c & .h files beneath here for inline comments
 # documenting functions and macros.
 DOC_SOURCE_DIR=$(top_srcdir)/gst-libs/gst
-DOC_BUILD_DIR=$(top_builddir)/gst-libs/gst
 
 # Extra options to supply to gtkdoc-scan.
 SCAN_OPTIONS=--deprecated-guards="GST_DISABLE_DEPRECATED"
 
-# FIXME :
-# there's something wrong with gstreamer-sections.txt not being in the dist
-# maybe it doesn't resolve; we're adding it below for now
-#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
-
 # Extra options to supply to gtkdoc-mkdb.
 MKDB_OPTIONS=--sgml-mode  --output-format=xml
 
@@ -58,28 +32,17 @@ FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \
        --extra-dir=$(GST_PREFIX)/share/gtk-doc/html
 
 # Used for dependencies.
-HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*.h
-CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*.c
-
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
-
-SCANOBJ_DEPS = \
-       $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la
+HFILE_GLOB=$(top_srcdir)/gst-libs/gst/*/*.h
+CFILE_GLOB=$(top_srcdir)/gst-libs/gst/*/*.c
 
 # Header files to ignore when scanning.
-IGNORE_HFILES = pbutils-private.h
+IGNORE_HFILES = pbutils-private.h gsttageditingprivate.h id3v2.h \
+       kiss_fft_f32.h kiss_fft_f64.h kiss_fftr_f32.h kiss_fftr_f64.h \
+       kiss_fftr_s16.h kiss_fftr_s32.h kiss_fft_s16.h kiss_fft_s32.h \
+       _kiss_fft_guts_f32.h _kiss_fft_guts_f64.h _kiss_fft_guts_s16.h \
+       _kiss_fft_guts_s16.h _kiss_fft_guts_s32.h _kiss_fft_guts_s32.h \
+       interfaces-marshal.h pbutils-marshal.h
+
 
 # Images to copy into HTML directory.
 HTML_IMAGES =
@@ -93,14 +56,24 @@ extra_files =
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
-GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
+GTKDOC_LIBS = \
+       $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+  $(GST_BASE_LIBS)
 
 GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
 
 # If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES =
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
 
 include $(top_srcdir)/common/gtk-doc.mak
index 0e714ea..20e3cfe 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -75,6 +75,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -99,11 +100,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -168,6 +169,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -228,6 +230,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -237,9 +240,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -262,6 +268,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -334,10 +341,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -371,7 +381,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -409,42 +418,17 @@ DOC_SERVER = gstreamer.freedesktop.org
 DOC_BASE = /srv/gstreamer.freedesktop.org/www/data/doc
 DOC_URL = $(DOC_SERVER):$(DOC_BASE)
 
-# generated basefiles
-#basefiles = \
-#              $(DOC_MODULE)-sections.txt \
-#              $(DOC_MODULE)-docs.sgml
-
-# ugly hack to make -unused.sgml work
-#unused-build.stamp:
-#      BUILDDIR=`pwd` && \
-#      cd $(srcdir)/tmpl && \
-#      ln -sf gstreamer-libs-unused.sgml \
-#              $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
-#      touch unused-build.stamp
-
-# these rules are added to create parallel docs using GST_MAJORMINOR
-#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
-#      cp $< $@
-
-#CLEANFILES = $(basefiles)
-
 # The top-level SGML file. Change it if you want.
 DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml
 
-# The directory containing the source code. Relative to $(top_srcdir).
+# The directory containing the source code.
 # gtk-doc will search all .c & .h files beneath here for inline comments
 # documenting functions and macros.
 DOC_SOURCE_DIR = $(top_srcdir)/gst-libs/gst
-DOC_BUILD_DIR = $(top_builddir)/gst-libs/gst
 
 # Extra options to supply to gtkdoc-scan.
 SCAN_OPTIONS = --deprecated-guards="GST_DISABLE_DEPRECATED"
 
-# FIXME :
-# there's something wrong with gstreamer-sections.txt not being in the dist
-# maybe it doesn't resolve; we're adding it below for now
-#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
-
 # Extra options to supply to gtkdoc-mkdb.
 MKDB_OPTIONS = --sgml-mode  --output-format=xml
 
@@ -454,28 +438,17 @@ FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \
 
 
 # Used for dependencies.
-HFILE_GLOB = $(DOC_SOURCE_DIR)/*/*.h
-CFILE_GLOB = $(DOC_SOURCE_DIR)/*/*.c
-
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
-SCANOBJ_DEPS = \
-       $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
-       $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la
-
+HFILE_GLOB = $(top_srcdir)/gst-libs/gst/*/*.h
+CFILE_GLOB = $(top_srcdir)/gst-libs/gst/*/*.c
 
 # Header files to ignore when scanning.
-IGNORE_HFILES = pbutils-private.h
+IGNORE_HFILES = pbutils-private.h gsttageditingprivate.h id3v2.h \
+       kiss_fft_f32.h kiss_fft_f64.h kiss_fftr_f32.h kiss_fftr_f64.h \
+       kiss_fftr_s16.h kiss_fftr_s32.h kiss_fft_s16.h kiss_fft_s32.h \
+       _kiss_fft_guts_f32.h _kiss_fft_guts_f64.h _kiss_fft_guts_s16.h \
+       _kiss_fft_guts_s16.h _kiss_fft_guts_s32.h _kiss_fft_guts_s32.h \
+       interfaces-marshal.h pbutils-marshal.h
+
 
 # Images to copy into HTML directory.
 HTML_IMAGES = 
@@ -489,14 +462,25 @@ extra_files =
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
-GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
+GTKDOC_LIBS = \
+       $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+  $(GST_BASE_LIBS)
+
 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
 
 # If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES = 
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
 
 # thomas: copied from glib-2
 # We set GPATH here; this gives us semantics for GNU make
@@ -522,7 +506,6 @@ DOC_STAMPS = \
        scan-build.stamp                \
        sgml-build.stamp                \
        html-build.stamp                \
-       setup.stamp             \
        sgml.stamp              \
        html.stamp
 
@@ -564,6 +547,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -633,10 +617,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -784,30 +773,36 @@ upload: $(FORMATS)
 
 #### setup ####
 
-@ENABLE_GTK_DOC_TRUE@setup.stamp: $(content_files)
+@ENABLE_GTK_DOC_TRUE@setup-build.stamp: $(content_files)
 @ENABLE_GTK_DOC_TRUE@  -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-@ENABLE_GTK_DOC_TRUE@     cp -p $(abs_srcdir)/$(DOC_MAIN_SGML_FILE) \
-@ENABLE_GTK_DOC_TRUE@       $(abs_srcdir)/$(DOC_MODULE)-overrides.txt \
-@ENABLE_GTK_DOC_TRUE@       $(abs_srcdir)/$(DOC_MODULE)-sections.txt \
-@ENABLE_GTK_DOC_TRUE@       $(abs_srcdir)/$(DOC_MODULE).types \
-@ENABLE_GTK_DOC_TRUE@       $(abs_builddir)/; \
-@ENABLE_GTK_DOC_TRUE@     if test "x$(content_files)" != "x" ; then \
-@ENABLE_GTK_DOC_TRUE@         for file in $(content_files) ; do \
-@ENABLE_GTK_DOC_TRUE@             test -f $(abs_srcdir)/$$file || \
-@ENABLE_GTK_DOC_TRUE@                 cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
-@ENABLE_GTK_DOC_TRUE@         done \
-@ENABLE_GTK_DOC_TRUE@     fi \
+@ENABLE_GTK_DOC_TRUE@      echo '  DOC   Preparing build'; \
+@ENABLE_GTK_DOC_TRUE@      files=`echo $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) $(DOC_MODULE)-sections.txt $(DOC_MODULE).types $(content_files)`; \
+@ENABLE_GTK_DOC_TRUE@      if test "x$$files" != "x" ; then \
+@ENABLE_GTK_DOC_TRUE@          for file in $$files ; do \
+@ENABLE_GTK_DOC_TRUE@              test -f $(abs_srcdir)/$$file && \
+@ENABLE_GTK_DOC_TRUE@                  cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+@ENABLE_GTK_DOC_TRUE@          done; \
+@ENABLE_GTK_DOC_TRUE@      fi; \
 @ENABLE_GTK_DOC_TRUE@  fi
-@ENABLE_GTK_DOC_TRUE@  touch setup.stamp
+@ENABLE_GTK_DOC_TRUE@  @touch setup-build.stamp
 
 #### scan ####
 
 # in the case of non-srcdir builds, the built gst directory gets added
 # to gtk-doc scanning; but only then, to avoid duplicates
 @ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Scanning header files ***'
-@ENABLE_GTK_DOC_TRUE@  if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null;    \
-@ENABLE_GTK_DOC_TRUE@  then                                                            \
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Scanning header files'
+@ENABLE_GTK_DOC_TRUE@  @_source_dir='' ;                                               \
+@ENABLE_GTK_DOC_TRUE@  for i in $(DOC_SOURCE_DIR) ; do                                 \
+@ENABLE_GTK_DOC_TRUE@      _source_dir="$${_source_dir} --source-dir=$$i" ;            \
+@ENABLE_GTK_DOC_TRUE@  done ;                                                          \
+@ENABLE_GTK_DOC_TRUE@  gtkdoc-scan                                                     \
+@ENABLE_GTK_DOC_TRUE@          $(SCAN_OPTIONS) $(EXTRA_HFILES)                         \
+@ENABLE_GTK_DOC_TRUE@          --module=$(DOC_MODULE)                                  \
+@ENABLE_GTK_DOC_TRUE@          $${_source_dir}                                         \
+@ENABLE_GTK_DOC_TRUE@          --ignore-headers="$(IGNORE_HFILES)"
+@ENABLE_GTK_DOC_TRUE@  @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then      \
+@ENABLE_GTK_DOC_TRUE@      echo "  DOC   Introspecting gobjects"; \
 @ENABLE_GTK_DOC_TRUE@      GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`          \
 @ENABLE_GTK_DOC_TRUE@      GST_PLUGIN_PATH=                                            \
 @ENABLE_GTK_DOC_TRUE@      GST_REGISTRY=doc-registry.xml                               \
@@ -822,31 +817,18 @@ upload: $(FORMATS)
 @ENABLE_GTK_DOC_TRUE@         test -f $$i || touch $$i ;                               \
 @ENABLE_GTK_DOC_TRUE@      done                                                        \
 @ENABLE_GTK_DOC_TRUE@  fi
-@ENABLE_GTK_DOC_TRUE@  if test "x$(top_srcdir)" != "x$(top_builddir)";                 \
-@ENABLE_GTK_DOC_TRUE@  then                                                            \
-@ENABLE_GTK_DOC_TRUE@    export BUILT_OPTIONS="--source-dir=$(DOC_BUILD_DIR)";         \
-@ENABLE_GTK_DOC_TRUE@  fi;                                                             \
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-scan                                                     \
-@ENABLE_GTK_DOC_TRUE@          $(SCAN_OPTIONS) $(EXTRA_HFILES)                         \
-@ENABLE_GTK_DOC_TRUE@          --module=$(DOC_MODULE)                                  \
-@ENABLE_GTK_DOC_TRUE@          --source-dir=$(DOC_SOURCE_DIR)                          \
-@ENABLE_GTK_DOC_TRUE@          $$BUILT_OPTIONS                                         \
-@ENABLE_GTK_DOC_TRUE@          --ignore-headers="$(IGNORE_HFILES)"
-@ENABLE_GTK_DOC_TRUE@  touch scan-build.stamp
+@ENABLE_GTK_DOC_TRUE@  @touch scan-build.stamp
 
 @ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
 @ENABLE_GTK_DOC_TRUE@  @true
 
 #### xml ####
 
-### FIXME: make this error out again when docs are complete
-@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Building XML ***'
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log
-@ENABLE_GTK_DOC_TRUE@  @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi
-@ENABLE_GTK_DOC_TRUE@  cp ../version.entities xml
-@ENABLE_GTK_DOC_TRUE@  rm sgml-build.log
-@ENABLE_GTK_DOC_TRUE@  touch sgml-build.stamp
+@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Building XML'
+@ENABLE_GTK_DOC_TRUE@  @gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@  @cp ../version.entities xml
+@ENABLE_GTK_DOC_TRUE@  @touch sgml-build.stamp
 
 @ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp
 @ENABLE_GTK_DOC_TRUE@  @true
@@ -854,59 +836,66 @@ upload: $(FORMATS)
 #### html ####
 
 @ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Building HTML ***'
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Building HTML'
 @ENABLE_GTK_DOC_TRUE@  @rm -rf html
 @ENABLE_GTK_DOC_TRUE@  @mkdir html
-@ENABLE_GTK_DOC_TRUE@  cp -pr xml html
-@ENABLE_GTK_DOC_TRUE@  cp ../version.entities ./
+@ENABLE_GTK_DOC_TRUE@  @cp -pr xml html
+@ENABLE_GTK_DOC_TRUE@  @cp ../version.entities ./
 @ENABLE_GTK_DOC_TRUE@  @mkhtml_options=""; \
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
+@ENABLE_GTK_DOC_TRUE@  gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+@ENABLE_GTK_DOC_TRUE@  if test "$(?)" = "0"; then \
+@ENABLE_GTK_DOC_TRUE@    if test "x$(V)" = "x1"; then \
+@ENABLE_GTK_DOC_TRUE@      mkhtml_options="$$mkhtml_options --verbose"; \
+@ENABLE_GTK_DOC_TRUE@    fi; \
+@ENABLE_GTK_DOC_TRUE@  fi; \
+@ENABLE_GTK_DOC_TRUE@  @gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
 @ENABLE_GTK_DOC_TRUE@  if test "$(?)" = "0"; then \
 @ENABLE_GTK_DOC_TRUE@    mkhtml_options=--path="$(abs_srcdir)"; \
 @ENABLE_GTK_DOC_TRUE@  fi; \
 @ENABLE_GTK_DOC_TRUE@  cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-@ENABLE_GTK_DOC_TRUE@  mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@  $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@  rm -f html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@  rm -rf html/xml
-@ENABLE_GTK_DOC_TRUE@  rm -f version.entities
-@ENABLE_GTK_DOC_TRUE@  test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
-@ENABLE_GTK_DOC_TRUE@  @echo '-- Fixing Crossreferences'
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@  touch html-build.stamp
+@ENABLE_GTK_DOC_TRUE@  @mv html/index.sgml html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@  @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+@ENABLE_GTK_DOC_TRUE@  @rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@  @rm -rf html/xml
+@ENABLE_GTK_DOC_TRUE@  @rm -f version.entities
+@ENABLE_GTK_DOC_TRUE@  @test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Fixing cross-references'
+@ENABLE_GTK_DOC_TRUE@  @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@  @touch html-build.stamp
 
 @ENABLE_GTK_DOC_TRUE@clean-local-gtkdoc:
-@ENABLE_GTK_DOC_TRUE@  rm -rf xml tmpl html
+@ENABLE_GTK_DOC_TRUE@  @rm -rf xml tmpl html
 # clean files copied for nonsrcdir templates build
-@ENABLE_GTK_DOC_TRUE@  if test x"$(srcdir)" != x. ; then \
+@ENABLE_GTK_DOC_TRUE@  @if test x"$(srcdir)" != x. ; then \
 @ENABLE_GTK_DOC_TRUE@          rm -rf $(DOC_MODULE).types; \
 @ENABLE_GTK_DOC_TRUE@  fi
 @ENABLE_GTK_DOC_FALSE@all-local:
 @ENABLE_GTK_DOC_FALSE@clean-local-gtkdoc:
 
 clean-local: clean-local-gtkdoc
-       rm -f *~ *.bak
-       rm -rf .libs
+       @rm -f *~ *.bak
+       @rm -rf .libs
 
 distclean-local:
-       rm -f $(REPORT_FILES) \
+       @rm -f $(REPORT_FILES) \
                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-       rm -rf tmpl/*.sgml.bak
-       rm -f $(DOC_MODULE).hierarchy
-       rm -f *.stamp || true
-       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           rm -f $(DOC_MODULE)-docs.sgml ; \
+       @rm -rf tmpl/*.sgml.bak
+       @rm -f $(DOC_MODULE).hierarchy
+       @rm -f *.stamp || true
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(DOC_MAIN_SGML_FILE) ; \
+           rm -f $(DOC_OVERRIDES) ; \
            rm -f $(DOC_MODULE).types ; \
            rm -f $(DOC_MODULE).interfaces ; \
-           rm -f $(DOC_MODULE)-overrides.txt ; \
            rm -f $(DOC_MODULE).prerequisites ; \
            rm -f $(DOC_MODULE)-sections.txt ; \
+           rm -f $(content_files) ; \
            rm -rf tmpl/*.sgml ; \
        fi
-       rm -rf *.o
+       @rm -rf *.o
 
 maintainer-clean-local: clean
-       cd $(srcdir) && rm -rf html \
+       @cd $(srcdir) && rm -rf html \
                xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
 
 # thomas: make docs parallel installable; devhelp requires majorminor too
@@ -920,9 +909,7 @@ install-data-local:
            echo '-- Installing '$$i ; \
            $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
          done; \
-         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \
-         $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \
-           $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \
+         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
          if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
                    $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
                    $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
index b7b61a7..1fc3e83 100644 (file)
@@ -44,6 +44,8 @@
       </para>
       <xi:include href="xml/gstaudio.xml" />
       <xi:include href="xml/gstaudioclock.xml" />
+      <xi:include href="xml/gstaudiodecoder.xml" />
+      <xi:include href="xml/gstaudioencoder.xml" />
       <xi:include href="xml/gstaudiofilter.xml" />
       <xi:include href="xml/gstaudiomixerutils.xml" />
       <xi:include href="xml/gstaudiosink.xml" />
@@ -52,6 +54,7 @@
       <xi:include href="xml/gstbaseaudiosrc.xml" />
       <xi:include href="xml/gstmultichannel.xml" />
       <xi:include href="xml/gstringbuffer.xml" />
+      <xi:include href="xml/gstaudioiec61937.xml" />
     </chapter>
 
     <chapter id="gstreamer-cdda">
       <xi:include href="xml/gsttag.xml" />
       <xi:include href="xml/gsttagvorbis.xml" />
       <xi:include href="xml/gsttagid3.xml" />
+      <xi:include href="xml/gsttagexif.xml" />
       <xi:include href="xml/gsttagxmp.xml" />
+      <xi:include href="xml/gsttagxmpwriter.xml" />
       <xi:include href="xml/gsttagdemux.xml" />
+      <xi:include href="xml/gsttagmux.xml" />
       <xi:include href="xml/gsttaglanguagecodes.xml" />
+      <xi:include href="xml/gsttaglicenses.xml" />
     </chapter>
 
     <chapter id="gstreamer-base-utils">
         flags.
       </para>
       <xi:include href="xml/gstpbutils.xml" />
+      <xi:include href="xml/gstpluginsbaseversion.xml" />
       <xi:include href="xml/gstpbutilscodecutils.xml" />
       <xi:include href="xml/gstpbutilsdescriptions.xml" />
       <xi:include href="xml/gstpbutilsmissingplugins.xml" />
         <filename>-lgstvideo-&GST_MAJORMINOR;</filename> to the library flags.
       </para>
       <xi:include href="xml/gstvideo.xml" />
+      <xi:include href="xml/gstvideooverlaycomposition.xml" />
       <xi:include href="xml/gstvideofilter.xml" />
       <xi:include href="xml/gstvideosink.xml" />
     </chapter>
diff --git a/docs/libs/gst-plugins-base-libs-overrides.txt b/docs/libs/gst-plugins-base-libs-overrides.txt
new file mode 100644 (file)
index 0000000..e69de29
index 41235a0..d8c5b35 100644 (file)
@@ -3,7 +3,6 @@
 <FILE>gstappsrc</FILE>
 <TITLE>appsrc</TITLE>
 <INCLUDE>gst/app/gstappsrc.h</INCLUDE>
-GstAppSrc
 GstAppStreamType
 gst_app_src_set_caps
 gst_app_src_get_caps
@@ -35,7 +34,10 @@ GST_APP_BUFFER_CLASS
 GST_IS_APP_BUFFER
 GST_IS_APP_BUFFER_CLASS
 GST_TYPE_APP_BUFFER
+GST_TYPE_APP_STREAM_TYPE
+gst_app_stream_type_get_type
 <SUBSECTION Private>
+GstAppSrc
 GstAppSrcPrivate
 GstAppBuffer
 GstAppBufferClass
@@ -48,7 +50,6 @@ gst_app_buffer_new
 <FILE>gstappsink</FILE>
 <TITLE>appsink</TITLE>
 <INCLUDE>gst/app/gstappsink.h</INCLUDE>
-GstAppSink
 gst_app_sink_set_caps
 gst_app_sink_get_caps
 gst_app_sink_is_eos
@@ -64,6 +65,7 @@ gst_app_sink_pull_buffer_list
 GstAppSinkCallbacks
 gst_app_sink_set_callbacks
 <SUBSECTION Standard>
+GstAppSink
 GstAppSinkPrivate
 GstAppSinkClass
 GST_APP_SINK
@@ -80,6 +82,42 @@ GST_IS_APP_SINK_CLASS
 <SECTION>
 <FILE>gstaudio</FILE>
 <INCLUDE>gst/audio/audio.h</INCLUDE>
+GstAudioFlags
+GstAudioFormat
+GstAudioFormatFlags
+GstAudioFormatInfo
+GstAudioInfo
+gst_audio_info_init
+gst_audio_info_clear
+gst_audio_info_copy
+gst_audio_info_free
+gst_audio_info_from_caps
+gst_audio_info_to_caps
+gst_audio_info_convert
+gst_audio_format_get_info
+GST_AUDIO_FORMAT_INFO_DEPTH
+GST_AUDIO_FORMAT_INFO_ENDIANNESS
+GST_AUDIO_FORMAT_INFO_FLAGS
+GST_AUDIO_FORMAT_INFO_FORMAT
+GST_AUDIO_FORMAT_INFO_IS_FLOAT
+GST_AUDIO_FORMAT_INFO_IS_INTEGER
+GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN
+GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN
+GST_AUDIO_FORMAT_INFO_IS_SIGNED
+GST_AUDIO_FORMAT_INFO_NAME
+GST_AUDIO_FORMAT_INFO_WIDTH
+GST_AUDIO_INFO_BPF
+GST_AUDIO_INFO_BPS
+GST_AUDIO_INFO_CHANNELS
+GST_AUDIO_INFO_DEPTH
+GST_AUDIO_INFO_FLAGS
+GST_AUDIO_INFO_FORMAT
+GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS
+GST_AUDIO_INFO_NAME
+GST_AUDIO_INFO_POSITION
+GST_AUDIO_INFO_RATE
+GST_AUDIO_INFO_WIDTH
+
 GstAudioFieldFlag
 GST_FRAMES_TO_CLOCK_TIME
 GST_CLOCK_TIME_TO_FRAMES
@@ -99,6 +137,8 @@ GST_TYPE_BUFFER_FORMAT
 GST_TYPE_BUFFER_FORMAT_TYPE
 gst_buffer_format_get_type
 gst_buffer_format_type_get_type
+<SUBSECTION Private>
+_GST_AUDIO_FORMAT_NE
 </SECTION>
 
 <SECTION>
@@ -124,6 +164,96 @@ GST_AUDIO_CLOCK_CAST
 </SECTION>
 
 <SECTION>
+<FILE>gstaudiodecoder</FILE>
+<INCLUDE>gst/audio/gstaudiodecoder.h</INCLUDE>
+GstAudioDecoder
+GstAudioDecoderClass
+GST_AUDIO_DECODER_ERROR
+GST_AUDIO_DECODER_SINK_NAME
+GST_AUDIO_DECODER_SINK_PAD
+GST_AUDIO_DECODER_SRC_NAME
+GST_AUDIO_DECODER_SRC_PAD
+gst_audio_decoder_finish_frame
+gst_audio_decoder_get_audio_info
+gst_audio_decoder_get_byte_time
+gst_audio_decoder_get_delay
+gst_audio_decoder_get_drainable
+gst_audio_decoder_get_latency
+gst_audio_decoder_get_max_errors
+gst_audio_decoder_get_min_latency
+gst_audio_decoder_get_needs_format
+gst_audio_decoder_get_parse_state
+gst_audio_decoder_get_plc
+gst_audio_decoder_get_plc_aware
+gst_audio_decoder_get_tolerance
+gst_audio_decoder_set_byte_time
+gst_audio_decoder_set_drainable
+gst_audio_decoder_set_latency
+gst_audio_decoder_set_max_errors
+gst_audio_decoder_set_min_latency
+gst_audio_decoder_set_needs_format
+gst_audio_decoder_set_plc
+gst_audio_decoder_set_plc_aware
+gst_audio_decoder_set_tolerance
+<SUBSECTION Standard>
+GST_AUDIO_DECODER
+GST_IS_AUDIO_DECODER
+GST_TYPE_AUDIO_DECODER
+gst_audio_decoder_get_type
+GST_AUDIO_DECODER_CLASS
+GST_IS_AUDIO_DECODER_CLASS
+GST_AUDIO_DECODER_GET_CLASS
+GstAudioDecoderPrivate
+</SECTION>
+
+<SECTION>
+<FILE>gstaudioencoder</FILE>
+<INCLUDE>gst/audio/gstaudioencoder.h</INCLUDE>
+GstAudioEncoder
+GstAudioEncoderClass
+GST_AUDIO_ENCODER_SEGMENT
+GST_AUDIO_ENCODER_SINK_NAME
+GST_AUDIO_ENCODER_SINK_PAD
+GST_AUDIO_ENCODER_SRC_NAME
+GST_AUDIO_ENCODER_SRC_PAD
+gst_audio_encoder_finish_frame
+gst_audio_encoder_get_audio_info
+gst_audio_encoder_get_drainable
+gst_audio_encoder_get_frame_max
+gst_audio_encoder_get_frame_samples_min
+gst_audio_encoder_get_frame_samples_max
+gst_audio_encoder_get_hard_min
+gst_audio_encoder_get_hard_resync
+gst_audio_encoder_get_latency
+gst_audio_encoder_get_lookahead
+gst_audio_encoder_get_mark_granule
+gst_audio_encoder_get_perfect_timestamp
+gst_audio_encoder_get_tolerance
+gst_audio_encoder_proxy_getcaps
+gst_audio_encoder_set_drainable
+gst_audio_encoder_set_frame_max
+gst_audio_encoder_set_frame_samples_min
+gst_audio_encoder_set_frame_samples_max
+gst_audio_encoder_set_hard_min
+gst_audio_encoder_set_hard_resync
+gst_audio_encoder_set_latency
+gst_audio_encoder_set_lookahead
+gst_audio_encoder_set_mark_granule
+gst_audio_encoder_set_perfect_timestamp
+gst_audio_encoder_set_tolerance
+<SUBSECTION Standard>
+GST_AUDIO_ENCODER
+GST_AUDIO_ENCODER_CAST
+GST_IS_AUDIO_ENCODER
+GST_TYPE_AUDIO_ENCODER
+gst_audio_encoder_get_type
+GST_AUDIO_ENCODER_CLASS
+GST_IS_AUDIO_ENCODER_CLASS
+GST_AUDIO_ENCODER_GET_CLASS
+GstAudioEncoderPrivate
+</SECTION>
+
+<SECTION>
 <FILE>gstaudiofilter</FILE>
 <INCLUDE>gst/audio/gstaudiofilter.h</INCLUDE>
 GstAudioFilter
@@ -317,6 +447,13 @@ gst_ring_buffer_debug_spec_buff
 gst_ring_buffer_debug_spec_caps
 </SECTION>
 
+<SECTION>
+<FILE>gstaudioiec61937</FILE>
+<INCLUDE>gst/audio/gstaudioiec61937.h</INCLUDE>
+gst_audio_iec61937_frame_size
+gst_audio_iec61937_payload
+</SECTION>
+
 
 # cdda
 
@@ -457,6 +594,8 @@ KISS_FFT_F64_SIN
 <INCLUDE>gst/floatcast/floatcast.h</INCLUDE>
 gst_cast_double
 gst_cast_float
+<SUBSECTION Standard>
+inline
 </SECTION>
 
 
@@ -852,6 +991,22 @@ gst_netbuffer_get_type
 <SECTION>
 <FILE>gstriff</FILE>
 <INCLUDE>gst/riff/riff-media.h</INCLUDE>
+gst_riff_create_audio_caps
+gst_riff_create_audio_template_caps
+gst_riff_create_iavs_caps
+gst_riff_create_iavs_template_caps
+gst_riff_create_video_caps
+gst_riff_create_video_template_caps
+gst_riff_init
+gst_riff_parse_chunk
+gst_riff_parse_file_header
+gst_riff_parse_info
+gst_riff_parse_strf_auds
+gst_riff_parse_strf_iavs
+gst_riff_parse_strf_vids
+gst_riff_parse_strh
+gst_riff_read_chunk
+<SUBSECTION Standard>
 GST_RIFF_00
 GST_RIFF_0021
 GST_RIFF_0031
@@ -1036,28 +1191,12 @@ GST_RIFF_yuy2
 GST_RIFF_yv12
 
 gst_riff_acid
-gst_riff_create_audio_caps
-gst_riff_create_audio_template_caps
-gst_riff_create_iavs_caps
-gst_riff_create_iavs_template_caps
-gst_riff_create_video_caps
-gst_riff_create_video_template_caps
 gst_riff_dmlh
 gst_riff_index_entry
-gst_riff_init
-gst_riff_parse_chunk
-gst_riff_parse_file_header
-gst_riff_parse_info
-gst_riff_parse_strf_auds
-gst_riff_parse_strf_iavs
-gst_riff_parse_strf_vids
-gst_riff_parse_strh
-gst_riff_read_chunk
 gst_riff_strf_auds
 gst_riff_strf_iavs
 gst_riff_strf_vids
 gst_riff_strh
-<SUBSECTION Standard>
 </SECTION>
 
 
@@ -1385,6 +1524,7 @@ gst_rtp_buffer_list_add_extension_twobytes_header
 <FILE>gstrtspdefs</FILE>
 <INCLUDE>gst/rtsp/gstrtspdefs.h</INCLUDE>
 GST_RTSP_CHECK
+GST_RTSP_AUTH_MAX
 GstRTSPEvent
 GstRTSPResult
 GstRTSPFamily
@@ -1392,7 +1532,6 @@ GstRTSPState
 GstRTSPVersion
 GstRTSPMethod
 GstRTSPAuthMethod
-GST_RTSP_AUTH_MAX
 GstRTSPHeaderField
 GstRTSPStatusCode
 gst_rtsp_strresult
@@ -1732,8 +1871,10 @@ GST_TAG_CAPTURING_FLASH_FIRED
 GST_TAG_CAPTURING_FLASH_MODE
 GST_TAG_CAPTURING_METERING_MODE
 GST_TAG_CAPTURING_SOURCE
+GST_TAG_CAPTURING_EXPOSURE_COMPENSATION
 GST_TAG_IMAGE_HORIZONTAL_PPI
 GST_TAG_IMAGE_VERTICAL_PPI
+GST_TAG_ID3V2_HEADER_SIZE
 gst_tag_register_musicbrainz_tags
 gst_tag_freeform_string_to_utf8
 gst_tag_parse_extended_comment
@@ -1772,6 +1913,8 @@ gst_tag_from_id3_tag
 gst_tag_from_id3_user_tag
 gst_tag_to_id3_tag
 gst_tag_list_add_id3_image
+gst_tag_get_id3v2_tag_size
+gst_tag_list_from_id3v2_tag
 </SECTION>
 
 <SECTION>
@@ -1779,6 +1922,8 @@ gst_tag_list_add_id3_image
 <INCLUDE>gst/tag/tag.h</INCLUDE>
 gst_tag_list_from_xmp_buffer
 gst_tag_list_to_xmp_buffer
+gst_tag_list_to_xmp_buffer_full
+gst_tag_xmp_list_schemas
 <SUBSECTION Standard>
 </SECTION>
 
@@ -1811,9 +1956,23 @@ gst_tag_demux_result_get_type
 </SECTION>
 
 <SECTION>
+<FILE>gsttagmux</FILE>
+<INCLUDE>gst/tag/gsttagmux.h</INCLUDE>
+GstTagMux
+GstTagMuxClass
+<SUBSECTION Standard>
+GstTagMuxPrivate
+GST_IS_TAG_MUX
+GST_IS_TAG_MUX_CLASS
+GST_TAG_MUX
+GST_TAG_MUX_CLASS
+GST_TYPE_TAG_MUX
+gst_tag_mux_get_type
+</SECTION>
+
+<SECTION>
 <FILE>gsttaglanguagecodes</FILE>
 <INCLUDE>gst/tag/tag.h</INCLUDE>
-<SUBSECTION>
 gst_tag_get_language_codes
 gst_tag_get_language_name
 gst_tag_get_language_code
@@ -1822,6 +1981,41 @@ gst_tag_get_language_code_iso_639_2B
 gst_tag_get_language_code_iso_639_2T
 </SECTION>
 
+<SECTION>
+<FILE>gsttaglicenses</FILE>
+<INCLUDE>gst/tag/tag.h</INCLUDE>
+GstTagLicenseFlags
+gst_tag_get_license_flags
+gst_tag_get_license_nick
+gst_tag_get_license_title
+gst_tag_get_license_description
+gst_tag_get_license_jurisdiction
+gst_tag_get_license_version
+gst_tag_get_licenses
+<SUBSECTION Standard>
+gst_tag_license_flags_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gsttagxmpwriter</FILE>
+gst_tag_xmp_writer_add_all_schemas
+gst_tag_xmp_writer_add_schema
+gst_tag_xmp_writer_has_schema
+gst_tag_xmp_writer_remove_schema
+gst_tag_xmp_writer_remove_all_schemas
+gst_tag_xmp_writer_tag_list_to_xmp_buffer
+<SUBSECTION Standard>
+GstTagXmpWriter
+GstTagXmpWriterInterface
+GST_TYPE_TAG_XMP_WRITER
+GST_TAG_XMP_WRITER
+GST_TAG_XMP_WRITER_INTERFACE
+GST_IS_TAG_XMP_WRITER
+GST_IS_TAG_XMP_WRITER_INTERFACE
+GST_TAG_XMP_WRITER_GET_INTERFACE
+gst_tag_xmp_writer_get_type
+</SECTION>
+
 # base utils
 
 <SECTION>
@@ -1829,6 +2023,11 @@ gst_tag_get_language_code_iso_639_2T
 <INCLUDE>gst/pbutils/pbutils.h</INCLUDE>
 <SUBSECTION>
 gst_pb_utils_init
+</SECTION>
+
+<SECTION>
+<FILE>gstpluginsbaseversion</FILE>
+<INCLUDE>gst/pbutils/gstpluginsbaseversion.h</INCLUDE>
 <SUBSECTION>
 GST_PLUGINS_BASE_VERSION_MAJOR
 GST_PLUGINS_BASE_VERSION_MINOR
@@ -1909,6 +2108,7 @@ gst_codec_utils_aac_caps_set_level_and_profile
 gst_codec_utils_h264_get_profile
 gst_codec_utils_h264_get_level
 gst_codec_utils_h264_caps_set_level_and_profile
+gst_codec_utils_h264_get_level_idc
 <SUBSECTION>
 gst_codec_utils_mpeg4video_get_profile
 gst_codec_utils_mpeg4video_get_level
@@ -1922,6 +2122,7 @@ GstEncodingProfile
 gst_encoding_profile_unref
 gst_encoding_profile_ref
 gst_encoding_profile_find
+gst_encoding_profile_from_discoverer
 gst_encoding_profile_get_name
 gst_encoding_profile_get_description
 gst_encoding_profile_get_format
@@ -2047,6 +2248,20 @@ GST_VIDEO_CAPS_BGR_16
 GST_VIDEO_CAPS_RGB8_PALETTED
 GST_VIDEO_CAPS_GRAY8
 GST_VIDEO_CAPS_GRAY16
+GST_VIDEO_CAPS_ARGB_64
+GST_VIDEO_CAPS_r210
+GST_VIDEO_COMP1_MASK_15
+GST_VIDEO_COMP1_MASK_15_INT
+GST_VIDEO_COMP1_MASK_16
+GST_VIDEO_COMP1_MASK_16_INT
+GST_VIDEO_COMP2_MASK_15
+GST_VIDEO_COMP2_MASK_15_INT
+GST_VIDEO_COMP2_MASK_16
+GST_VIDEO_COMP2_MASK_16_INT
+GST_VIDEO_COMP3_MASK_15
+GST_VIDEO_COMP3_MASK_15_INT
+GST_VIDEO_COMP3_MASK_16
+GST_VIDEO_COMP3_MASK_16_INT
 GST_VIDEO_FPS_RANGE
 GST_VIDEO_GREEN_MASK_15
 GST_VIDEO_GREEN_MASK_15_INT
@@ -2060,16 +2275,20 @@ GST_VIDEO_SIZE_RANGE
 GST_VIDEO_BUFFER_TFF
 GST_VIDEO_BUFFER_RFF
 GST_VIDEO_BUFFER_ONEFIELD
+GST_VIDEO_BUFFER_PROGRESSIVE
 GstVideoFormat
 gst_video_calculate_display_ratio
 gst_video_frame_rate
 gst_video_get_size
+gst_video_get_size_from_caps
 gst_video_format_convert
 gst_video_format_new_caps
 gst_video_format_new_caps_interlaced
+gst_video_format_new_template_caps
 gst_video_format_get_component_height
 gst_video_format_get_component_offset
 gst_video_format_get_component_width
+gst_video_format_get_component_depth
 gst_video_format_get_pixel_stride
 gst_video_format_get_row_stride
 gst_video_format_get_size
@@ -2091,12 +2310,67 @@ gst_video_convert_frame
 gst_video_convert_frame_async
 gst_video_event_new_still_frame
 gst_video_event_parse_still_frame
+gst_video_event_new_upstream_force_key_unit
+gst_video_event_new_downstream_force_key_unit
+gst_video_event_is_force_key_unit
+gst_video_event_parse_upstream_force_key_unit
+gst_video_event_parse_downstream_force_key_unit
 <SUBSECTION Standard>
 gst_video_format_get_type
 GST_TYPE_VIDEO_FORMAT
 </SECTION>
 
 <SECTION>
+<FILE>gstvideooverlaycomposition</FILE>
+<INCLUDE>gst/video/video-overlay-composition.h</INCLUDE>
+<SUBSECTION composition>
+GstVideoOverlayComposition
+GstVideoOverlayCompositionClass
+gst_video_overlay_composition_new
+gst_video_overlay_composition_ref
+gst_video_overlay_composition_unref
+gst_video_overlay_composition_add_rectangle
+gst_video_overlay_composition_n_rectangles
+gst_video_overlay_composition_get_rectangle
+gst_video_overlay_composition_get_seqnum
+gst_video_overlay_composition_copy
+gst_video_overlay_composition_make_writable
+gst_video_overlay_composition_blend
+<SUBSECTION composition-set-get>
+gst_video_buffer_get_overlay_composition
+gst_video_buffer_set_overlay_composition
+<SUBSECTION rectangle>
+GstVideoOverlayFormatFlags
+GstVideoOverlayRectangle
+GstVideoOverlayRectangleClass
+gst_video_overlay_rectangle_new_argb
+gst_video_overlay_rectangle_ref
+gst_video_overlay_rectangle_unref
+gst_video_overlay_rectangle_get_pixels_argb
+gst_video_overlay_rectangle_get_pixels_unscaled_argb
+gst_video_overlay_rectangle_get_render_rectangle
+gst_video_overlay_rectangle_get_seqnum
+gst_video_overlay_rectangle_set_render_rectangle
+gst_video_overlay_rectangle_copy
+<SUBSECTION Standard>
+GST_TYPE_VIDEO_OVERLAY_COMPOSITION
+GST_VIDEO_OVERLAY_COMPOSITION
+GST_VIDEO_OVERLAY_COMPOSITION_CLASS
+GST_VIDEO_OVERLAY_COMPOSITION_GET_CLASS
+GST_IS_VIDEO_OVERLAY_COMPOSITION
+GST_IS_VIDEO_VIDEO_OVERLAY_COMPOSITION_CLASS
+gst_video_overlay_composition_get_type
+
+GST_TYPE_VIDEO_OVERLAY_RECTANGLE
+GST_VIDEO_OVERLAY_RECTANGLE
+GST_VIDEO_OVERLAY_RECTANGLE_CLASS
+GST_VIDEO_OVERLAY_RECTANGLE_GET_CLASS
+GST_IS_VIDEO_OVERLAY_RECTANGLE
+GST_IS_VIDEO_VIDEO_OVERLAY_RECTANGLE_CLASS
+gst_video_overlay_rectangle_get_type
+</SECTION>
+
+<SECTION>
 <FILE>gstvideofilter</FILE>
 <INCLUDE>gst/video/gstvideofilter.h</INCLUDE>
 GstVideoFilter
@@ -2161,6 +2435,7 @@ GstDiscovererStreamInfo
 GstDiscovererContainerInfo
 GstDiscovererAudioInfo
 GstDiscovererVideoInfo
+GstDiscovererSubtitleInfo
 gst_discoverer_stream_info_get_caps
 gst_discoverer_stream_info_get_misc
 gst_discoverer_stream_info_get_next
@@ -2173,13 +2448,16 @@ gst_discoverer_stream_info_get_stream_type_nick
 gst_discoverer_info_get_audio_streams
 gst_discoverer_info_get_container_streams
 gst_discoverer_info_get_streams
+gst_discoverer_info_get_subtitle_streams
 gst_discoverer_info_get_video_streams
 gst_discoverer_audio_info_get_bitrate
 gst_discoverer_audio_info_get_channels
 gst_discoverer_audio_info_get_depth
+gst_discoverer_audio_info_get_language
 gst_discoverer_audio_info_get_max_bitrate
 gst_discoverer_audio_info_get_sample_rate
 gst_discoverer_container_info_get_streams
+gst_discoverer_subtitle_info_get_language
 gst_discoverer_video_info_get_bitrate
 gst_discoverer_video_info_get_depth
 gst_discoverer_video_info_get_framerate_denom
@@ -2199,6 +2477,7 @@ GST_DISCOVERER_CONTAINER_INFO
 GST_DISCOVERER_INFO
 GST_DISCOVERER_STREAM_INFO
 GST_DISCOVERER_VIDEO_INFO
+GST_DISCOVERER_SUBTITLE_INFO
 GST_IS_DISCOVERER
 GST_IS_DISCOVERER_INFO
 GST_IS_DISCOVERER_AUDIO_INFO
@@ -2206,6 +2485,7 @@ GST_IS_DISCOVERER_CLASS
 GST_IS_DISCOVERER_CONTAINER_INFO
 GST_IS_DISCOVERER_STREAM_INFO
 GST_IS_DISCOVERER_VIDEO_INFO
+GST_IS_DISCOVERER_SUBTITLE_INFO
 GST_TYPE_DISCOVERER
 GST_TYPE_DISCOVERER_AUDIO_INFO
 GST_TYPE_DISCOVERER_CONTAINER_INFO
@@ -2213,12 +2493,14 @@ GST_TYPE_DISCOVERER_INFO
 GST_TYPE_DISCOVERER_RESULT
 GST_TYPE_DISCOVERER_STREAM_INFO
 GST_TYPE_DISCOVERER_VIDEO_INFO
+GST_TYPE_DISCOVERER_SUBTITLE_INFO
 GstDiscovererAudioInfoClass
 GstDiscovererClass
 GstDiscovererContainerInfoClass
 GstDiscovererPrivate
 GstDiscovererStreamInfoClass
 GstDiscovererVideoInfoClass
+GstDiscovererSubtitleInfoClass
 GstDiscovererInfoClass
 gst_discoverer_audio_info_get_type
 gst_discoverer_container_info_get_type
@@ -2227,6 +2509,7 @@ gst_discoverer_info_get_type
 gst_discoverer_info_copy
 gst_discoverer_result_get_type
 gst_discoverer_stream_info_get_type
+gst_discoverer_subtitle_info_get_type
 gst_discoverer_video_info_get_type
 </SECTION>
 
index f6c06af..991a975 100644 (file)
@@ -3,6 +3,10 @@
 
 #include <gst/audio/gstaudioclock.h>
 gst_audio_clock_get_type
+#include <gst/audio/gstaudiodecoder.h>
+gst_audio_decoder_get_type
+#include <gst/audio/gstaudioencoder.h>
+gst_audio_encoder_get_type
 #include <gst/audio/gstaudiofilter.h>
 gst_audio_filter_get_type
 #include <gst/audio/gstaudiosink.h>
index 49cdeb0..a05983b 100644 (file)
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <tr><td colspan="5" class="shortcuts">
 <a class="shortcut" href="#glsO">O</a>
                       | 
-                   <a class="shortcut" href="#glsA">A</a>
-                      | 
                    <a class="shortcut" href="#glsS">S</a>
                       | 
+                   <a class="shortcut" href="#glsA">A</a>
+                      | 
                    <a class="shortcut" href="#glsC">C</a>
                       | 
                    <a class="shortcut" href="#glsT">T</a>
 <dt>
 <a name="annotation-glossterm-out"></a>out</dt>
 <dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
-<dd><p>NULL is ok, both for passing and for returning.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
 <dt>
 <a name="annotation-glossterm-scope%20async"></a>scope async</dt>
 <dd><p>The callback is valid until first called.</p></dd>
+<a name="glsA"></a><h3 class="title">A</h3>
+<dt>
+<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
+<dd><p>NULL is ok, both for passing and for returning.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
 <dt>
 <a name="annotation-glossterm-closure"></a>closure</dt>
@@ -72,6 +72,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index dd6dc0a..8618281 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="prev" href="api-index-full.html" title="Index">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5183a6d..1fd2b8d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="prev" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
 <link rel="next" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <a name="api-index-full"></a>Index</h2></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink">GstAppSink</a>, struct in <a class="link" href="gst-plugins-base-libs-appsink.html" title="appsink">appsink</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks">GstAppSinkCallbacks</a>, struct in <a class="link" href="gst-plugins-base-libs-appsink.html" title="appsink">appsink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc">GstAppSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks">GstAppSrcCallbacks</a>, struct in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" title="enum GstAudioFieldFlag">GstAudioFieldFlag</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct" title="struct GstAudioDecoder">GstAudioDecoder</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct" title="struct GstAudioFilter">GstAudioFilter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency" title='The "min-latency" property'>GstAudioDecoder:min-latency</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass">GstAudioFilterClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc" title='The "plc" property'>GstAudioDecoder:plc</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()">GstAudioMixerFilterFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title='The "tolerance" property'>GstAudioDecoder:tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct" title="struct GstAudioSink">GstAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass" title="struct GstAudioDecoderClass">GstAudioDecoderClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass" title="struct GstAudioSinkClass">GstAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct" title="struct GstAudioEncoder">GstAudioEncoder</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct" title="struct GstAudioSrc">GstAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title='The "hard-resync" property'>GstAudioEncoder:hard-resync</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass" title="struct GstAudioSrcClass">GstAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule" title='The "mark-granule" property'>GstAudioEncoder:mark-granule</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" title="gst_audio_buffer_clip ()">gst_audio_buffer_clip</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title='The "perfect-timestamp" property'>GstAudioEncoder:perfect-timestamp</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" title="gst_audio_check_channel_positions ()">gst_audio_check_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title='The "tolerance" property'>GstAudioEncoder:tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust" title="gst_audio_clock_adjust ()">gst_audio_clock_adjust</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass" title="struct GstAudioEncoderClass">GstAudioEncoderClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time" title="gst_audio_clock_get_time ()">gst_audio_clock_get_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" title="enum GstAudioFieldFlag">GstAudioFieldFlag</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate" title="gst_audio_clock_invalidate ()">gst_audio_clock_invalidate</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct" title="struct GstAudioFilter">GstAudioFilter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new" title="gst_audio_clock_new ()">gst_audio_clock_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass">GstAudioFilterClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new-full" title="gst_audio_clock_new_full ()">gst_audio_clock_new_full</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags">GstAudioFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset" title="gst_audio_clock_reset ()">gst_audio_clock_reset</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat">GstAudioFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()">gst_audio_default_registry_mixer_filter</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags">GstAudioFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo">GstAudioFormatInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-duration-from-pad-buffer" title="gst_audio_duration_from_pad_buffer ()">gst_audio_duration_from_pad_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo">GstAudioInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" title="gst_audio_filter_class_add_pad_templates ()">gst_audio_filter_class_add_pad_templates</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()">GstAudioMixerFilterFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions" title="gst_audio_fixate_channel_positions ()">gst_audio_fixate_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct" title="struct GstAudioSink">GstAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass" title="struct GstAudioSinkClass">GstAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct" title="struct GstAudioSrc">GstAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-byte-size" title="gst_audio_frame_byte_size ()">gst_audio_frame_byte_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass" title="struct GstAudioSrcClass">GstAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-length" title="gst_audio_frame_length ()">gst_audio_frame_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" title="gst_audio_buffer_clip ()">gst_audio_buffer_clip</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions" title="gst_audio_get_channel_positions ()">gst_audio_get_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" title="gst_audio_check_channel_positions ()">gst_audio_check_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust" title="gst_audio_clock_adjust ()">gst_audio_clock_adjust</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time" title="gst_audio_clock_get_time ()">gst_audio_clock_get_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-is-buffer-framed" title="gst_audio_is_buffer_framed ()">gst_audio_is_buffer_framed</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate" title="gst_audio_clock_invalidate ()">gst_audio_clock_invalidate</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list" title="gst_audio_set_caps_channel_positions_list ()">gst_audio_set_caps_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new" title="gst_audio_clock_new ()">gst_audio_clock_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions" title="gst_audio_set_channel_positions ()">gst_audio_set_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new-full" title="gst_audio_clock_new_full ()">gst_audio_clock_new_full</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list" title="gst_audio_set_structure_channel_positions_list ()">gst_audio_set_structure_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset" title="gst_audio_clock_reset ()">gst_audio_clock_reset</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-structure-set-int" title="gst_audio_structure_set_int ()">gst_audio_structure_set_int</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS" title="GST_AUDIO_DECODER_ERROR()">GST_AUDIO_DECODER_ERROR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
-<a name="idxB"></a><h3 class="title">B</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink-struct" title="struct GstBaseAudioSink">GstBaseAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()">gst_audio_decoder_finish_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>GstBaseAudioSink:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info" title="gst_audio_decoder_get_audio_info ()">gst_audio_decoder_get_audio_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull" title='The "can-activate-pull" property'>GstBaseAudioSink:can-activate-pull</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time" title="gst_audio_decoder_get_byte_time ()">gst_audio_decoder_get_byte_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>GstBaseAudioSink:drift-tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" title="gst_audio_decoder_get_delay ()">gst_audio_decoder_get_delay</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>GstBaseAudioSink:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" title="gst_audio_decoder_get_drainable ()">gst_audio_decoder_get_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock" title='The "provide-clock" property'>GstBaseAudioSink:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency" title="gst_audio_decoder_get_latency ()">gst_audio_decoder_get_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method" title='The "slave-method" property'>GstBaseAudioSink:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" title="gst_audio_decoder_get_max_errors ()">gst_audio_decoder_get_max_errors</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass" title="struct GstBaseAudioSinkClass">GstBaseAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency" title="gst_audio_decoder_get_min_latency ()">gst_audio_decoder_get_min_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod">GstBaseAudioSinkSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" title="gst_audio_decoder_get_needs_format ()">gst_audio_decoder_get_needs_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc-struct" title="struct GstBaseAudioSrc">GstBaseAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state" title="gst_audio_decoder_get_parse_state ()">gst_audio_decoder_get_parse_state</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>GstBaseAudioSrc:actual-buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" title="gst_audio_decoder_get_plc ()">gst_audio_decoder_get_plc</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>GstBaseAudioSrc:actual-latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" title="gst_audio_decoder_get_plc_aware ()">gst_audio_decoder_get_plc_aware</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>GstBaseAudioSrc:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance" title="gst_audio_decoder_get_tolerance ()">gst_audio_decoder_get_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>GstBaseAudioSrc:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time" title="gst_audio_decoder_set_byte_time ()">gst_audio_decoder_set_byte_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock" title='The "provide-clock" property'>GstBaseAudioSrc:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable" title="gst_audio_decoder_set_drainable ()">gst_audio_decoder_set_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method" title='The "slave-method" property'>GstBaseAudioSrc:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency" title="gst_audio_decoder_set_latency ()">gst_audio_decoder_set_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcClass" title="struct GstBaseAudioSrcClass">GstBaseAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors" title="gst_audio_decoder_set_max_errors ()">gst_audio_decoder_set_max_errors</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod">GstBaseAudioSrcSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency" title="gst_audio_decoder_set_min_latency ()">gst_audio_decoder_set_min_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct" title="struct GstBaseRTPAudioPayload">GstBaseRTPAudioPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format" title="gst_audio_decoder_set_needs_format ()">gst_audio_decoder_set_needs_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list" title='The "buffer-list" property'>GstBaseRTPAudioPayload:buffer-list</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc" title="gst_audio_decoder_set_plc ()">gst_audio_decoder_set_plc</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass" title="struct GstBaseRTPAudioPayloadClass">GstBaseRTPAudioPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware" title="gst_audio_decoder_set_plc_aware ()">gst_audio_decoder_set_plc_aware</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct" title="struct GstBaseRTPDepayload">GstBaseRTPDepayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance" title="gst_audio_decoder_set_tolerance ()">gst_audio_decoder_set_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay" title='The "queue-delay" property'>GstBaseRTPDepayload:queue-delay</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS" title="GST_AUDIO_DECODER_SINK_NAME">GST_AUDIO_DECODER_SINK_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass" title="struct GstBaseRTPDepayloadClass">GstBaseRTPDepayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS" title="GST_AUDIO_DECODER_SINK_PAD()">GST_AUDIO_DECODER_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct" title="struct GstBaseRTPPayload">GstBaseRTPPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS" title="GST_AUDIO_DECODER_SRC_NAME">GST_AUDIO_DECODER_SRC_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>GstBaseRTPPayload:max-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS" title="GST_AUDIO_DECODER_SRC_PAD()">GST_AUDIO_DECODER_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>GstBaseRTPPayload:min-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()">gst_audio_default_registry_mixer_filter</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu" title='The "mtu" property'>GstBaseRTPPayload:mtu</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime" title='The "perfect-rtptime" property'>GstBaseRTPPayload:perfect-rtptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-duration-from-pad-buffer" title="gst_audio_duration_from_pad_buffer ()">gst_audio_duration_from_pad_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt" title='The "pt" property'>GstBaseRTPPayload:pt</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()">gst_audio_encoder_finish_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>GstBaseRTPPayload:ptime-multiple</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info" title="gst_audio_encoder_get_audio_info ()">gst_audio_encoder_get_audio_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum" title='The "seqnum" property'>GstBaseRTPPayload:seqnum</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" title="gst_audio_encoder_get_drainable ()">gst_audio_encoder_get_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset" title='The "seqnum-offset" property'>GstBaseRTPPayload:seqnum-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" title="gst_audio_encoder_get_frame_max ()">gst_audio_encoder_get_frame_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc" title='The "ssrc" property'>GstBaseRTPPayload:ssrc</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max" title="gst_audio_encoder_get_frame_samples_max ()">gst_audio_encoder_get_frame_samples_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp" title='The "timestamp" property'>GstBaseRTPPayload:timestamp</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" title="gst_audio_encoder_get_frame_samples_min ()">gst_audio_encoder_get_frame_samples_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset" title='The "timestamp-offset" property'>GstBaseRTPPayload:timestamp-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" title="gst_audio_encoder_get_hard_min ()">gst_audio_encoder_get_hard_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass" title="struct GstBaseRTPPayloadClass">GstBaseRTPPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync" title="gst_audio_encoder_get_hard_resync ()">gst_audio_encoder_get_hard_resync</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-is-filled" title="gst_basertppayload_is_filled ()">gst_basertppayload_is_filled</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency" title="gst_audio_encoder_get_latency ()">gst_audio_encoder_get_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push" title="gst_basertppayload_push ()">gst_basertppayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead" title="gst_audio_encoder_get_lookahead ()">gst_audio_encoder_get_lookahead</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push-list" title="gst_basertppayload_push_list ()">gst_basertppayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" title="gst_audio_encoder_get_mark_granule ()">gst_audio_encoder_get_mark_granule</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-options" title="gst_basertppayload_set_options ()">gst_basertppayload_set_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" title="gst_audio_encoder_get_perfect_timestamp ()">gst_audio_encoder_get_perfect_timestamp</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps" title="gst_basertppayload_set_outcaps ()">gst_basertppayload_set_outcaps</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance" title="gst_audio_encoder_get_tolerance ()">gst_audio_encoder_get_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-CLOCK:CAPS" title="GST_BASE_AUDIO_SINK_CLOCK()">GST_BASE_AUDIO_SINK_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" title="gst_audio_encoder_proxy_getcaps ()">gst_audio_encoder_proxy_getcaps</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-create-ringbuffer" title="gst_base_audio_sink_create_ringbuffer ()">gst_base_audio_sink_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS" title="GST_AUDIO_ENCODER_SEGMENT()">GST_AUDIO_ENCODER_SEGMENT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable" title="gst_audio_encoder_set_drainable ()">gst_audio_encoder_set_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-provide-clock" title="gst_base_audio_sink_get_provide_clock ()">gst_base_audio_sink_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max" title="gst_audio_encoder_set_frame_max ()">gst_audio_encoder_set_frame_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()">gst_audio_encoder_set_frame_samples_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-PAD:CAPS" title="GST_BASE_AUDIO_SINK_PAD()">GST_BASE_AUDIO_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()">gst_audio_encoder_set_frame_samples_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" title="gst_base_audio_sink_set_drift_tolerance ()">gst_base_audio_sink_set_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min" title="gst_audio_encoder_set_hard_min ()">gst_audio_encoder_set_hard_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-provide-clock" title="gst_base_audio_sink_set_provide_clock ()">gst_base_audio_sink_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync" title="gst_audio_encoder_set_hard_resync ()">gst_audio_encoder_set_hard_resync</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method" title="gst_base_audio_sink_set_slave_method ()">gst_base_audio_sink_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency" title="gst_audio_encoder_set_latency ()">gst_audio_encoder_set_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-CLOCK:CAPS" title="GST_BASE_AUDIO_SRC_CLOCK()">GST_BASE_AUDIO_SRC_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead" title="gst_audio_encoder_set_lookahead ()">gst_audio_encoder_set_lookahead</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-create-ringbuffer" title="gst_base_audio_src_create_ringbuffer ()">gst_base_audio_src_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule" title="gst_audio_encoder_set_mark_granule ()">gst_audio_encoder_set_mark_granule</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock" title="gst_base_audio_src_get_provide_clock ()">gst_base_audio_src_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp" title="gst_audio_encoder_set_perfect_timestamp ()">gst_audio_encoder_set_perfect_timestamp</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance" title="gst_audio_encoder_set_tolerance ()">gst_audio_encoder_set_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-PAD:CAPS" title="GST_BASE_AUDIO_SRC_PAD()">GST_BASE_AUDIO_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" title="GST_AUDIO_ENCODER_SINK_NAME">GST_AUDIO_ENCODER_SINK_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-provide-clock" title="gst_base_audio_src_set_provide_clock ()">gst_base_audio_src_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" title="GST_AUDIO_ENCODER_SINK_PAD()">GST_AUDIO_ENCODER_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method" title="gst_base_audio_src_set_slave_method ()">gst_base_audio_src_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" title="GST_AUDIO_ENCODER_SRC_NAME">GST_AUDIO_ENCODER_SRC_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" title="gst_base_rtp_audio_payload_flush ()">gst_base_rtp_audio_payload_flush</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" title="GST_AUDIO_ENCODER_SRC_PAD()">GST_AUDIO_ENCODER_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter" title="gst_base_rtp_audio_payload_get_adapter ()">gst_base_rtp_audio_payload_get_adapter</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" title="gst_audio_filter_class_add_pad_templates ()">gst_audio_filter_class_add_pad_templates</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push" title="gst_base_rtp_audio_payload_push ()">gst_base_rtp_audio_payload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions" title="gst_audio_fixate_channel_positions ()">gst_audio_fixate_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based" title="gst_base_rtp_audio_payload_set_frame_based ()">gst_base_rtp_audio_payload_set_frame_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-options" title="gst_base_rtp_audio_payload_set_frame_options ()">gst_base_rtp_audio_payload_set_frame_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options" title="gst_base_rtp_audio_payload_set_samplebits_options ()">gst_base_rtp_audio_payload_set_samplebits_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info" title="gst_audio_format_get_info ()">gst_audio_format_get_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based" title="gst_base_rtp_audio_payload_set_sample_based ()">gst_base_rtp_audio_payload_set_sample_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS" title="GST_AUDIO_FORMAT_INFO_DEPTH()">GST_AUDIO_FORMAT_INFO_DEPTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-options" title="gst_base_rtp_audio_payload_set_sample_options ()">gst_base_rtp_audio_payload_set_sample_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS" title="GST_AUDIO_FORMAT_INFO_ENDIANNESS()">GST_AUDIO_FORMAT_INFO_ENDIANNESS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push" title="gst_base_rtp_depayload_push ()">gst_base_rtp_depayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS" title="GST_AUDIO_FORMAT_INFO_FLAGS()">GST_AUDIO_FORMAT_INFO_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" title="gst_base_rtp_depayload_push_list ()">gst_base_rtp_depayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS" title="GST_AUDIO_FORMAT_INFO_FORMAT()">GST_AUDIO_FORMAT_INFO_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts" title="gst_base_rtp_depayload_push_ts ()">gst_base_rtp_depayload_push_ts</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SINKPAD()">GST_BASE_RTP_DEPAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_FLOAT()">GST_AUDIO_FORMAT_INFO_IS_FLOAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SRCPAD()">GST_BASE_RTP_DEPAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_INTEGER()">GST_AUDIO_FORMAT_INFO_IS_INTEGER</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS" title="GST_BASE_RTP_PAYLOAD_MTU()">GST_BASE_RTP_PAYLOAD_MTU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-PT:CAPS" title="GST_BASE_RTP_PAYLOAD_PT()">GST_BASE_RTP_PAYLOAD_PT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_SIGNED()">GST_AUDIO_FORMAT_INFO_IS_SIGNED</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SINKPAD()">GST_BASE_RTP_PAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS" title="GST_AUDIO_FORMAT_INFO_NAME()">GST_AUDIO_FORMAT_INFO_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SRCPAD()">GST_BASE_RTP_PAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS" title="GST_AUDIO_FORMAT_INFO_WIDTH()">GST_AUDIO_FORMAT_INFO_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat" title="enum GstBufferFormat">GstBufferFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-byte-size" title="gst_audio_frame_byte_size ()">gst_audio_frame_byte_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType" title="enum GstBufferFormatType">GstBufferFormatType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-length" title="gst_audio_frame_length ()">gst_audio_frame_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
-<a name="idxC"></a><h3 class="title">C</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double" title="gst_cast_double()">gst_cast_double</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions" title="gst_audio_get_channel_positions ()">gst_audio_get_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float" title="gst_cast_float()">gst_cast_float</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" title="gst_audio_iec61937_frame_size ()">gst_audio_iec61937_frame_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">gstaudioiec61937</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct" title="struct GstCddaBaseSrc">GstCddaBaseSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()">gst_audio_iec61937_payload</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">gstaudioiec61937</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--device" title='The "device" property'>GstCddaBaseSrc:device</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS" title="GST_AUDIO_INFO_BPF()">GST_AUDIO_INFO_BPF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--mode" title='The "mode" property'>GstCddaBaseSrc:mode</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS" title="GST_AUDIO_INFO_BPS()">GST_AUDIO_INFO_BPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--track" title='The "track" property'>GstCddaBaseSrc:track</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS" title="GST_AUDIO_INFO_CHANNELS()">GST_AUDIO_INFO_CHANNELS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass" title="struct GstCddaBaseSrcClass">GstCddaBaseSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear" title="gst_audio_info_clear ()">gst_audio_info_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcMode" title="enum GstCddaBaseSrcMode">GstCddaBaseSrcMode</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert" title="gst_audio_info_convert ()">gst_audio_info_convert</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack" title="struct GstCddaBaseSrcTrack">GstCddaBaseSrcTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()">gst_audio_info_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#gst-cdda-base-src-add-track" title="gst_cdda_base_src_add_track ()">gst_cdda_base_src_add_track</a>, function in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS" title="GST_AUDIO_INFO_DEPTH()">GST_AUDIO_INFO_DEPTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS" title="GST_AUDIO_INFO_FLAGS()">GST_AUDIO_INFO_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS" title="GST_CLOCK_TIME_TO_FRAMES()">GST_CLOCK_TIME_TO_FRAMES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS" title="GST_AUDIO_INFO_FORMAT()">GST_AUDIO_INFO_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()">gst_audio_info_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()">gst_audio_info_from_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS" title="GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()">GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()">gst_audio_info_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS" title="GST_AUDIO_INFO_NAME()">GST_AUDIO_INFO_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS" title="GST_AUDIO_INFO_POSITION()">GST_AUDIO_INFO_POSITION</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS" title="GST_AUDIO_INFO_RATE()">GST_AUDIO_INFO_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" title="gst_audio_info_to_caps ()">gst_audio_info_to_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS" title="GST_AUDIO_INFO_WIDTH()">GST_AUDIO_INFO_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct" title="GstColorBalance">GstColorBalance</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed" title='The "value-changed" signal'>GstColorBalance::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-is-buffer-framed" title="gst_audio_is_buffer_framed ()">gst_audio_is_buffer_framed</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct" title="struct GstColorBalanceChannel">GstColorBalanceChannel</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list" title="gst_audio_set_caps_channel_positions_list ()">gst_audio_set_caps_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title='The "value-changed" signal'>GstColorBalanceChannel::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions" title="gst_audio_set_channel_positions ()">gst_audio_set_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass" title="struct GstColorBalanceChannelClass">GstColorBalanceChannelClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list" title="gst_audio_set_structure_channel_positions_list ()">gst_audio_set_structure_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass" title="struct GstColorBalanceClass">GstColorBalanceClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-structure-set-int" title="gst_audio_structure_set_int ()">gst_audio_structure_set_int</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType">GstColorBalanceType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink-struct" title="struct GstBaseAudioSink">GstBaseAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold" title='The "alignment-threshold" property'>GstBaseAudioSink:alignment-threshold</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value" title="gst_color_balance_get_value ()">gst_color_balance_get_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>GstBaseAudioSink:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels" title="gst_color_balance_list_channels ()">gst_color_balance_list_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull" title='The "can-activate-pull" property'>GstBaseAudioSink:can-activate-pull</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value" title="gst_color_balance_set_value ()">gst_color_balance_set_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait" title='The "discont-wait" property'>GstBaseAudioSink:discont-wait</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed" title="gst_color_balance_value_changed ()">gst_color_balance_value_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>GstBaseAudioSink:drift-tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
-<a name="idxD"></a><h3 class="title">D</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct" title="struct GstDiscoverer">GstDiscoverer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>GstBaseAudioSink:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered" title='The "discovered" signal'>GstDiscoverer::discovered</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock" title='The "provide-clock" property'>GstBaseAudioSink:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished" title='The "finished" signal'>GstDiscoverer::finished</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method" title='The "slave-method" property'>GstBaseAudioSink:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting" title='The "starting" signal'>GstDiscoverer::starting</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass" title="struct GstBaseAudioSinkClass">GstBaseAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>GstDiscoverer:timeout</a>, object property in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod">GstBaseAudioSinkSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo">GstDiscovererAudioInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc-struct" title="struct GstBaseAudioSrc">GstBaseAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo">GstDiscovererContainerInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>GstBaseAudioSrc:actual-buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct" title="GstDiscovererInfo">GstDiscovererInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>GstBaseAudioSrc:actual-latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult">GstDiscovererResult</a>, enum in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>GstBaseAudioSrc:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo">GstDiscovererStreamInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>GstBaseAudioSrc:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo">GstDiscovererVideoInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock" title='The "provide-clock" property'>GstBaseAudioSrc:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method" title='The "slave-method" property'>GstBaseAudioSrc:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcClass" title="struct GstBaseAudioSrcClass">GstBaseAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod">GstBaseAudioSrcSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct" title="struct GstBaseRTPAudioPayload">GstBaseRTPAudioPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list" title='The "buffer-list" property'>GstBaseRTPAudioPayload:buffer-list</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass" title="struct GstBaseRTPAudioPayloadClass">GstBaseRTPAudioPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri" title="gst_discoverer_discover_uri ()">gst_discoverer_discover_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct" title="struct GstBaseRTPDepayload">GstBaseRTPDepayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()">gst_discoverer_discover_uri_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay" title='The "queue-delay" property'>GstBaseRTPDepayload:queue-delay</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass" title="struct GstBaseRTPDepayloadClass">GstBaseRTPDepayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct" title="struct GstBaseRTPPayload">GstBaseRTPPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration" title="gst_discoverer_info_get_duration ()">gst_discoverer_info_get_duration</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>GstBaseRTPPayload:max-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>GstBaseRTPPayload:min-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu" title='The "mtu" property'>GstBaseRTPPayload:mtu</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime" title='The "perfect-rtptime" property'>GstBaseRTPPayload:perfect-rtptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt" title='The "pt" property'>GstBaseRTPPayload:pt</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>GstBaseRTPPayload:ptime-multiple</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum" title='The "seqnum" property'>GstBaseRTPPayload:seqnum</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset" title='The "seqnum-offset" property'>GstBaseRTPPayload:seqnum-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc" title='The "ssrc" property'>GstBaseRTPPayload:ssrc</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp" title='The "timestamp" property'>GstBaseRTPPayload:timestamp</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref" title="gst_discoverer_info_ref()">gst_discoverer_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset" title='The "timestamp-offset" property'>GstBaseRTPPayload:timestamp-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref" title="gst_discoverer_info_unref()">gst_discoverer_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass" title="struct GstBaseRTPPayloadClass">GstBaseRTPPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new" title="gst_discoverer_new ()">gst_discoverer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()">gst_discoverer_start</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stop" title="gst_discoverer_stop ()">gst_discoverer_stop</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" title="gst_discoverer_video_info_get_framerate_denom ()">gst_discoverer_video_info_get_framerate_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num" title="gst_discoverer_video_info_get_framerate_num ()">gst_discoverer_video_info_get_framerate_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height" title="gst_discoverer_video_info_get_height ()">gst_discoverer_video_info_get_height</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate" title="gst_discoverer_video_info_get_max_bitrate ()">gst_discoverer_video_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom" title="gst_discoverer_video_info_get_par_denom ()">gst_discoverer_video_info_get_par_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num" title="gst_discoverer_video_info_get_par_num ()">gst_discoverer_video_info_get_par_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width" title="gst_discoverer_video_info_get_width ()">gst_discoverer_video_info_get_width</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image" title="gst_discoverer_video_info_is_image ()">gst_discoverer_video_info_is_image</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced" title="gst_discoverer_video_info_is_interlaced ()">gst_discoverer_video_info_is_interlaced</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<a name="idxE"></a><h3 class="title">E</h3>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct" title="GstEncodingContainerProfile">GstEncodingContainerProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct" title="GstEncodingProfile">GstEncodingProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct" title="GstEncodingTarget">GstEncodingTarget</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct" title="GstEncodingVideoProfile">GstEncodingVideoProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS" title="GST_ENCODING_CATEGORY_CAPTURE">GST_ENCODING_CATEGORY_CAPTURE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE">GST_ENCODING_CATEGORY_DEVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS" title="GST_ENCODING_CATEGORY_ONLINE_SERVICE">GST_ENCODING_CATEGORY_ONLINE_SERVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS" title="GST_ENCODING_CATEGORY_STORAGE_EDITING">GST_ENCODING_CATEGORY_STORAGE_EDITING</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile" title="gst_encoding_container_profile_add_profile ()">gst_encoding_container_profile_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile" title="gst_encoding_container_profile_contains_profile ()">gst_encoding_container_profile_contains_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles" title="gst_encoding_container_profile_get_profiles ()">gst_encoding_container_profile_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" title="gst_encoding_list_all_targets ()">gst_encoding_list_all_targets</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" title="gst_encoding_list_available_categories ()">gst_encoding_list_available_categories</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps" title="gst_encoding_profile_get_input_caps ()">gst_encoding_profile_get_input_caps</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal" title="gst_encoding_profile_is_equal ()">gst_encoding_profile_is_equal</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" title="gst_encoding_profile_ref()">gst_encoding_profile_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description" title="gst_encoding_profile_set_description ()">gst_encoding_profile_set_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format" title="gst_encoding_profile_set_format ()">gst_encoding_profile_set_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence" title="gst_encoding_profile_set_presence ()">gst_encoding_profile_set_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset" title="gst_encoding_profile_set_preset ()">gst_encoding_profile_set_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()">gst_encoding_profile_set_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" title="gst_encoding_profile_unref()">gst_encoding_profile_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile" title="gst_encoding_target_add_profile ()">gst_encoding_target_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category" title="gst_encoding_target_get_category ()">gst_encoding_target_get_category</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description" title="gst_encoding_target_get_description ()">gst_encoding_target_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name" title="gst_encoding_target_get_name ()">gst_encoding_target_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profile" title="gst_encoding_target_get_profile ()">gst_encoding_target_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles" title="gst_encoding_target_get_profiles ()">gst_encoding_target_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load" title="gst_encoding_target_load ()">gst_encoding_target_load</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" title="gst_encoding_target_load_from_file ()">gst_encoding_target_load_from_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-new" title="gst_encoding_target_new ()">gst_encoding_target_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-ref" title="gst_encoding_target_ref()">gst_encoding_target_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save" title="gst_encoding_target_save ()">gst_encoding_target_save</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file" title="gst_encoding_target_save_to_file ()">gst_encoding_target_save_to_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-unref" title="gst_encoding_target_unref()">gst_encoding_target_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass" title="gst_encoding_video_profile_get_pass ()">gst_encoding_video_profile_get_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate" title="gst_encoding_video_profile_get_variableframerate ()">gst_encoding_video_profile_get_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass" title="gst_encoding_video_profile_set_pass ()">gst_encoding_video_profile_set_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate" title="gst_encoding_video_profile_set_variableframerate ()">gst_encoding_video_profile_set_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32">GstFFTF32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex">GstFFTF32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-is-filled" title="gst_basertppayload_is_filled ()">gst_basertppayload_is_filled</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64">GstFFTF64</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push" title="gst_basertppayload_push ()">gst_basertppayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex">GstFFTF64Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push-list" title="gst_basertppayload_push_list ()">gst_basertppayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16">GstFFTS16</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-options" title="gst_basertppayload_set_options ()">gst_basertppayload_set_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex">GstFFTS16Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps" title="gst_basertppayload_set_outcaps ()">gst_basertppayload_set_outcaps</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32">GstFFTS32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-CLOCK:CAPS" title="GST_BASE_AUDIO_SINK_CLOCK()">GST_BASE_AUDIO_SINK_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex">GstFFTS32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-create-ringbuffer" title="gst_base_audio_sink_create_ringbuffer ()">gst_base_audio_sink_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow">GstFFTWindow</a>, enum in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()">gst_fft_f32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-provide-clock" title="gst_base_audio_sink_get_provide_clock ()">gst_base_audio_sink_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()">gst_fft_f32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()">gst_fft_f32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-PAD:CAPS" title="GST_BASE_AUDIO_SINK_PAD()">GST_BASE_AUDIO_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()">gst_fft_f32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" title="gst_base_audio_sink_set_drift_tolerance ()">gst_base_audio_sink_set_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()">gst_fft_f32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-provide-clock" title="gst_base_audio_sink_set_provide_clock ()">gst_base_audio_sink_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()">gst_fft_f64_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method" title="gst_base_audio_sink_set_slave_method ()">gst_base_audio_sink_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free" title="gst_fft_f64_free ()">gst_fft_f64_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-CLOCK:CAPS" title="GST_BASE_AUDIO_SRC_CLOCK()">GST_BASE_AUDIO_SRC_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()">gst_fft_f64_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-create-ringbuffer" title="gst_base_audio_src_create_ringbuffer ()">gst_base_audio_src_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()">gst_fft_f64_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock" title="gst_base_audio_src_get_provide_clock ()">gst_base_audio_src_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window" title="gst_fft_f64_window ()">gst_fft_f64_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()">gst_fft_next_fast_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-PAD:CAPS" title="GST_BASE_AUDIO_SRC_PAD()">GST_BASE_AUDIO_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()">gst_fft_s16_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-provide-clock" title="gst_base_audio_src_set_provide_clock ()">gst_base_audio_src_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()">gst_fft_s16_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method" title="gst_base_audio_src_set_slave_method ()">gst_base_audio_src_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()">gst_fft_s16_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" title="gst_base_rtp_audio_payload_flush ()">gst_base_rtp_audio_payload_flush</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()">gst_fft_s16_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter" title="gst_base_rtp_audio_payload_get_adapter ()">gst_base_rtp_audio_payload_get_adapter</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()">gst_fft_s16_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push" title="gst_base_rtp_audio_payload_push ()">gst_base_rtp_audio_payload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()">gst_fft_s32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based" title="gst_base_rtp_audio_payload_set_frame_based ()">gst_base_rtp_audio_payload_set_frame_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()">gst_fft_s32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-options" title="gst_base_rtp_audio_payload_set_frame_options ()">gst_base_rtp_audio_payload_set_frame_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()">gst_fft_s32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options" title="gst_base_rtp_audio_payload_set_samplebits_options ()">gst_base_rtp_audio_payload_set_samplebits_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()">gst_fft_s32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based" title="gst_base_rtp_audio_payload_set_sample_based ()">gst_base_rtp_audio_payload_set_sample_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()">gst_fft_s32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-options" title="gst_base_rtp_audio_payload_set_sample_options ()">gst_base_rtp_audio_payload_set_sample_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS" title="GST_FRAMES_TO_CLOCK_TIME()">GST_FRAMES_TO_CLOCK_TIME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push" title="gst_base_rtp_depayload_push ()">gst_base_rtp_depayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
-<a name="idxI"></a><h3 class="title">I</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext">GstInstallPluginsContext</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" title="gst_base_rtp_depayload_push_list ()">gst_base_rtp_depayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()">GstInstallPluginsResultFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts" title="gst_base_rtp_depayload_push_ts ()">gst_base_rtp_depayload_push_ts</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn">GstInstallPluginsReturn</a>, enum in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SINKPAD()">GST_BASE_RTP_DEPAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SRCPAD()">GST_BASE_RTP_DEPAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()">gst_install_plugins_context_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS" title="GST_BASE_RTP_PAYLOAD_MTU()">GST_BASE_RTP_PAYLOAD_MTU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-PT:CAPS" title="GST_BASE_RTP_PAYLOAD_PT()">GST_BASE_RTP_PAYLOAD_PT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SINKPAD()">GST_BASE_RTP_PAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SRCPAD()">GST_BASE_RTP_PAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat" title="enum GstBufferFormat">GstBufferFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType" title="enum GstBufferFormatType">GstBufferFormatType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
 </dt>
 <dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double" title="gst_cast_double()">gst_cast_double</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message" title="gst_is_missing_plugin_message ()">gst_is_missing_plugin_message</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float" title="gst_cast_float()">gst_cast_float</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
 </dt>
 <dd></dd>
-<a name="idxM"></a><h3 class="title">M</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" title="gst_missing_decoder_installer_detail_new ()">gst_missing_decoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct" title="struct GstCddaBaseSrc">GstCddaBaseSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new" title="gst_missing_decoder_message_new ()">gst_missing_decoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--device" title='The "device" property'>GstCddaBaseSrc:device</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" title="gst_missing_element_installer_detail_new ()">gst_missing_element_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--mode" title='The "mode" property'>GstCddaBaseSrc:mode</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()">gst_missing_element_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--track" title='The "track" property'>GstCddaBaseSrc:track</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" title="gst_missing_encoder_installer_detail_new ()">gst_missing_encoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass" title="struct GstCddaBaseSrcClass">GstCddaBaseSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new" title="gst_missing_encoder_message_new ()">gst_missing_encoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcMode" title="enum GstCddaBaseSrcMode">GstCddaBaseSrcMode</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()">gst_missing_plugin_message_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack" title="struct GstCddaBaseSrcTrack">GstCddaBaseSrcTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()">gst_missing_plugin_message_get_installer_detail</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#gst-cdda-base-src-add-track" title="gst_cdda_base_src_add_track ()">gst_cdda_base_src_add_track</a>, function in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new" title="gst_missing_uri_sink_installer_detail_new ()">gst_missing_uri_sink_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new" title="gst_missing_uri_sink_message_new ()">gst_missing_uri_sink_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS" title="GST_CLOCK_TIME_TO_FRAMES()">GST_CLOCK_TIME_TO_FRAMES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new" title="gst_missing_uri_source_installer_detail_new ()">gst_missing_uri_source_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()">gst_missing_uri_source_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-struct" title="GstMixer">GstMixer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-mute-toggled" title='The "mute-toggled" signal'>GstMixer::mute-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-option-changed" title='The "option-changed" signal'>GstMixer::option-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-record-toggled" title='The "record-toggled" signal'>GstMixer::record-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-volume-changed" title='The "volume-changed" signal'>GstMixer::volume-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc" title="gst_codec_utils_h264_get_level_idc ()">gst_codec_utils_h264_get_level_idc</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags">GstMixerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType">GstMixerMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct" title="struct GstMixerOptions">GstMixerOptions</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct" title="struct GstMixerTrack">GstMixerTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags" title='The "flags" property'>GstMixerTrack:flags</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct" title="GstColorBalance">GstColorBalance</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index" title='The "index" property'>GstMixerTrack:index</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed" title='The "value-changed" signal'>GstColorBalance::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label" title='The "label" property'>GstMixerTrack:label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct" title="struct GstColorBalanceChannel">GstColorBalanceChannel</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume" title='The "max-volume" property'>GstMixerTrack:max-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title='The "value-changed" signal'>GstColorBalanceChannel::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume" title='The "min-volume" property'>GstMixerTrack:min-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass" title="struct GstColorBalanceChannelClass">GstColorBalanceChannelClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels" title='The "num-channels" property'>GstMixerTrack:num-channels</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass" title="struct GstColorBalanceClass">GstColorBalanceClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label" title='The "untranslated-label" property'>GstMixerTrack:untranslated-label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType">GstColorBalanceType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags" title="enum GstMixerTrackFlags">GstMixerTrackFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType">GstMixerType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value" title="gst_color_balance_get_value ()">gst_color_balance_get_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels" title="gst_color_balance_list_channels ()">gst_color_balance_list_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value" title="gst_color_balance_set_value ()">gst_color_balance_set_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option" title="gst_mixer_get_option ()">gst_mixer_get_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed" title="gst_color_balance_value_changed ()">gst_color_balance_value_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
 </dt>
 <dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume" title="gst_mixer_get_volume ()">gst_mixer_get_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct" title="struct GstDiscoverer">GstDiscoverer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks" title="gst_mixer_list_tracks ()">gst_mixer_list_tracks</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered" title='The "discovered" signal'>GstDiscoverer::discovered</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished" title='The "finished" signal'>GstDiscoverer::finished</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting" title='The "starting" signal'>GstDiscoverer::starting</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" title="gst_mixer_message_parse_options_list_changed ()">gst_mixer_message_parse_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>GstDiscoverer:timeout</a>, object property in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" title="gst_mixer_message_parse_option_changed ()">gst_mixer_message_parse_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo">GstDiscovererAudioInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" title="gst_mixer_message_parse_record_toggled ()">gst_mixer_message_parse_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo">GstDiscovererContainerInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" title="gst_mixer_message_parse_volume_changed ()">gst_mixer_message_parse_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct" title="GstDiscovererInfo">GstDiscovererInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult">GstDiscovererResult</a>, enum in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled" title="gst_mixer_mute_toggled ()">gst_mixer_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo">GstDiscovererStreamInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()">gst_mixer_options_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo">GstDiscovererSubtitleInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" title="gst_mixer_options_list_changed ()">gst_mixer_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo">GstDiscovererVideoInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed" title="gst_mixer_option_changed ()">gst_mixer_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled" title="gst_mixer_record_toggled ()">gst_mixer_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute" title="gst_mixer_set_mute ()">gst_mixer_set_mute</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option" title="gst_mixer_set_option ()">gst_mixer_set_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" title="gst_discoverer_audio_info_get_language ()">gst_discoverer_audio_info_get_language</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record" title="gst_mixer_set_record ()">gst_mixer_set_record</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume" title="gst_mixer_set_volume ()">gst_mixer_set_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()">GST_MIXER_TRACK_HAS_FLAG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed" title="gst_mixer_volume_changed ()">gst_mixer_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri" title="gst_discoverer_discover_uri ()">gst_discoverer_discover_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
-<a name="idxN"></a><h3 class="title">N</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct" title="GstNavigation">GstNavigation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()">gst_discoverer_discover_uri_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand">GstNavigationCommand</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType">GstNavigationEventType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface" title="struct GstNavigationInterface">GstNavigationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration" title="gst_discoverer_info_get_duration ()">gst_discoverer_info_get_duration</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_MENU">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" title="gst_discoverer_info_get_subtitle_streams ()">gst_discoverer_info_get_subtitle_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref" title="gst_discoverer_info_ref()">gst_discoverer_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref" title="gst_discoverer_info_unref()">gst_discoverer_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new" title="gst_discoverer_new ()">gst_discoverer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()">gst_discoverer_start</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stop" title="gst_discoverer_stop ()">gst_discoverer_stop</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" title="gst_discoverer_subtitle_info_get_language ()">gst_discoverer_subtitle_info_get_language</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" title="gst_navigation_query_set_angles ()">gst_navigation_query_set_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" title="gst_navigation_query_set_commands ()">gst_navigation_query_set_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" title="gst_navigation_query_set_commandsv ()">gst_navigation_query_set_commandsv</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" title="gst_discoverer_video_info_get_framerate_denom ()">gst_discoverer_video_info_get_framerate_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" title="gst_navigation_send_command ()">gst_navigation_send_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num" title="gst_discoverer_video_info_get_framerate_num ()">gst_discoverer_video_info_get_framerate_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event" title="gst_navigation_send_event ()">gst_navigation_send_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height" title="gst_discoverer_video_info_get_height ()">gst_discoverer_video_info_get_height</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event" title="gst_navigation_send_key_event ()">gst_navigation_send_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate" title="gst_discoverer_video_info_get_max_bitrate ()">gst_discoverer_video_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event" title="gst_navigation_send_mouse_event ()">gst_navigation_send_mouse_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom" title="gst_discoverer_video_info_get_par_denom ()">gst_discoverer_video_info_get_par_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress">GstNetAddress</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num" title="gst_discoverer_video_info_get_par_num ()">gst_discoverer_video_info_get_par_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" title="gst_netaddress_equal ()">gst_netaddress_equal</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width" title="gst_discoverer_video_info_get_width ()">gst_discoverer_video_info_get_width</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes" title="gst_netaddress_get_address_bytes ()">gst_netaddress_get_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image" title="gst_discoverer_video_info_is_image ()">gst_discoverer_video_info_is_image</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address" title="gst_netaddress_get_ip4_address ()">gst_netaddress_get_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced" title="gst_discoverer_video_info_is_interlaced ()">gst_discoverer_video_info_is_interlaced</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address" title="gst_netaddress_get_ip6_address ()">gst_netaddress_get_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type" title="gst_netaddress_get_net_type ()">gst_netaddress_get_net_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct" title="GstEncodingContainerProfile">GstEncodingContainerProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GST-NETADDRESS-MAX-LEN:CAPS" title="GST_NETADDRESS_MAX_LEN">GST_NETADDRESS_MAX_LEN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct" title="GstEncodingProfile">GstEncodingProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" title="gst_netaddress_set_address_bytes ()">gst_netaddress_set_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct" title="GstEncodingTarget">GstEncodingTarget</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address" title="gst_netaddress_set_ip4_address ()">gst_netaddress_set_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct" title="GstEncodingVideoProfile">GstEncodingVideoProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address" title="gst_netaddress_set_ip6_address ()">gst_netaddress_set_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" title="gst_netaddress_to_string ()">gst_netaddress_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS" title="GST_ENCODING_CATEGORY_CAPTURE">GST_ENCODING_CATEGORY_CAPTURE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer" title="struct GstNetBuffer">GstNetBuffer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE">GST_ENCODING_CATEGORY_DEVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new" title="gst_netbuffer_new ()">gst_netbuffer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS" title="GST_ENCODING_CATEGORY_ONLINE_SERVICE">GST_ENCODING_CATEGORY_ONLINE_SERVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType">GstNetType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS" title="GST_ENCODING_CATEGORY_STORAGE_EDITING">GST_ENCODING_CATEGORY_STORAGE_EDITING</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
-<a name="idxP"></a><h3 class="title">P</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()">gst_pb_utils_add_codec_description_to_tag_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile" title="gst_encoding_container_profile_add_profile ()">gst_encoding_container_profile_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description" title="gst_pb_utils_get_codec_description ()">gst_pb_utils_get_codec_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile" title="gst_encoding_container_profile_contains_profile ()">gst_encoding_container_profile_contains_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description" title="gst_pb_utils_get_decoder_description ()">gst_pb_utils_get_decoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles" title="gst_encoding_container_profile_get_profiles ()">gst_encoding_container_profile_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description" title="gst_pb_utils_get_element_description ()">gst_pb_utils_get_element_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description" title="gst_pb_utils_get_encoder_description ()">gst_pb_utils_get_encoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" title="gst_encoding_list_all_targets ()">gst_encoding_list_all_targets</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description" title="gst_pb_utils_get_sink_description ()">gst_pb_utils_get_sink_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" title="gst_encoding_list_available_categories ()">gst_encoding_list_available_categories</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description" title="gst_pb_utils_get_source_description ()">gst_pb_utils_get_source_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()">gst_pb_utils_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer" title="gst_encoding_profile_from_discoverer ()">gst_encoding_profile_from_discoverer</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps" title="gst_encoding_profile_get_input_caps ()">gst_encoding_profile_get_input_caps</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-struct" title="GstPropertyProbe">GstPropertyProbe</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed" title='The "probe-needed" signal'>GstPropertyProbe::probe-needed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbeInterface" title="struct GstPropertyProbeInterface">GstPropertyProbeInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal" title="gst_encoding_profile_is_equal ()">gst_encoding_profile_is_equal</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-properties" title="gst_property_probe_get_properties ()">gst_property_probe_get_properties</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" title="gst_encoding_profile_ref()">gst_encoding_profile_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-property" title="gst_property_probe_get_property ()">gst_property_probe_get_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description" title="gst_encoding_profile_set_description ()">gst_encoding_profile_set_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values" title="gst_property_probe_get_values ()">gst_property_probe_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format" title="gst_encoding_profile_set_format ()">gst_encoding_profile_set_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values-name" title="gst_property_probe_get_values_name ()">gst_property_probe_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe" title="gst_property_probe_needs_probe ()">gst_property_probe_needs_probe</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence" title="gst_encoding_profile_set_presence ()">gst_encoding_profile_set_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe-name" title="gst_property_probe_needs_probe_name ()">gst_property_probe_needs_probe_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset" title="gst_encoding_profile_set_preset ()">gst_encoding_profile_set_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values" title="gst_property_probe_probe_and_get_values ()">gst_property_probe_probe_and_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()">gst_encoding_profile_set_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values-name" title="gst_property_probe_probe_and_get_values_name ()">gst_property_probe_probe_and_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" title="gst_encoding_profile_unref()">gst_encoding_profile_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property" title="gst_property_probe_probe_property ()">gst_property_probe_probe_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile" title="gst_encoding_target_add_profile ()">gst_encoding_target_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name" title="gst_property_probe_probe_property_name ()">gst_property_probe_probe_property_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category" title="gst_encoding_target_get_category ()">gst_encoding_target_get_category</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
-<a name="idxR"></a><h3 class="title">R</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS" title="GST_RIFF_00">GST_RIFF_00</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description" title="gst_encoding_target_get_description ()">gst_encoding_target_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS" title="GST_RIFF_0021">GST_RIFF_0021</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name" title="gst_encoding_target_get_name ()">gst_encoding_target_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS" title="GST_RIFF_0031">GST_RIFF_0031</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profile" title="gst_encoding_target_get_profile ()">gst_encoding_target_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS" title="GST_RIFF_0032">GST_RIFF_0032</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles" title="gst_encoding_target_get_profiles ()">gst_encoding_target_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS" title="GST_RIFF_00AM">GST_RIFF_00AM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load" title="gst_encoding_target_load ()">gst_encoding_target_load</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db" title="GST_RIFF_00db">GST_RIFF_00db</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" title="gst_encoding_target_load_from_file ()">gst_encoding_target_load_from_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc" title="GST_RIFF_00dc">GST_RIFF_00dc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-new" title="gst_encoding_target_new ()">gst_encoding_target_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx" title="GST_RIFF_00dx">GST_RIFF_00dx</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-ref" title="gst_encoding_target_ref()">gst_encoding_target_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id" title="GST_RIFF_00id">GST_RIFF_00id</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save" title="gst_encoding_target_save ()">gst_encoding_target_save</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv" title="GST_RIFF_00iv">GST_RIFF_00iv</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file" title="gst_encoding_target_save_to_file ()">gst_encoding_target_save_to_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc" title="GST_RIFF_00pc">GST_RIFF_00pc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-unref" title="gst_encoding_target_unref()">gst_encoding_target_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt" title="GST_RIFF_00rt">GST_RIFF_00rt</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass" title="gst_encoding_video_profile_get_pass ()">gst_encoding_video_profile_get_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc" title="GST_RIFF_00vc">GST_RIFF_00vc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate" title="gst_encoding_video_profile_get_variableframerate ()">gst_encoding_video_profile_get_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm" title="GST_RIFF_00xm">GST_RIFF_00xm</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx" title="GST_RIFF_00xx">GST_RIFF_00xx</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass" title="gst_encoding_video_profile_set_pass ()">gst_encoding_video_profile_set_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS" title="GST_RIFF_00__">GST_RIFF_00__</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate" title="gst_encoding_video_profile_set_variableframerate ()">gst_encoding_video_profile_set_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS" title="GST_RIFF_01">GST_RIFF_01</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32">GstFFTF32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc" title="GST_RIFF_01dc">GST_RIFF_01dc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex">GstFFTF32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc" title="GST_RIFF_01pc">GST_RIFF_01pc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64">GstFFTF64</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb" title="GST_RIFF_01wb">GST_RIFF_01wb</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex">GstFFTF64Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS" title="GST_RIFF_02">GST_RIFF_02</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16">GstFFTS16</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS" title="GST_RIFF_03">GST_RIFF_03</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex">GstFFTS16Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS" title="GST_RIFF_04">GST_RIFF_04</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32">GstFFTS32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS" title="GST_RIFF_05">GST_RIFF_05</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex">GstFFTS32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS" title="GST_RIFF_06">GST_RIFF_06</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow">GstFFTWindow</a>, enum in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS" title="GST_RIFF_07">GST_RIFF_07</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()">gst_fft_f32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-acid" title="gst_riff_acid">gst_riff_acid</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()">gst_fft_f32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS" title="GST_RIFF_AURA">GST_RIFF_AURA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()">gst_fft_f32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr" title="GST_RIFF_azpr">GST_RIFF_azpr</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()">gst_fft_f32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS" title="GST_RIFF_BW10">GST_RIFF_BW10</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()">gst_fft_f32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10" title="GST_RIFF_bw10">GST_RIFF_bw10</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()">gst_fft_f64_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc" title="GST_RIFF_ccc">GST_RIFF_ccc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free" title="gst_fft_f64_free ()">gst_fft_f64_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS" title="GST_RIFF_CCC">GST_RIFF_CCC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()">gst_fft_f64_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram" title="GST_RIFF_cram">GST_RIFF_cram</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()">gst_fft_f64_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS" title="GST_RIFF_CRAM">GST_RIFF_CRAM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window" title="gst_fft_f64_window ()">gst_fft_f64_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()">gst_fft_next_fast_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()">gst_fft_s16_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()">gst_fft_s16_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()">gst_fft_s16_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()">gst_fft_s16_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()">gst_fft_s16_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid" title="GST_RIFF_cvid">GST_RIFF_cvid</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()">gst_fft_s32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS" title="GST_RIFF_CVID">GST_RIFF_CVID</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()">gst_fft_s32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS" title="GST_RIFF_CYUV">GST_RIFF_CYUV</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()">gst_fft_s32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv" title="GST_RIFF_cyuv">GST_RIFF_cyuv</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()">gst_fft_s32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS" title="GST_RIFF_DIB">GST_RIFF_DIB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()">gst_fft_s32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS" title="GST_RIFF_DISP">GST_RIFF_DISP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS" title="GST_FRAMES_TO_CLOCK_TIME()">GST_FRAMES_TO_CLOCK_TIME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS" title="GST_RIFF_DIV3">GST_RIFF_DIV3</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext">GstInstallPluginsContext</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1" title="GST_RIFF_dmb1">GST_RIFF_dmb1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()">GstInstallPluginsResultFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS" title="GST_RIFF_DMB1">GST_RIFF_DMB1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn">GstInstallPluginsReturn</a>, enum in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh" title="gst_riff_dmlh">gst_riff_dmlh</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS" title="GST_RIFF_FCCH_MSVC">GST_RIFF_FCCH_MSVC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()">gst_install_plugins_context_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc" title="GST_RIFF_FCCH_msvc">GST_RIFF_FCCH_msvc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS" title="GST_RIFF_FCCH_RLE">GST_RIFF_FCCH_RLE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds" title="GST_RIFF_FCC_auds">GST_RIFF_FCC_auds</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs" title="GST_RIFF_FCC_iavs">GST_RIFF_FCC_iavs</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads" title="GST_RIFF_FCC_pads">GST_RIFF_FCC_pads</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts" title="GST_RIFF_FCC_txts">GST_RIFF_FCC_txts</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc" title="GST_RIFF_FCC_vidc">GST_RIFF_FCC_vidc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message" title="gst_is_missing_plugin_message ()">gst_is_missing_plugin_message</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids" title="GST_RIFF_FCC_vids">GST_RIFF_FCC_vids</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" title="gst_missing_decoder_installer_detail_new ()">gst_missing_decoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS" title="GST_RIFF_FF00">GST_RIFF_FF00</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new" title="gst_missing_decoder_message_new ()">gst_missing_decoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS" title="GST_RIFF_H263">GST_RIFF_H263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" title="gst_missing_element_installer_detail_new ()">gst_missing_element_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263" title="GST_RIFF_h263">GST_RIFF_h263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()">gst_missing_element_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263" title="GST_RIFF_i263">GST_RIFF_i263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" title="gst_missing_encoder_installer_detail_new ()">gst_missing_encoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS" title="GST_RIFF_I420">GST_RIFF_I420</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new" title="gst_missing_encoder_message_new ()">gst_missing_encoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420" title="GST_RIFF_i420">GST_RIFF_i420</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()">gst_missing_plugin_message_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS" title="GST_RIFF_IDIT">GST_RIFF_IDIT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()">gst_missing_plugin_message_get_installer_detail</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS" title="GST_RIFF_IJPG">GST_RIFF_IJPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new" title="gst_missing_uri_sink_installer_detail_new ()">gst_missing_uri_sink_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry" title="gst_riff_index_entry">gst_riff_index_entry</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new" title="gst_missing_uri_sink_message_new ()">gst_missing_uri_sink_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS" title="GST_RIFF_INFO_IARL">GST_RIFF_INFO_IARL</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new" title="gst_missing_uri_source_installer_detail_new ()">gst_missing_uri_source_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS" title="GST_RIFF_INFO_IART">GST_RIFF_INFO_IART</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()">gst_missing_uri_source_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS" title="GST_RIFF_INFO_ICMS">GST_RIFF_INFO_ICMS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-struct" title="GstMixer">GstMixer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS" title="GST_RIFF_INFO_ICMT">GST_RIFF_INFO_ICMT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-mute-toggled" title='The "mute-toggled" signal'>GstMixer::mute-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS" title="GST_RIFF_INFO_ICOP">GST_RIFF_INFO_ICOP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-option-changed" title='The "option-changed" signal'>GstMixer::option-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS" title="GST_RIFF_INFO_ICRD">GST_RIFF_INFO_ICRD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-record-toggled" title='The "record-toggled" signal'>GstMixer::record-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS" title="GST_RIFF_INFO_ICRP">GST_RIFF_INFO_ICRP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-volume-changed" title='The "volume-changed" signal'>GstMixer::volume-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS" title="GST_RIFF_INFO_IDIM">GST_RIFF_INFO_IDIM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags">GstMixerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS" title="GST_RIFF_INFO_IDPI">GST_RIFF_INFO_IDPI</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType">GstMixerMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS" title="GST_RIFF_INFO_IENG">GST_RIFF_INFO_IENG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct" title="struct GstMixerOptions">GstMixerOptions</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS" title="GST_RIFF_INFO_IGNR">GST_RIFF_INFO_IGNR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct" title="struct GstMixerTrack">GstMixerTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS" title="GST_RIFF_INFO_IKEY">GST_RIFF_INFO_IKEY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags" title='The "flags" property'>GstMixerTrack:flags</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS" title="GST_RIFF_INFO_ILGT">GST_RIFF_INFO_ILGT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index" title='The "index" property'>GstMixerTrack:index</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS" title="GST_RIFF_INFO_IMED">GST_RIFF_INFO_IMED</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label" title='The "label" property'>GstMixerTrack:label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS" title="GST_RIFF_INFO_INAM">GST_RIFF_INFO_INAM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume" title='The "max-volume" property'>GstMixerTrack:max-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS" title="GST_RIFF_INFO_IPLT">GST_RIFF_INFO_IPLT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume" title='The "min-volume" property'>GstMixerTrack:min-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS" title="GST_RIFF_INFO_IPRD">GST_RIFF_INFO_IPRD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels" title='The "num-channels" property'>GstMixerTrack:num-channels</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS" title="GST_RIFF_INFO_ISBJ">GST_RIFF_INFO_ISBJ</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label" title='The "untranslated-label" property'>GstMixerTrack:untranslated-label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS" title="GST_RIFF_INFO_ISFT">GST_RIFF_INFO_ISFT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags" title="enum GstMixerTrackFlags">GstMixerTrackFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS" title="GST_RIFF_INFO_ISHP">GST_RIFF_INFO_ISHP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType">GstMixerType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS" title="GST_RIFF_INFO_ISRC">GST_RIFF_INFO_ISRC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS" title="GST_RIFF_INFO_ISRF">GST_RIFF_INFO_ISRF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS" title="GST_RIFF_INFO_ITCH">GST_RIFF_INFO_ITCH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option" title="gst_mixer_get_option ()">gst_mixer_get_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-init" title="gst_riff_init ()">gst_riff_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume" title="gst_mixer_get_volume ()">gst_mixer_get_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS" title="GST_RIFF_ISBJ">GST_RIFF_ISBJ</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks" title="gst_mixer_list_tracks ()">gst_mixer_list_tracks</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS" title="GST_RIFF_ISFT">GST_RIFF_ISFT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31" title="GST_RIFF_iv31">GST_RIFF_iv31</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS" title="GST_RIFF_IV31">GST_RIFF_IV31</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" title="gst_mixer_message_parse_options_list_changed ()">gst_mixer_message_parse_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS" title="GST_RIFF_IV32">GST_RIFF_IV32</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" title="gst_mixer_message_parse_option_changed ()">gst_mixer_message_parse_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32" title="GST_RIFF_iv32">GST_RIFF_iv32</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" title="gst_mixer_message_parse_record_toggled ()">gst_mixer_message_parse_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41" title="GST_RIFF_iv41">GST_RIFF_iv41</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" title="gst_mixer_message_parse_volume_changed ()">gst_mixer_message_parse_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS" title="GST_RIFF_IV41">GST_RIFF_IV41</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50" title="GST_RIFF_iv50">GST_RIFF_iv50</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled" title="gst_mixer_mute_toggled ()">gst_mixer_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS" title="GST_RIFF_IV50">GST_RIFF_IV50</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()">gst_mixer_options_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv" title="GST_RIFF_iyuv">GST_RIFF_iyuv</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" title="gst_mixer_options_list_changed ()">gst_mixer_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS" title="GST_RIFF_IYUV">GST_RIFF_IYUV</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed" title="gst_mixer_option_changed ()">gst_mixer_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS" title="GST_RIFF_JPEG">GST_RIFF_JPEG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled" title="gst_mixer_record_toggled ()">gst_mixer_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg" title="GST_RIFF_jpeg">GST_RIFF_jpeg</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute" title="gst_mixer_set_mute ()">gst_mixer_set_mute</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS" title="GST_RIFF_L263">GST_RIFF_L263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option" title="gst_mixer_set_option ()">gst_mixer_set_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl" title="GST_RIFF_LIST_adtl">GST_RIFF_LIST_adtl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record" title="gst_mixer_set_record ()">gst_mixer_set_record</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS" title="GST_RIFF_LIST_AVIX">GST_RIFF_LIST_AVIX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume" title="gst_mixer_set_volume ()">gst_mixer_set_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl" title="GST_RIFF_LIST_hdrl">GST_RIFF_LIST_hdrl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()">GST_MIXER_TRACK_HAS_FLAG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS" title="GST_RIFF_LIST_INFO">GST_RIFF_LIST_INFO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed" title="gst_mixer_volume_changed ()">gst_mixer_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
 </dt>
 <dd></dd>
+<a name="idxN"></a><h3 class="title">N</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi" title="GST_RIFF_LIST_movi">GST_RIFF_LIST_movi</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct" title="GstNavigation">GstNavigation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml" title="GST_RIFF_LIST_odml">GST_RIFF_LIST_odml</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand">GstNavigationCommand</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl" title="GST_RIFF_LIST_strl">GST_RIFF_LIST_strl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType">GstNavigationEventType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263" title="GST_RIFF_m263">GST_RIFF_m263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface" title="struct GstNavigationInterface">GstNavigationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS" title="GST_RIFF_M263">GST_RIFF_M263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG" title="GST_RIFF_mJPG">GST_RIFF_mJPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS" title="GST_RIFF_MJPG">GST_RIFF_MJPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS" title="GST_RIFF_MPIX">GST_RIFF_MPIX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1" title="GST_RIFF_mvi1">GST_RIFF_mvi1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS" title="GST_RIFF_MVI1">GST_RIFF_MVI1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_MENU">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-none" title="GST_RIFF_none">GST_RIFF_none</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS" title="GST_RIFF_NONE">GST_RIFF_NONE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack" title="GST_RIFF_pack">GST_RIFF_pack</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS" title="GST_RIFF_PACK">GST_RIFF_PACK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info" title="gst_riff_parse_info ()">gst_riff_parse_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS" title="GST_RIFF_Q1_0">GST_RIFF_Q1_0</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS" title="GST_RIFF_RAW">GST_RIFF_RAW</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk" title="gst_riff_read_chunk ()">gst_riff_read_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec" title="GST_RIFF_rec">GST_RIFF_rec</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb" title="GST_RIFF_rgb">GST_RIFF_rgb</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS" title="GST_RIFF_RGB">GST_RIFF_RGB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS" title="GST_RIFF_RIFF_AVI">GST_RIFF_RIFF_AVI</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS" title="GST_RIFF_RIFF_CDXA">GST_RIFF_RIFF_CDXA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS" title="GST_RIFF_RIFF_WAVE">GST_RIFF_RIFF_WAVE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" title="gst_navigation_query_set_angles ()">gst_navigation_query_set_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS" title="GST_RIFF_RLE4">GST_RIFF_RLE4</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" title="gst_navigation_query_set_commands ()">gst_navigation_query_set_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4" title="GST_RIFF_rle4">GST_RIFF_rle4</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" title="gst_navigation_query_set_commandsv ()">gst_navigation_query_set_commandsv</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8" title="GST_RIFF_rle8">GST_RIFF_rle8</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" title="gst_navigation_send_command ()">gst_navigation_send_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS" title="GST_RIFF_RLE8">GST_RIFF_RLE8</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event" title="gst_navigation_send_event ()">gst_navigation_send_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza" title="GST_RIFF_rpza">GST_RIFF_rpza</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event" title="gst_navigation_send_key_event ()">gst_navigation_send_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21" title="GST_RIFF_rt21">GST_RIFF_rt21</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event" title="gst_navigation_send_mouse_event ()">gst_navigation_send_mouse_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS" title="GST_RIFF_RT21">GST_RIFF_RT21</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress">GstNetAddress</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS" title="GST_RIFF_SFMC">GST_RIFF_SFMC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" title="gst_netaddress_equal ()">gst_netaddress_equal</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds">gst_riff_strf_auds</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes" title="gst_netaddress_get_address_bytes ()">gst_netaddress_get_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs">gst_riff_strf_iavs</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address" title="gst_netaddress_get_ip4_address ()">gst_netaddress_get_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids">gst_riff_strf_vids</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address" title="gst_netaddress_get_ip6_address ()">gst_netaddress_get_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh">gst_riff_strh</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type" title="gst_netaddress_get_net_type ()">gst_netaddress_get_net_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid" title="GST_RIFF_TAG_acid">GST_RIFF_TAG_acid</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GST-NETADDRESS-MAX-LEN:CAPS" title="GST_NETADDRESS_MAX_LEN">GST_NETADDRESS_MAX_LEN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS" title="GST_RIFF_TAG_AVF0">GST_RIFF_TAG_AVF0</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" title="gst_netaddress_set_address_bytes ()">gst_netaddress_set_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih" title="GST_RIFF_TAG_avih">GST_RIFF_TAG_avih</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address" title="gst_netaddress_set_ip4_address ()">gst_netaddress_set_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext" title="GST_RIFF_TAG_bext">GST_RIFF_TAG_bext</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address" title="gst_netaddress_set_ip6_address ()">gst_netaddress_set_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS" title="GST_RIFF_TAG_BEXT">GST_RIFF_TAG_BEXT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" title="gst_netaddress_to_string ()">gst_netaddress_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue" title="GST_RIFF_TAG_cue">GST_RIFF_TAG_cue</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer" title="struct GstNetBuffer">GstNetBuffer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data" title="GST_RIFF_TAG_data">GST_RIFF_TAG_data</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new" title="gst_netbuffer_new ()">gst_netbuffer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh" title="GST_RIFF_TAG_dmlh">GST_RIFF_TAG_dmlh</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType">GstNetType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
 </dt>
 <dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact" title="GST_RIFF_TAG_fact">GST_RIFF_TAG_fact</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()">gst_pb_utils_add_codec_description_to_tag_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt" title="GST_RIFF_TAG_fmt">GST_RIFF_TAG_fmt</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description" title="gst_pb_utils_get_codec_description ()">gst_pb_utils_get_codec_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1" title="GST_RIFF_TAG_idx1">GST_RIFF_TAG_idx1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description" title="gst_pb_utils_get_decoder_description ()">gst_pb_utils_get_decoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS" title="GST_RIFF_TAG_JUNK">GST_RIFF_TAG_JUNK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description" title="gst_pb_utils_get_element_description ()">gst_pb_utils_get_element_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS" title="GST_RIFF_TAG_JUNQ">GST_RIFF_TAG_JUNQ</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description" title="gst_pb_utils_get_encoder_description ()">gst_pb_utils_get_encoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS" title="GST_RIFF_TAG_LIST">GST_RIFF_TAG_LIST</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description" title="gst_pb_utils_get_sink_description ()">gst_pb_utils_get_sink_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst" title="GST_RIFF_TAG_plst">GST_RIFF_TAG_plst</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description" title="gst_pb_utils_get_source_description ()">gst_pb_utils_get_source_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS" title="GST_RIFF_TAG_RIFF">GST_RIFF_TAG_RIFF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()">gst_pb_utils_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS" title="GST_RIFF_TAG_RIFX">GST_RIFF_TAG_RIFX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a>, function in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd" title="GST_RIFF_TAG_strd">GST_RIFF_TAG_strd</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf" title="GST_RIFF_TAG_strf">GST_RIFF_TAG_strf</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh" title="GST_RIFF_TAG_strh">GST_RIFF_TAG_strh</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn" title="GST_RIFF_TAG_strn">GST_RIFF_TAG_strn</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt" title="GST_RIFF_TAG_vedt">GST_RIFF_TAG_vedt</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran" title="GST_RIFF_tran">GST_RIFF_tran</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-struct" title="GstPropertyProbe">GstPropertyProbe</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS" title="GST_RIFF_TRAN">GST_RIFF_TRAN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed" title='The "probe-needed" signal'>GstPropertyProbe::probe-needed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti" title="GST_RIFF_ulti">GST_RIFF_ulti</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbeInterface" title="struct GstPropertyProbeInterface">GstPropertyProbeInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS" title="GST_RIFF_ULTI">GST_RIFF_ULTI</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-properties" title="gst_property_probe_get_properties ()">gst_property_probe_get_properties</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS" title="GST_RIFF_V422">GST_RIFF_V422</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-property" title="gst_property_probe_get_property ()">gst_property_probe_get_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422" title="GST_RIFF_v422">GST_RIFF_v422</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values" title="gst_property_probe_get_values ()">gst_property_probe_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS" title="GST_RIFF_VDOW">GST_RIFF_VDOW</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values-name" title="gst_property_probe_get_values_name ()">gst_property_probe_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl" title="GST_RIFF_vixl">GST_RIFF_vixl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe" title="gst_property_probe_needs_probe ()">gst_property_probe_needs_probe</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS" title="GST_RIFF_VIXL">GST_RIFF_VIXL</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe-name" title="gst_property_probe_needs_probe_name ()">gst_property_probe_needs_probe_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS" title="GST_RIFF_VSSH">GST_RIFF_VSSH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values" title="gst_property_probe_probe_and_get_values ()">gst_property_probe_probe_and_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy" title="GST_RIFF_vyuy">GST_RIFF_vyuy</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values-name" title="gst_property_probe_probe_and_get_values_name ()">gst_property_probe_probe_and_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS" title="GST_RIFF_VYUY">GST_RIFF_VYUY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property" title="gst_property_probe_probe_property ()">gst_property_probe_probe_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham" title="GST_RIFF_wham">GST_RIFF_wham</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name" title="gst_property_probe_probe_property_name ()">gst_property_probe_probe_property_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
 </dt>
 <dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS" title="GST_RIFF_WHAM">GST_RIFF_WHAM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS" title="GST_RIFF_WINX">GST_RIFF_WINX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS" title="GST_RIFF_WPY2">GST_RIFF_WPY2</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263" title="GST_RIFF_x263">GST_RIFF_x263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS" title="GST_RIFF_XMPG">GST_RIFF_XMPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg" title="GST_RIFF_xmpg">GST_RIFF_xmpg</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS" title="GST_RIFF_Y41P">GST_RIFF_Y41P</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-init" title="gst_riff_init ()">gst_riff_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p" title="GST_RIFF_y41p">GST_RIFF_y41p</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS" title="GST_RIFF_YUV8">GST_RIFF_YUV8</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS" title="GST_RIFF_YUV9">GST_RIFF_YUV9</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info" title="gst_riff_parse_info ()">gst_riff_parse_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2" title="GST_RIFF_yuy2">GST_RIFF_yuy2</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS" title="GST_RIFF_YUY2">GST_RIFF_YUY2</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS" title="GST_RIFF_YV12">GST_RIFF_YV12</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12" title="GST_RIFF_yv12">GST_RIFF_yv12</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS" title="GST_RIFF_YVU9">GST_RIFF_YVU9</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk" title="gst_riff_read_chunk ()">gst_riff_read_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
 </dt>
 <dd></dd>
 <dt>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags">GstTagLicenseFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux">GstTagMux</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">gsttagmux</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass">GstTagMuxClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">gsttagmux</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-CONTRAST:CAPS" title="GST_TAG_CAPTURING_CONTRAST">GST_TAG_CAPTURING_CONTRAST</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" title="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION">GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-MODE:CAPS" title="GST_TAG_CAPTURING_EXPOSURE_MODE">GST_TAG_CAPTURING_EXPOSURE_MODE</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()">gst_tag_get_id3v2_tag_size</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">gsttagid3</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code" title="gst_tag_get_language_code()">gst_tag_get_language_code</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">gsttaglanguagecodes</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" title="gst_tag_get_licenses ()">gst_tag_get_licenses</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" title="gst_tag_get_license_description ()">gst_tag_get_license_description</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags" title="gst_tag_get_license_flags ()">gst_tag_get_license_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" title="gst_tag_get_license_jurisdiction ()">gst_tag_get_license_jurisdiction</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" title="gst_tag_get_license_nick ()">gst_tag_get_license_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" title="gst_tag_get_license_title ()">gst_tag_get_license_title</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" title="gst_tag_get_license_version ()">gst_tag_get_license_version</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE">GST_TAG_ID3V2_HEADER_SIZE</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count" title="gst_tag_id3_genre_count ()">gst_tag_id3_genre_count</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">gsttagid3</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-gst_tag_list_from_exif_buffer, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" title="gst_tag_list_from_exif_buffer ()">gst_tag_list_from_exif_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" title="gst_tag_list_from_exif_buffer_with_tiff_header ()">gst_tag_list_from_exif_buffer_with_tiff_header</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
 </dt>
 <dd></dd>
 <dt>
-gst_tag_list_from_exif_buffer_with_tiff_header, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()">gst_tag_list_from_id3v2_tag</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">gsttagid3</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4477,11 +4221,11 @@ gst_tag_list_from_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
-gst_tag_list_to_exif_buffer, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" title="gst_tag_list_to_exif_buffer ()">gst_tag_list_to_exif_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
 </dt>
 <dd></dd>
 <dt>
-gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" title="gst_tag_list_to_exif_buffer_with_tiff_header ()">gst_tag_list_to_exif_buffer_with_tiff_header</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4493,6 +4237,10 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" title="gst_tag_list_to_xmp_buffer_full ()">gst_tag_list_to_xmp_buffer_full</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">gsttagxmp</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMARTISTID:CAPS" title="GST_TAG_MUSICBRAINZ_ALBUMARTISTID">GST_TAG_MUSICBRAINZ_ALBUMARTISTID</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
 </dt>
 <dd></dd>
@@ -4537,6 +4285,34 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()">gst_tag_xmp_list_schemas</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">gsttagxmp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" title="gst_tag_xmp_writer_add_all_schemas ()">gst_tag_xmp_writer_add_all_schemas</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" title="gst_tag_xmp_writer_add_schema ()">gst_tag_xmp_writer_add_schema</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" title="gst_tag_xmp_writer_has_schema ()">gst_tag_xmp_writer_has_schema</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" title="gst_tag_xmp_writer_remove_all_schemas ()">gst_tag_xmp_writer_remove_all_schemas</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" title="gst_tag_xmp_writer_remove_schema ()">gst_tag_xmp_writer_remove_schema</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer" title="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()">gst_tag_xmp_writer_tag_list_to_xmp_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-struct" title="GstTuner">GstTuner</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
 </dt>
 <dd></dd>
@@ -4670,6 +4446,26 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition">GstVideoOverlayComposition</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass" title="GstVideoOverlayCompositionClass">GstVideoOverlayCompositionClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle">GstVideoOverlayRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass" title="GstVideoOverlayRectangleClass">GstVideoOverlayRectangleClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle">GstVideoRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
 </dt>
 <dd></dd>
@@ -4702,14 +4498,26 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()">gst_video_buffer_get_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS" title="GST_VIDEO_BUFFER_ONEFIELD">GST_VIDEO_BUFFER_ONEFIELD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" title="GST_VIDEO_BUFFER_PROGRESSIVE">GST_VIDEO_BUFFER_PROGRESSIVE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS" title="GST_VIDEO_BUFFER_RFF">GST_VIDEO_BUFFER_RFF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" title="gst_video_buffer_set_overlay_composition ()">gst_video_buffer_set_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS" title="GST_VIDEO_BUFFER_TFF">GST_VIDEO_BUFFER_TFF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4782,6 +4590,10 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS" title="GST_VIDEO_CAPS_ARGB_64">GST_VIDEO_CAPS_ARGB_64</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR:CAPS" title="GST_VIDEO_CAPS_BGR">GST_VIDEO_CAPS_BGR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4814,6 +4626,10 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210" title="GST_VIDEO_CAPS_r210">GST_VIDEO_CAPS_r210</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB:CAPS" title="GST_VIDEO_CAPS_RGB">GST_VIDEO_CAPS_RGB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4854,6 +4670,54 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS" title="GST_VIDEO_COMP1_MASK_15">GST_VIDEO_COMP1_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS" title="GST_VIDEO_COMP1_MASK_15_INT">GST_VIDEO_COMP1_MASK_15_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS" title="GST_VIDEO_COMP1_MASK_16">GST_VIDEO_COMP1_MASK_16</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS" title="GST_VIDEO_COMP1_MASK_16_INT">GST_VIDEO_COMP1_MASK_16_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS" title="GST_VIDEO_COMP2_MASK_15">GST_VIDEO_COMP2_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS" title="GST_VIDEO_COMP2_MASK_15_INT">GST_VIDEO_COMP2_MASK_15_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS" title="GST_VIDEO_COMP2_MASK_16">GST_VIDEO_COMP2_MASK_16</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS" title="GST_VIDEO_COMP2_MASK_16_INT">GST_VIDEO_COMP2_MASK_16_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS" title="GST_VIDEO_COMP3_MASK_15">GST_VIDEO_COMP3_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS" title="GST_VIDEO_COMP3_MASK_15_INT">GST_VIDEO_COMP3_MASK_15_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS" title="GST_VIDEO_COMP3_MASK_16">GST_VIDEO_COMP3_MASK_16</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS" title="GST_VIDEO_COMP3_MASK_16_INT">GST_VIDEO_COMP3_MASK_16_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame" title="gst_video_convert_frame ()">gst_video_convert_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4862,14 +4726,34 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" title="gst_video_event_is_force_key_unit ()">gst_video_event_is_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()">gst_video_event_new_downstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()">gst_video_event_new_still_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()">gst_video_event_new_upstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()">gst_video_event_parse_downstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()">gst_video_event_parse_still_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" title="gst_video_event_parse_upstream_force_key_unit ()">gst_video_event_parse_upstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert" title="gst_video_format_convert ()">gst_video_format_convert</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4878,6 +4762,10 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth" title="gst_video_format_get_component_depth ()">gst_video_format_get_component_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height" title="gst_video_format_get_component_height ()">gst_video_format_get_component_height</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4926,6 +4814,10 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps" title="gst_video_format_new_template_caps ()">gst_video_format_new_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps" title="gst_video_format_parse_caps ()">gst_video_format_parse_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4950,6 +4842,10 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps" title="gst_video_get_size_from_caps ()">gst_video_get_size_from_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS" title="GST_VIDEO_GREEN_MASK_15">GST_VIDEO_GREEN_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4998,6 +4894,82 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle" title="gst_video_overlay_composition_add_rectangle ()">gst_video_overlay_composition_add_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()">gst_video_overlay_composition_blend</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()">gst_video_overlay_composition_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle" title="gst_video_overlay_composition_get_rectangle ()">gst_video_overlay_composition_get_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" title="gst_video_overlay_composition_get_seqnum ()">gst_video_overlay_composition_get_seqnum</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()">gst_video_overlay_composition_make_writable</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" title="gst_video_overlay_composition_new ()">gst_video_overlay_composition_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" title="gst_video_overlay_composition_n_rectangles ()">gst_video_overlay_composition_n_rectangles</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" title="gst_video_overlay_composition_ref ()">gst_video_overlay_composition_ref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()">gst_video_overlay_composition_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()">gst_video_overlay_rectangle_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" title="gst_video_overlay_rectangle_get_pixels_argb ()">gst_video_overlay_rectangle_get_pixels_argb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" title="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()">gst_video_overlay_rectangle_get_pixels_unscaled_argb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()">gst_video_overlay_rectangle_get_render_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" title="gst_video_overlay_rectangle_get_seqnum ()">gst_video_overlay_rectangle_get_seqnum</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb" title="gst_video_overlay_rectangle_new_argb ()">gst_video_overlay_rectangle_new_argb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()">gst_video_overlay_rectangle_ref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" title="gst_video_overlay_rectangle_set_render_rectangle ()">gst_video_overlay_rectangle_set_render_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()">gst_video_overlay_rectangle_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-chroma-site" title="gst_video_parse_caps_chroma_site ()">gst_video_parse_caps_chroma_site</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -5101,6 +5073,6 @@ gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a2a2f9d..c9e910d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Compiling</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="next" href="gstreamer-app.html" title="App Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -31,7 +31,7 @@ How to compile against the base plugins libraries
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8313760"></a><h2>Compiling against the base plugins libraries</h2>
+<a name="idp7713840"></a><h2>Compiling against the base plugins libraries</h2>
 <p>
 To compile against these libraries, you need to tell the compiler where to 
 find the header files and libraries. This is done with the
@@ -59,6 +59,6 @@ which of the libraries you want to use.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index be735e7..97faa2c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-app.html" title="App Library">
 <link rel="prev" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
 <link rel="next" href="gstreamer-audio.html" title="Audio Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <pre class="synopsis">
 #include &lt;gst/app/gstappsink.h&gt;
 
-struct              <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink">GstAppSink</a>;
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps" title="gst_app_sink_set_caps ()">gst_app_sink_set_caps</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps" title="gst_app_sink_set_caps ()">gst_app_sink_set_caps</a>               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" title="gst_app_sink_get_caps ()">gst_app_sink_get_caps</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()">gst_app_sink_is_eos</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-emit-signals" title="gst_app_sink_set_emit_signals ()">gst_app_sink_set_emit_signals</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" title="gst_app_sink_get_caps ()">gst_app_sink_get_caps</a>               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()">gst_app_sink_is_eos</a>                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-emit-signals" title="gst_app_sink_set_emit_signals ()">gst_app_sink_set_emit_signals</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals" title="gst_app_sink_get_emit_signals ()">gst_app_sink_get_emit_signals</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-max-buffers" title="gst_app_sink_set_max_buffers ()">gst_app_sink_set_max_buffers</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals" title="gst_app_sink_get_emit_signals ()">gst_app_sink_get_emit_signals</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-max-buffers" title="gst_app_sink_set_max_buffers ()">gst_app_sink_set_max_buffers</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers" title="gst_app_sink_get_max_buffers ()">gst_app_sink_get_max_buffers</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop" title="gst_app_sink_set_drop ()">gst_app_sink_set_drop</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers" title="gst_app_sink_get_max_buffers ()">gst_app_sink_get_max_buffers</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop" title="gst_app_sink_set_drop ()">gst_app_sink_set_drop</a>               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop" title="gst_app_sink_get_drop ()">gst_app_sink_get_drop</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()">gst_app_sink_pull_preroll</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer" title="gst_app_sink_pull_buffer ()">gst_app_sink_pull_buffer</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list" title="gst_app_sink_pull_buffer_list ()">gst_app_sink_pull_buffer_list</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop" title="gst_app_sink_get_drop ()">gst_app_sink_get_drop</a>               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()">gst_app_sink_pull_preroll</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer" title="gst_app_sink_pull_buffer ()">gst_app_sink_pull_buffer</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list" title="gst_app_sink_pull_buffer_list ()">gst_app_sink_pull_buffer_list</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
                     <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks">GstAppSinkCallbacks</a>;
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()">gst_app_sink_set_callbacks</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()">gst_app_sink_set_callbacks</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
@@ -117,16 +116,8 @@ Last reviewed on 2008-12-17 (0.10.22)
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsink.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstAppSink"></a><h3>struct GstAppSink</h3>
-<pre class="programlisting">struct GstAppSink {
-  GstBaseSink basesink;
-};
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-app-sink-set-caps"></a><h3>gst_app_sink_set_caps ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_caps               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_caps               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 Set the capabilities on the appsink element.  This function takes
@@ -139,7 +130,7 @@ on the buffers to get the actual used caps.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -153,7 +144,7 @@ on the buffers to get the actual used caps.
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-caps"></a><h3>gst_app_sink_get_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_app_sink_get_caps               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_app_sink_get_caps               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 Get the configured caps on <em class="parameter"><code>appsink</code></em>.
 </p>
@@ -162,7 +153,7 @@ Get the configured caps on <em class="parameter"><code>appsink</code></em>.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -176,7 +167,7 @@ Get the configured caps on <em class="parameter"><code>appsink</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-is-eos"></a><h3>gst_app_sink_is_eos ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_sink_is_eos                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_sink_is_eos                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 Check if <em class="parameter"><code>appsink</code></em> is EOS, which is when no more buffers can be pulled because
 an EOS event was received.
@@ -190,7 +181,7 @@ PLAYING state.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -205,7 +196,7 @@ PLAYING state.
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-set-emit-signals"></a><h3>gst_app_sink_set_emit_signals ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_emit_signals       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_emit_signals       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
 <p>
 Make appsink emit the "new-preroll" and "new-buffer" signals. This option is
@@ -217,7 +208,7 @@ the application prefers to operate in pull mode.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -231,7 +222,7 @@ the application prefers to operate in pull mode.
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-emit-signals"></a><h3>gst_app_sink_get_emit_signals ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_sink_get_emit_signals       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_sink_get_emit_signals       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 Check if appsink will emit the "new-preroll" and "new-buffer" signals.
 </p>
@@ -240,13 +231,13 @@ Check if appsink will emit the "new-preroll" and "new-buffer" signals.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em> is emiting the "new-preroll" and "new-buffer"
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em> is emitting the "new-preroll" and "new-buffer"
 signals.</td>
 </tr>
 </tbody>
@@ -256,7 +247,7 @@ signals.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-set-max-buffers"></a><h3>gst_app_sink_set_max_buffers ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_max_buffers        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_max_buffers        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max</code></em>);</pre>
 <p>
 Set the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>. After this
@@ -268,7 +259,7 @@ elements until a buffer is pulled from <em class="parameter"><code>appsink</code
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -282,7 +273,7 @@ elements until a buffer is pulled from <em class="parameter"><code>appsink</code
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-max-buffers"></a><h3>gst_app_sink_get_max_buffers ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_app_sink_get_max_buffers        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_app_sink_get_max_buffers        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 Get the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>.
 </p>
@@ -291,7 +282,7 @@ Get the maximum amount of buffers that can be queued in <em class="parameter"><c
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -305,7 +296,7 @@ Get the maximum amount of buffers that can be queued in <em class="parameter"><c
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-set-drop"></a><h3>gst_app_sink_set_drop ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_drop               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_drop               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</code></em>);</pre>
 <p>
 Instruct <em class="parameter"><code>appsink</code></em> to drop old buffers when the maximum amount of queued
@@ -316,7 +307,7 @@ buffers is reached.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -330,7 +321,7 @@ buffers is reached.
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-drop"></a><h3>gst_app_sink_get_drop ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_sink_get_drop               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_sink_get_drop               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 Check if <em class="parameter"><code>appsink</code></em> will drop old buffers when the maximum amount of queued
 buffers is reached.
@@ -340,7 +331,7 @@ buffers is reached.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -356,7 +347,7 @@ filled.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-pull-preroll"></a><h3>gst_app_sink_pull_preroll ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_app_sink_pull_preroll           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_app_sink_pull_preroll           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 Get the last preroll buffer in <em class="parameter"><code>appsink</code></em>. This was the buffer that caused the
 appsink to preroll in the PAUSED state. This buffer can be pulled many times
@@ -373,7 +364,7 @@ when calling <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-si
 </p>
 <p>
 If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition. 
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
 </p>
 <p>
 This function blocks until a preroll buffer or EOS is received or the appsink
@@ -384,7 +375,7 @@ element is set to the READY/NULL state.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -398,10 +389,10 @@ element is set to the READY/NULL state.
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-pull-buffer"></a><h3>gst_app_sink_pull_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_app_sink_pull_buffer            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_app_sink_pull_buffer            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 This function blocks until a buffer or EOS becomes available or the appsink
-element is set to the READY/NULL state. 
+element is set to the READY/NULL state.
 </p>
 <p>
 This function will only return buffers when the appsink is in the PLAYING
@@ -419,7 +410,7 @@ If an EOS event was received before any buffers, this function returns
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -433,10 +424,10 @@ If an EOS event was received before any buffers, this function returns
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-pull-buffer-list"></a><h3>gst_app_sink_pull_buffer_list ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     gst_app_sink_pull_buffer_list       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     gst_app_sink_pull_buffer_list       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>
 This function blocks until a buffer list or EOS becomes available or the
-appsink element is set to the READY/NULL state. 
+appsink element is set to the READY/NULL state.
 </p>
 <p>
 This function will only return buffer lists when the appsink is in the
@@ -455,7 +446,7 @@ If an EOS event was received before any buffer lists, this function returns
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -518,7 +509,7 @@ or from any other thread.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-set-callbacks"></a><h3>gst_app_sink_set_callbacks ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_callbacks          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_sink_set_callbacks          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
@@ -528,7 +519,7 @@ This is an alternative to using the signals, it has lower overhead and is thus
 less expensive, but also less flexible.
 </p>
 <p>
-If callbacks are installed, no signals will be emited for performance
+If callbacks are installed, no signals will be emitted for performance
 reasons.
 </p>
 <div class="variablelist"><table border="0">
@@ -536,7 +527,7 @@ reasons.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
 </td>
 </tr>
 <tr>
@@ -563,6 +554,6 @@ reasons.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 9a23439..0413ae1 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-app.html" title="App Library">
 <link rel="prev" href="gstreamer-app.html" title="App Library">
 <link rel="next" href="gst-plugins-base-libs-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <pre class="synopsis">
 #include &lt;gst/app/gstappsrc.h&gt;
 
-struct              <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc">GstAppSrc</a>;
 enum                <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType">GstAppStreamType</a>;
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps" title="gst_app_src_set_caps ()">gst_app_src_set_caps</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps" title="gst_app_src_set_caps ()">gst_app_src_set_caps</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" title="gst_app_src_get_caps ()">gst_app_src_get_caps</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency" title="gst_app_src_get_latency ()">gst_app_src_get_latency</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *min</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *max</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency" title="gst_app_src_set_latency ()">gst_app_src_set_latency</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> min</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size" title="gst_app_src_set_size ()">gst_app_src_set_size</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size" title="gst_app_src_get_size ()">gst_app_src_get_size</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()">gst_app_src_set_stream_type</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" title="gst_app_src_get_caps ()">gst_app_src_get_caps</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency" title="gst_app_src_get_latency ()">gst_app_src_get_latency</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *min</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *max</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency" title="gst_app_src_set_latency ()">gst_app_src_set_latency</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> min</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> max</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size" title="gst_app_src_set_size ()">gst_app_src_set_size</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> size</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size" title="gst_app_src_get_size ()">gst_app_src_get_size</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()">gst_app_src_set_stream_type</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="type">GstAppStreamType</span></a> type</code></em>);
-<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a>    <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type" title="gst_app_src_get_stream_type ()">gst_app_src_get_stream_type</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes" title="gst_app_src_set_max_bytes ()">gst_app_src_set_max_bytes</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes" title="gst_app_src_get_max_bytes ()">gst_app_src_get_max_bytes</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals" title="gst_app_src_set_emit_signals ()">gst_app_src_set_emit_signals</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a>    <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type" title="gst_app_src_get_stream_type ()">gst_app_src_get_stream_type</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes" title="gst_app_src_set_max_bytes ()">gst_app_src_set_max_bytes</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> max</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes" title="gst_app_src_get_max_bytes ()">gst_app_src_get_max_bytes</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals" title="gst_app_src_set_emit_signals ()">gst_app_src_set_emit_signals</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);
                     <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks">GstAppSrcCallbacks</a>;
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()">gst_app_src_set_callbacks</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()">gst_app_src_set_callbacks</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks"><span class="type">GstAppSrcCallbacks</span></a> *callbacks</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()">gst_app_src_push_buffer</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()">gst_app_src_push_buffer</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()">gst_app_src_end_of_stream</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()">gst_app_src_end_of_stream</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -94,7 +93,7 @@ byte buffers.
 </p>
 <p>
 The main way of handing data to the appsrc element is by calling the
-<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()"><code class="function">gst_app_src_push_buffer()</code></a> method or by emiting the push-buffer action signal.
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()"><code class="function">gst_app_src_push_buffer()</code></a> method or by emitting the push-buffer action signal.
 This will put the buffer onto a queue from which appsrc will read from in its
 streaming thread. It is important to note that data transport will not happen
 from the thread that performed the push-buffer call.
@@ -108,7 +107,7 @@ block the push-buffer method until free data becomes available again.
 </p>
 <p>
 When the internal queue is running out of data, the "need-data" signal is
-emited, which signals the application that it should start pushing more data
+emitted, which signals the application that it should start pushing more data
 into appsrc.
 </p>
 <p>
@@ -124,7 +123,7 @@ These signals allow the application to operate the appsrc in two different
 ways:
 </p>
 <p>
-The push model, in which the application repeadedly calls the push-buffer method
+The push model, in which the application repeatedly calls the push-buffer method
 with a new buffer. Optionally, the queue size in the appsrc can be controlled
 with the enough-data and need-data signals by respectively stopping/starting
 the push-buffer calls. This is a typical mode of operation for the
@@ -145,7 +144,7 @@ For the stream and seekable modes, setting this property is optional but
 recommended.
 </p>
 <p>
-When the application is finished pushing data into appsrc, it should call 
+When the application is finished pushing data into appsrc, it should call
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()"><code class="function">gst_app_src_end_of_stream()</code></a> or emit the end-of-stream action signal. After
 this call, no more buffers can be pushed into appsrc until a flushing seek
 happened or the state of the appsrc has gone through READY.
@@ -157,17 +156,8 @@ Last reviewed on 2008-12-17 (0.10.10)
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstAppSrc"></a><h3>struct GstAppSrc</h3>
-<pre class="programlisting">struct GstAppSrc {
-  GstBaseSrc basesrc;
-};
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstAppStreamType"></a><h3>enum GstAppStreamType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_APP_STREAM_TYPE_STREAM,
   GST_APP_STREAM_TYPE_SEEKABLE,
   GST_APP_STREAM_TYPE_RANDOM_ACCESS
@@ -203,7 +193,7 @@ such as in a local file.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-caps"></a><h3>gst_app_src_set_caps ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_caps                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_caps                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 Set the capabilities on the appsrc element.  This function takes
@@ -216,7 +206,7 @@ buffers must match the caps or left NULL.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -230,7 +220,7 @@ buffers must match the caps or left NULL.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-caps"></a><h3>gst_app_src_get_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_app_src_get_caps                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_app_src_get_caps                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>
 Get the configured caps on <em class="parameter"><code>appsrc</code></em>.
 </p>
@@ -239,7 +229,7 @@ Get the configured caps on <em class="parameter"><code>appsrc</code></em>.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -253,9 +243,9 @@ Get the configured caps on <em class="parameter"><code>appsrc</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-latency"></a><h3>gst_app_src_get_latency ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_get_latency             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *min</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *max</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_get_latency             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *min</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *max</code></em>);</pre>
 <p>
 Retrieve the min and max latencies in <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> respectively.
 </p>
@@ -264,7 +254,7 @@ Retrieve the min and max latencies in <em class="parameter"><code>min</code></em
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -282,9 +272,9 @@ Retrieve the min and max latencies in <em class="parameter"><code>min</code></em
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-latency"></a><h3>gst_app_src_set_latency ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_latency             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> min</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_latency             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> min</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> max</code></em>);</pre>
 <p>
 Configure the <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> latency in <em class="parameter"><code>src</code></em>. If <em class="parameter"><code>min</code></em> is set to -1, the
 default latency calculations for pseudo-live sources will be used.
@@ -294,7 +284,7 @@ default latency calculations for pseudo-live sources will be used.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -312,8 +302,8 @@ default latency calculations for pseudo-live sources will be used.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-size"></a><h3>gst_app_src_set_size ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_size                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_size                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> size</code></em>);</pre>
 <p>
 Set the size of the stream in bytes. A value of -1 means that the size is
 not known.
@@ -323,7 +313,7 @@ not known.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -337,7 +327,7 @@ not known.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-size"></a><h3>gst_app_src_get_size ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_app_src_get_size                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_app_src_get_size                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>
 Get the size of the stream in bytes. A value of -1 means that the size is
 not known.
@@ -347,7 +337,7 @@ not known.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -361,7 +351,7 @@ not known.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-stream-type"></a><h3>gst_app_src_set_stream_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_stream_type         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_stream_type         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="type">GstAppStreamType</span></a> type</code></em>);</pre>
 <p>
 Set the stream type on <em class="parameter"><code>appsrc</code></em>. For seekable streams, the "seek" signal must
@@ -375,7 +365,7 @@ A stream_type stream
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -389,7 +379,7 @@ A stream_type stream
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-stream-type"></a><h3>gst_app_src_get_stream_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a>    gst_app_src_get_stream_type         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a>    gst_app_src_get_stream_type         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>
 Get the stream type. Control the stream type of <em class="parameter"><code>appsrc</code></em>
 with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()"><code class="function">gst_app_src_set_stream_type()</code></a>.
@@ -399,7 +389,7 @@ with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-str
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -413,8 +403,8 @@ with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-str
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-max-bytes"></a><h3>gst_app_src_set_max_bytes ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_max_bytes           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_max_bytes           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> max</code></em>);</pre>
 <p>
 Set the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>.
 After the maximum amount of bytes are queued, <em class="parameter"><code>appsrc</code></em> will emit the
@@ -425,7 +415,7 @@ After the maximum amount of bytes are queued, <em class="parameter"><code>appsrc
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -439,7 +429,7 @@ After the maximum amount of bytes are queued, <em class="parameter"><code>appsrc
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-max-bytes"></a><h3>gst_app_src_get_max_bytes ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_app_src_get_max_bytes           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_app_src_get_max_bytes           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>
 Get the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>.
 </p>
@@ -448,7 +438,7 @@ Get the maximum amount of bytes that can be queued in <em class="parameter"><cod
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -462,7 +452,7 @@ Get the maximum amount of bytes that can be queued in <em class="parameter"><cod
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-emit-signals"></a><h3>gst_app_src_get_emit_signals ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_src_get_emit_signals        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_app_src_get_emit_signals        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>
 Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
 </p>
@@ -471,13 +461,13 @@ Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsrc</code></em> is emiting the "new-preroll" and "new-buffer"
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsrc</code></em> is emitting the "new-preroll" and "new-buffer"
 signals.</td>
 </tr>
 </tbody>
@@ -487,7 +477,7 @@ signals.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-emit-signals"></a><h3>gst_app_src_set_emit_signals ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_emit_signals        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_emit_signals        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
 <p>
 Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
@@ -499,7 +489,7 @@ the application prefers to operate in pull mode.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -536,7 +526,7 @@ and when it is set to -1, any number of bytes can be pushed into <em class="para
 <td><p><span class="term"><em class="structfield"><code><a name="GstAppSrcCallbacks.enough-data"></a>enough_data</code></em> ()</span></p></td>
 <td>Called when appsrc has enough data. It is recommended that the
 application stops calling push-buffer until the need_data callback is
-emited again to avoid excessive buffer queueing.</td>
+emitted again to avoid excessive buffer queueing.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstAppSrcCallbacks.seek-data"></a>seek_data</code></em> ()</span></p></td>
@@ -551,7 +541,7 @@ This callback is only called for seekable stream types.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-set-callbacks"></a><h3>gst_app_src_set_callbacks ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_callbacks           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_app_src_set_callbacks           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks"><span class="type">GstAppSrcCallbacks</span></a> *callbacks</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
@@ -562,7 +552,7 @@ This is an alternative to using the signals, it has lower overhead and is thus
 less expensive, but also less flexible.
 </p>
 <p>
-If callbacks are installed, no signals will be emited for performance
+If callbacks are installed, no signals will be emitted for performance
 reasons.
 </p>
 <div class="variablelist"><table border="0">
@@ -570,7 +560,7 @@ reasons.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -592,7 +582,7 @@ reasons.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-push-buffer"></a><h3>gst_app_src_push_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_app_src_push_buffer             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_app_src_push_buffer             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Adds a buffer to the queue of buffers that the appsrc element will
@@ -607,7 +597,7 @@ space becomes available in the queue.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -628,7 +618,7 @@ space becomes available in the queue.
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-end-of-stream"></a><h3>gst_app_src_end_of_stream ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_app_src_end_of_stream           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_app_src_end_of_stream           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>
 Indicates to the appsrc element that the last buffer queued in the
 element is the last buffer of the stream.
@@ -638,7 +628,7 @@ element is the last buffer of the stream.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
 </td>
 </tr>
 <tr>
@@ -659,6 +649,6 @@ element is the last buffer of the stream.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 9bdc5f1..d00ceaf 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encoding-profile</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
 <link rel="next" href="gstreamer-video.html" title="Video Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
                     <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct" title="GstEncodingProfile">GstEncodingProfile</a>;
 #define             <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" title="gst_encoding_profile_unref()">gst_encoding_profile_unref</a>          (profile)
 #define             <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" title="gst_encoding_profile_ref()">gst_encoding_profile_ref</a>            (profile)
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *  <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *profilename</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer" title="gst_encoding_profile_from_discoverer ()">gst_encoding_profile_from_discoverer</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *      <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *     <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *      <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *     <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
@@ -76,7 +78,7 @@ const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreame
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
 
                     <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct" title="GstEncodingContainerProfile">GstEncodingContainerProfile</a>;
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> *   <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>
                                                         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
@@ -91,14 +93,14 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-L
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *profile</code></em>);
 
                     <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>;
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> *  <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);
 
                     <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct" title="GstEncodingVideoProfile">GstEncodingVideoProfile</a>;
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> *  <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
@@ -180,7 +182,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-L
 <p>
 </p>
 <div class="refsect2">
-<a name="idp27641072"></a><p>
+<a name="idp29241168"></a><p>
 Functions to create and handle encoding profiles.
 </p>
 <p>
@@ -210,7 +212,7 @@ to) file using the <a class="link" href="gst-plugins-base-libs-encoding-profile.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp27648640"></a><h3>Example: Creating a profile</h3>
+<a name="idp29248736"></a><h3>Example: Creating a profile</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -281,7 +283,7 @@ GstEncodingProfile <span class="gtkdoc opt">*</span>
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp27651632"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="idp29251728"></a><h3>Example: Listing categories, targets and profiles</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -403,7 +405,7 @@ Increases the reference count of the <em class="parameter"><code>profile</code><
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-find"></a><h3>gst_encoding_profile_find ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *  gst_encoding_profile_find         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gst_encoding_profile_find          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *profilename</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>);</pre>
 <p>
@@ -438,8 +440,35 @@ Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEn
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-encoding-profile-from-discoverer"></a><h3>gst_encoding_profile_from_discoverer ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gst_encoding_profile_from_discoverer
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<p>
+Creates a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> matching the formats from the given
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. Streams other than audio or video (eg,
+subtitles), are currently ignored.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>The <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> to read from. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-encoding-profile-get-name"></a><h3>gst_encoding_profile_get_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *            gst_encoding_profile_get_name       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_encoding_profile_get_name       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -459,7 +488,7 @@ Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEn
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-description"></a><h3>gst_encoding_profile_get_description ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *            gst_encoding_profile_get_description
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_encoding_profile_get_description
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -480,7 +509,7 @@ Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEn
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-format"></a><h3>gst_encoding_profile_get_format ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *          gst_encoding_profile_get_format     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *     gst_encoding_profile_get_format     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -500,7 +529,7 @@ Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEn
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-preset"></a><h3>gst_encoding_profile_get_preset ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *            gst_encoding_profile_get_preset     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_encoding_profile_get_preset     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -541,7 +570,7 @@ container profile. If 0, it is not a mandatory stream.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-restriction"></a><h3>gst_encoding_profile_get_restriction ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *          gst_encoding_profile_get_restriction
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *     gst_encoding_profile_get_restriction
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -801,7 +830,7 @@ Encoding profiles for containers. Keeps track of a list of <a class="link" href=
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-container-profile-new"></a><h3>gst_encoding_container_profile_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> *   gst_encoding_container_profile_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> * gst_encoding_container_profile_new
                                                         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
@@ -922,7 +951,7 @@ Variant of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#Gst
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-audio-profile-new"></a><h3>gst_encoding_audio_profile_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> *  gst_encoding_audio_profile_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> * gst_encoding_audio_profile_new
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
@@ -977,7 +1006,7 @@ Variant of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#Gst
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-video-profile-new"></a><h3>gst_encoding_video_profile_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> *  gst_encoding_video_profile_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> * gst_encoding_video_profile_new
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
@@ -1103,7 +1132,7 @@ you may set it to 0 (the default value).
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> variableframerate</code></em>);</pre>
 <p>
-If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming streamm will be allowed to have non-constant
+If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming stream will be allowed to have non-constant
 framerate. If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (default value), then the incoming stream will
 be normalized by dropping/duplicating frames in order to produce a
 constance framerate.
@@ -1131,7 +1160,7 @@ constance framerate.
 </pre>
 <p>
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for device-specific targets.
-The name of the target will usually be the contructor and model of the device,
+The name of the target will usually be the constructor and model of the device,
 and that target will contain <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for that device.
 </p>
 </div>
@@ -1601,6 +1630,6 @@ of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncoding
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index dfa64fe..efadc2d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gstreamer-audio.html" title="Audio Library">
 <link rel="next" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <pre class="synopsis">
 #include &lt;gst/audio/audio.h&gt;
 
+enum                <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags">GstAudioFlags</a>;
+enum                <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat">GstAudioFormat</a>;
+enum                <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags">GstAudioFormatFlags</a>;
+struct              <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo">GstAudioFormatInfo</a>;
+struct              <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo">GstAudioInfo</a>;
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()">gst_audio_info_init</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear" title="gst_audio_info_clear ()">gst_audio_info_clear</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()">gst_audio_info_copy</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()">gst_audio_info_free</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()">gst_audio_info_from_caps</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" title="gst_audio_info_to_caps ()">gst_audio_info_to_caps</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert" title="gst_audio_info_convert ()">gst_audio_info_convert</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="returnvalue">GstAudioFormatInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info" title="gst_audio_format_get_info ()">gst_audio_format_get_info</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>);
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS" title="GST_AUDIO_FORMAT_INFO_DEPTH()">GST_AUDIO_FORMAT_INFO_DEPTH</a>         (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS" title="GST_AUDIO_FORMAT_INFO_ENDIANNESS()">GST_AUDIO_FORMAT_INFO_ENDIANNESS</a>    (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS" title="GST_AUDIO_FORMAT_INFO_FLAGS()">GST_AUDIO_FORMAT_INFO_FLAGS</a>         (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS" title="GST_AUDIO_FORMAT_INFO_FORMAT()">GST_AUDIO_FORMAT_INFO_FORMAT</a>        (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_FLOAT()">GST_AUDIO_FORMAT_INFO_IS_FLOAT</a>      (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_INTEGER()">GST_AUDIO_FORMAT_INFO_IS_INTEGER</a>    (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN</a> (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN</a>(info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_SIGNED()">GST_AUDIO_FORMAT_INFO_IS_SIGNED</a>     (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS" title="GST_AUDIO_FORMAT_INFO_NAME()">GST_AUDIO_FORMAT_INFO_NAME</a>          (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS" title="GST_AUDIO_FORMAT_INFO_WIDTH()">GST_AUDIO_FORMAT_INFO_WIDTH</a>         (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS" title="GST_AUDIO_INFO_BPF()">GST_AUDIO_INFO_BPF</a>                  (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS" title="GST_AUDIO_INFO_BPS()">GST_AUDIO_INFO_BPS</a>                  (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS" title="GST_AUDIO_INFO_CHANNELS()">GST_AUDIO_INFO_CHANNELS</a>             (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS" title="GST_AUDIO_INFO_DEPTH()">GST_AUDIO_INFO_DEPTH</a>                (i)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS" title="GST_AUDIO_INFO_FLAGS()">GST_AUDIO_INFO_FLAGS</a>                (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS" title="GST_AUDIO_INFO_FORMAT()">GST_AUDIO_INFO_FORMAT</a>               (i)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS" title="GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()">GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS</a>(info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS" title="GST_AUDIO_INFO_NAME()">GST_AUDIO_INFO_NAME</a>                 (i)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS" title="GST_AUDIO_INFO_POSITION()">GST_AUDIO_INFO_POSITION</a>             (info,
+                                                         c)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS" title="GST_AUDIO_INFO_RATE()">GST_AUDIO_INFO_RATE</a>                 (info)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS" title="GST_AUDIO_INFO_WIDTH()">GST_AUDIO_INFO_WIDTH</a>                (i)
 enum                <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" title="enum GstAudioFieldFlag">GstAudioFieldFlag</a>;
 #define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS" title="GST_FRAMES_TO_CLOCK_TIME()">GST_FRAMES_TO_CLOCK_TIME</a>            (frames,
                                                          rate)
@@ -74,6 +115,696 @@ This library contains some helper functions for audio elements.
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.details"></a><h2>Details</h2>
 <div class="refsect2">
+<a name="GstAudioFlags"></a><h3>enum GstAudioFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_AUDIO_FLAG_NONE         = 0,
+  GST_AUDIO_FLAG_DEFAULT_POSITIONS = (1 &lt;&lt; 0)
+} GstAudioFlags;
+</pre>
+<p>
+Extra audio flags
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FLAG_NONE</code></span></p></td>
+<td>no valid flag
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FLAG_DEFAULT_POSITIONS</code></span></p></td>
+<td>unpositioned audio layout, position array
+    contains the default layout (meaning that the channel layout was not
+    explicitly specified in the caps)
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioFormat"></a><h3>enum GstAudioFormat</h3>
+<pre class="programlisting">typedef enum {
+  GST_AUDIO_FORMAT_UNKNOWN,
+  /* 8 bit */
+  GST_AUDIO_FORMAT_S8,
+  GST_AUDIO_FORMAT_U8,
+  /* 16 bit */
+  GST_AUDIO_FORMAT_S16LE,
+  GST_AUDIO_FORMAT_S16BE,
+  GST_AUDIO_FORMAT_U16LE,
+  GST_AUDIO_FORMAT_U16BE,
+  /* 24 bit in low 3 bytes of 32 bits*/
+  GST_AUDIO_FORMAT_S24_32LE,
+  GST_AUDIO_FORMAT_S24_32BE,
+  GST_AUDIO_FORMAT_U24_32LE,
+  GST_AUDIO_FORMAT_U24_32BE,
+  /* 32 bit */
+  GST_AUDIO_FORMAT_S32LE,
+  GST_AUDIO_FORMAT_S32BE,
+  GST_AUDIO_FORMAT_U32LE,
+  GST_AUDIO_FORMAT_U32BE,
+  /* 24 bit in 3 bytes*/
+  GST_AUDIO_FORMAT_S24LE,
+  GST_AUDIO_FORMAT_S24BE,
+  GST_AUDIO_FORMAT_U24LE,
+  GST_AUDIO_FORMAT_U24BE,
+  /* 20 bit in 3 bytes*/
+  GST_AUDIO_FORMAT_S20LE,
+  GST_AUDIO_FORMAT_S20BE,
+  GST_AUDIO_FORMAT_U20LE,
+  GST_AUDIO_FORMAT_U20BE,
+  /* 18 bit in 3 bytes*/
+  GST_AUDIO_FORMAT_S18LE,
+  GST_AUDIO_FORMAT_S18BE,
+  GST_AUDIO_FORMAT_U18LE,
+  GST_AUDIO_FORMAT_U18BE,
+  /* float */
+  GST_AUDIO_FORMAT_F32LE,
+  GST_AUDIO_FORMAT_F32BE,
+  GST_AUDIO_FORMAT_F64LE,
+  GST_AUDIO_FORMAT_F64BE,
+  /* native endianness equivalents */
+  GST_AUDIO_FORMAT_S16 = _GST_AUDIO_FORMAT_NE(S16),
+  GST_AUDIO_FORMAT_U16 = _GST_AUDIO_FORMAT_NE(U16),
+  GST_AUDIO_FORMAT_S24_32 = _GST_AUDIO_FORMAT_NE(S24_32),
+  GST_AUDIO_FORMAT_U24_32 = _GST_AUDIO_FORMAT_NE(U24_32),
+  GST_AUDIO_FORMAT_S32 = _GST_AUDIO_FORMAT_NE(S32),
+  GST_AUDIO_FORMAT_U32 = _GST_AUDIO_FORMAT_NE(U32),
+  GST_AUDIO_FORMAT_S24 = _GST_AUDIO_FORMAT_NE(S24),
+  GST_AUDIO_FORMAT_U24 = _GST_AUDIO_FORMAT_NE(U24),
+  GST_AUDIO_FORMAT_S20 = _GST_AUDIO_FORMAT_NE(S20),
+  GST_AUDIO_FORMAT_U20 = _GST_AUDIO_FORMAT_NE(U20),
+  GST_AUDIO_FORMAT_S18 = _GST_AUDIO_FORMAT_NE(S18),
+  GST_AUDIO_FORMAT_U18 = _GST_AUDIO_FORMAT_NE(U18),
+  GST_AUDIO_FORMAT_F32 = _GST_AUDIO_FORMAT_NE(F32),
+  GST_AUDIO_FORMAT_F64 = _GST_AUDIO_FORMAT_NE(F64)
+} GstAudioFormat;
+</pre>
+<p>
+Enum value describing the most common audio formats.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_UNKNOWN</code></span></p></td>
+<td>unknown audio format
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S8:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S8</code></span></p></td>
+<td>8 bits in 8 bits, signed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U8:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U8</code></span></p></td>
+<td>8 bits in 8 bits, unsigned
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S16LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S16LE</code></span></p></td>
+<td>16 bits in 16 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S16BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S16BE</code></span></p></td>
+<td>16 bits in 16 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U16LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U16LE</code></span></p></td>
+<td>16 bits in 16 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U16BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U16BE</code></span></p></td>
+<td>16 bits in 16 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24-32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24_32LE</code></span></p></td>
+<td>24 bits in 32 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24-32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24_32BE</code></span></p></td>
+<td>24 bits in 32 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24-32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24_32LE</code></span></p></td>
+<td>24 bits in 32 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24-32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24_32BE</code></span></p></td>
+<td>24 bits in 32 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S32LE</code></span></p></td>
+<td>32 bits in 32 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S32BE</code></span></p></td>
+<td>32 bits in 32 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U32LE</code></span></p></td>
+<td>32 bits in 32 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U32BE</code></span></p></td>
+<td>32 bits in 32 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24LE</code></span></p></td>
+<td>24 bits in 24 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24BE</code></span></p></td>
+<td>24 bits in 24 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24LE</code></span></p></td>
+<td>24 bits in 24 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24BE</code></span></p></td>
+<td>24 bits in 24 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S20LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S20LE</code></span></p></td>
+<td>20 bits in 24 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S20BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S20BE</code></span></p></td>
+<td>20 bits in 24 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U20LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U20LE</code></span></p></td>
+<td>20 bits in 24 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U20BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U20BE</code></span></p></td>
+<td>20 bits in 24 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S18LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S18LE</code></span></p></td>
+<td>18 bits in 24 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S18BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S18BE</code></span></p></td>
+<td>18 bits in 24 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U18LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U18LE</code></span></p></td>
+<td>18 bits in 24 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U18BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U18BE</code></span></p></td>
+<td>18 bits in 24 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F32LE</code></span></p></td>
+<td>32-bit floating point samples, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F32BE</code></span></p></td>
+<td>32-bit floating point samples, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F64LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F64LE</code></span></p></td>
+<td>64-bit floating point samples, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F64BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F64BE</code></span></p></td>
+<td>64-bit floating point samples, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S16:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S16</code></span></p></td>
+<td>16 bits in 16 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U16:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U16</code></span></p></td>
+<td>16 bits in 16 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24-32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24_32</code></span></p></td>
+<td>24 bits in 32 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24-32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24_32</code></span></p></td>
+<td>24 bits in 32 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S32</code></span></p></td>
+<td>32 bits in 32 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U32</code></span></p></td>
+<td>32 bits in 32 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24</code></span></p></td>
+<td>24 bits in 24 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24</code></span></p></td>
+<td>24 bits in 24 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S20:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S20</code></span></p></td>
+<td>20 bits in 24 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U20:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U20</code></span></p></td>
+<td>20 bits in 24 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S18:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S18</code></span></p></td>
+<td>18 bits in 24 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U18:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U18</code></span></p></td>
+<td>18 bits in 24 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F32</code></span></p></td>
+<td>32-bit floating point samples, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F64:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F64</code></span></p></td>
+<td>64-bit floating point samples, native endianness
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioFormatFlags"></a><h3>enum GstAudioFormatFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_AUDIO_FORMAT_FLAG_INTEGER  = (1 &lt;&lt; 0),
+  GST_AUDIO_FORMAT_FLAG_FLOAT    = (1 &lt;&lt; 1),
+  GST_AUDIO_FORMAT_FLAG_SIGNED   = (1 &lt;&lt; 2),
+  GST_AUDIO_FORMAT_FLAG_COMPLEX  = (1 &lt;&lt; 4)
+} GstAudioFormatFlags;
+</pre>
+<p>
+The different audio flags that a format info can have.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_INTEGER</code></span></p></td>
+<td>integer samples
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_FLOAT</code></span></p></td>
+<td>float samples
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_SIGNED</code></span></p></td>
+<td>signed samples
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_COMPLEX</code></span></p></td>
+<td>complex layout
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioFormatInfo"></a><h3>struct GstAudioFormatInfo</h3>
+<pre class="programlisting">struct GstAudioFormatInfo {
+  GstAudioFormat      format;
+  const gchar *       name;
+  GstAudioFormatFlags flags;
+  gint                endianness;
+  gint                width;
+  gint                depth;
+  guint8              silence[8];
+};
+</pre>
+<p>
+Information for an audio format.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.format"></a>format</code></em>;</span></p></td>
+<td><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAudioFormatInfo.name"></a>name</code></em>;</span></p></td>
+<td>string representation of the format</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags"><span class="type">GstAudioFormatFlags</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.flags"></a>flags</code></em>;</span></p></td>
+<td><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags"><span class="type">GstAudioFormatFlags</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.endianness"></a>endianness</code></em>;</span></p></td>
+<td>the endianness</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.width"></a>width</code></em>;</span></p></td>
+<td>amount of bits used for one sample</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.depth"></a>depth</code></em>;</span></p></td>
+<td>amount of valid bits in <em class="parameter"><code>width</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstAudioFormatInfo.silence"></a>silence</code></em>[8];</span></p></td>
+<td>
+<em class="parameter"><code>width</code></em>/8 bytes with 1 silent sample</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioInfo"></a><h3>struct GstAudioInfo</h3>
+<pre class="programlisting">struct GstAudioInfo {
+  const GstAudioFormatInfo *finfo;
+  GstAudioFlags             flags;
+  gint                      rate;
+  gint                      channels;
+  gint                      bpf;
+  GstAudioChannelPosition   position[64];
+};
+</pre>
+<p>
+Information describing audio properties. This information can be filled
+in from GstCaps with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()"><code class="function">gst_audio_info_from_caps()</code></a>.
+</p>
+<p>
+Use the provided macros to access the info in this structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *<em class="structfield"><code><a name="GstAudioInfo.finfo"></a>finfo</code></em>;</span></p></td>
+<td>the format info of the audio</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags"><span class="type">GstAudioFlags</span></a> <em class="structfield"><code><a name="GstAudioInfo.flags"></a>flags</code></em>;</span></p></td>
+<td>additional audio flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.rate"></a>rate</code></em>;</span></p></td>
+<td>the audio sample rate</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.channels"></a>channels</code></em>;</span></p></td>
+<td>the number of channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.bpf"></a>bpf</code></em>;</span></p></td>
+<td>the number of bytes for one frame, this is the size of one
+sample * <em class="parameter"><code>channels</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> <em class="structfield"><code><a name="GstAudioInfo.position"></a>position</code></em>[64];</span></p></td>
+<td>the position for each channel (assume all NONE for &gt;64 channels)</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-init"></a><h3>gst_audio_info_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_info_init                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-clear"></a><h3>gst_audio_info_clear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_info_clear                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-copy"></a><h3>gst_audio_info_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      gst_audio_info_copy                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-free"></a><h3>gst_audio_info_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_info_free                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-from-caps"></a><h3>gst_audio_info_from_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_info_from_caps            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Parse <em class="parameter"><code>caps</code></em> and update <em class="parameter"><code>info</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>caps</code></em> could be parsed</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-to-caps"></a><h3>gst_audio_info_to_caps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_audio_info_to_caps              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+<p>
+Convert the values of <em class="parameter"><code>info</code></em> into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> containing the
+info of <em class="parameter"><code>info</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-convert"></a><h3>gst_audio_info_convert ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_info_convert              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-format-get-info"></a><h3>gst_audio_format_get_info ()</h3>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="returnvalue">GstAudioFormatInfo</span></a> * gst_audio_format_get_info    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-DEPTH:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_DEPTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_DEPTH(info)            ((info)-&gt;depth)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_ENDIANNESS()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_ENDIANNESS(info)       ((info)-&gt;endianness)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-FLAGS:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_FLAGS()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_FLAGS(info)            ((info)-&gt;flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-FORMAT:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_FORMAT()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_FORMAT(info)           ((info)-&gt;format)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_FLOAT()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_FLOAT(info)         !!((info)-&gt;flags &amp; GST_AUDIO_FORMAT_FLAG_FLOAT)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_INTEGER()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_INTEGER(info)       !!((info)-&gt;flags &amp; GST_AUDIO_FORMAT_FLAG_INTEGER)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN(info)    ((info)-&gt;endianness == G_BIG_ENDIAN)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN(info) ((info)-&gt;endianness == G_LITTLE_ENDIAN)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_SIGNED()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_SIGNED(info)        !!((info)-&gt;flags &amp; GST_AUDIO_FORMAT_FLAG_SIGNED)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-NAME:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_NAME()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_NAME(info)             ((info)-&gt;name)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-WIDTH:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_WIDTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_WIDTH(info)            ((info)-&gt;width)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-BPF:CAPS"></a><h3>GST_AUDIO_INFO_BPF()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_BPF(info)             ((info)-&gt;bpf)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-BPS:CAPS"></a><h3>GST_AUDIO_INFO_BPS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_BPS(info)             (GST_AUDIO_INFO_DEPTH(info) &gt;&gt; 3)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-CHANNELS:CAPS"></a><h3>GST_AUDIO_INFO_CHANNELS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_CHANNELS(info)        ((info)-&gt;channels)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-DEPTH:CAPS"></a><h3>GST_AUDIO_INFO_DEPTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_DEPTH(i)              (GST_AUDIO_FORMAT_INFO_DEPTH((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-FLAGS:CAPS"></a><h3>GST_AUDIO_INFO_FLAGS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_FLAGS(info)           ((info)-&gt;flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-FORMAT:CAPS"></a><h3>GST_AUDIO_INFO_FORMAT()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_FORMAT(i)             (GST_AUDIO_FORMAT_INFO_FORMAT((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS"></a><h3>GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS(info) ((info)-&gt;flags &amp; GST_AUDIO_FLAG_DEFAULT_POSITIONS)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-NAME:CAPS"></a><h3>GST_AUDIO_INFO_NAME()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_NAME(i)               (GST_AUDIO_FORMAT_INFO_NAME((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-POSITION:CAPS"></a><h3>GST_AUDIO_INFO_POSITION()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_POSITION(info,c)      ((info)-&gt;position[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-RATE:CAPS"></a><h3>GST_AUDIO_INFO_RATE()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_RATE(info)            ((info)-&gt;rate)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-WIDTH:CAPS"></a><h3>GST_AUDIO_INFO_WIDTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_WIDTH(i)              (GST_AUDIO_FORMAT_INFO_WIDTH((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstAudioFieldFlag"></a><h3>enum GstAudioFieldFlag</h3>
 <pre class="programlisting">typedef enum {
   GST_AUDIO_FIELD_RATE          = (1 &lt;&lt; 0),
@@ -354,7 +1085,7 @@ Do not use anymore.
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frame_size</code></em>);</pre>
 <p>
-Clip the the buffer to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><code class="literal">GstSegment</code></a>.
+Clip the buffer to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><code class="literal">GstSegment</code></a>.
 </p>
 <p>
 After calling this function the caller does not own a reference to 
@@ -395,6 +1126,6 @@ is not clipped</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 0eeabb1..73dc88a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioclock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
-<link rel="next" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiodecoder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gstaudioclock.synopsis" class="shortcut">Top</a>
@@ -91,10 +91,6 @@ Last reviewed on 2006-09-27 (0.10.12)
 <p>
 Opaque <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a>.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -312,6 +308,6 @@ the rest of its lifetime.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
new file mode 100644 (file)
index 0000000..f5985c5
--- /dev/null
@@ -0,0 +1,1067 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudiodecoder</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
+<link rel="next" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioclock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioencoder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudiodecoder.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudiodecoder.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudiodecoder.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudiodecoder.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudiodecoder"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiodecoder.top_of_page"></a>gstaudiodecoder</span></h2>
+<p>gstaudiodecoder — Base class for audio decoders</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudiodecoder.synopsis"></a><h2>Synopsis</h2>
+<a name="GstAudioDecoder"></a><pre class="synopsis">
+#include &lt;gst/audio/gstaudiodecoder.h&gt;
+
+struct              <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct" title="struct GstAudioDecoder">GstAudioDecoder</a>;
+struct              <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass" title="struct GstAudioDecoderClass">GstAudioDecoderClass</a>;
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS" title="GST_AUDIO_DECODER_ERROR()">GST_AUDIO_DECODER_ERROR</a>             (el,
+                                                         weight,
+                                                         domain,
+                                                         code,
+                                                         text,
+                                                         debug,
+                                                         ret)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS" title="GST_AUDIO_DECODER_SINK_NAME">GST_AUDIO_DECODER_SINK_NAME</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS" title="GST_AUDIO_DECODER_SINK_PAD()">GST_AUDIO_DECODER_SINK_PAD</a>          (obj)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS" title="GST_AUDIO_DECODER_SRC_NAME">GST_AUDIO_DECODER_SRC_NAME</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS" title="GST_AUDIO_DECODER_SRC_PAD()">GST_AUDIO_DECODER_SRC_PAD</a>           (obj)
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()">gst_audio_decoder_finish_frame</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info" title="gst_audio_decoder_get_audio_info ()">gst_audio_decoder_get_audio_info</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time" title="gst_audio_decoder_get_byte_time ()">gst_audio_decoder_get_byte_time</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" title="gst_audio_decoder_get_delay ()">gst_audio_decoder_get_delay</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" title="gst_audio_decoder_get_drainable ()">gst_audio_decoder_get_drainable</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency" title="gst_audio_decoder_get_latency ()">gst_audio_decoder_get_latency</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" title="gst_audio_decoder_get_max_errors ()">gst_audio_decoder_get_max_errors</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency" title="gst_audio_decoder_get_min_latency ()">gst_audio_decoder_get_min_latency</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" title="gst_audio_decoder_get_needs_format ()">gst_audio_decoder_get_needs_format</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state" title="gst_audio_decoder_get_parse_state ()">gst_audio_decoder_get_parse_state</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sync</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" title="gst_audio_decoder_get_plc ()">gst_audio_decoder_get_plc</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" title="gst_audio_decoder_get_plc_aware ()">gst_audio_decoder_get_plc_aware</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance" title="gst_audio_decoder_get_tolerance ()">gst_audio_decoder_get_tolerance</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time" title="gst_audio_decoder_set_byte_time ()">gst_audio_decoder_set_byte_time</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable" title="gst_audio_decoder_set_drainable ()">gst_audio_decoder_set_drainable</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency" title="gst_audio_decoder_set_latency ()">gst_audio_decoder_set_latency</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors" title="gst_audio_decoder_set_max_errors ()">gst_audio_decoder_set_max_errors</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency" title="gst_audio_decoder_set_min_latency ()">gst_audio_decoder_set_min_latency</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> num</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format" title="gst_audio_decoder_set_needs_format ()">gst_audio_decoder_set_needs_format</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc" title="gst_audio_decoder_set_plc ()">gst_audio_decoder_set_plc</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware" title="gst_audio_decoder_set_plc_aware ()">gst_audio_decoder_set_plc_aware</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance" title="gst_audio_decoder_set_tolerance ()">gst_audio_decoder_set_tolerance</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+               +----GstAudioDecoder
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency" title='The "min-latency" property'>min-latency</a>"              <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc" title='The "plc" property'>plc</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title='The "tolerance" property'>tolerance</a>"                <span class="type">gint64</span>                : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.description"></a><h2>Description</h2>
+<p>
+This base class is for audio decoders turning encoded data into
+raw audio samples.
+</p>
+<p>
+GstAudioDecoder and subclass should cooperate as follows.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Configuration</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+    Initially, GstAudioDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
+    is activated, which allows subclass to perform any global setup.
+    Base class (context) parameters can already be set according to subclass
+    capabilities (or possibly upon receive more information in subsequent
+    <em class="parameter"><code>set_format</code></em>).
+  </p></li>
+<li class="listitem"><p>
+    GstAudioDecoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
+    of input audio data that it is about to receive.
+    While unlikely, it might be called more than once, if changing input
+    parameters require reconfiguration.
+  </p></li>
+<li class="listitem"><p>
+    GstAudioDecoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
+  </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Data processing</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+      Base class gathers input data, and optionally allows subclass
+      to parse this into subsequently manageable (as defined by subclass)
+      chunks.  Such chunks are subsequently referred to as 'frames',
+      though they may or may not correspond to 1 (or more) audio format frame.
+    </p></li>
+<li class="listitem"><p>
+      Input frame is provided to subclass' <em class="parameter"><code>handle_frame</code></em>.
+    </p></li>
+<li class="listitem"><p>
+      If codec processing results in decoded data, subclass should call
+      <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em> to have decoded data pushed
+      downstream.
+    </p></li>
+<li class="listitem"><p>
+      Just prior to actually pushing a buffer downstream,
+      it is passed to <em class="parameter"><code>pre_push</code></em>.  Subclass should either use this callback
+      to arrange for additional downstream pushing or otherwise ensure such
+      custom pushing occurs after at least a method call has finished since
+      setting src pad caps.
+    </p></li>
+<li class="listitem"><p>
+      During the parsing process GstAudioDecoderClass will handle both
+      srcpad and sinkpad events. Sink events will be passed to subclass
+      if <em class="parameter"><code>event</code></em> callback has been provided.
+    </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Shutdown phase</b></p>
+<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+    GstAudioDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
+    parsing will be stopped.
+  </p></li></ul>
+</div></li>
+</ol></div>
+<p>
+</p>
+<p>
+Subclass is responsible for providing pad template caps for
+source and sink pads. The pads need to be named "sink" and "src". It also
+needs to set the fixed caps on srcpad, when the format is ensured.  This
+is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em> function, though
+it might be delayed until calling <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em>.
+</p>
+<p>
+In summary, above process should have subclass concentrating on
+codec data processing while leaving other matters to base class,
+such as most notably timestamp handling.  While it may exert more control
+in this area (see e.g. <em class="parameter"><code>pre_push</code></em>), it is very much not recommended.
+</p>
+<p>
+In particular, base class will try to arrange for perfect output timestamps
+as much as possible while tracking upstream timestamps.
+To this end, if deviation between the next ideal expected perfect timestamp
+and upstream exceeds <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title='The "tolerance" property'><span class="type">"tolerance"</span></a>, then resync to upstream
+occurs (which would happen always if the tolerance mechanism is disabled).
+</p>
+<p>
+In non-live pipelines, baseclass can also (configurably) arrange for
+output buffer aggregation which may help to redue large(r) numbers of
+small(er) buffers being pushed and processed downstream.
+</p>
+<p>
+On the other hand, it should be noted that baseclass only provides limited
+seeking support (upon explicit subclass request), as full-fledged support
+should rather be left to upstream demuxer, parser or alike.  This simple
+approach caters for seeking and duration reporting using estimated input
+bitrates.
+</p>
+<p>
+Things that subclass need to take care of:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provide pad templates</p></li>
+<li class="listitem"><p>
+     Set source pad caps when appropriate
+  </p></li>
+<li class="listitem"><p>
+     Set user-configurable properties to sane defaults for format and
+     implementing codec at hand, and convey some subclass capabilities and
+     expectations in context.
+  </p></li>
+<li class="listitem"><p>
+     Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
+     <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em>.  If it is prepared to perform
+     PLC, it should also accept NULL data in <em class="parameter"><code>handle_frame</code></em> and provide for
+     data for indicated duration.
+  </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstAudioDecoder-struct"></a><h3>struct GstAudioDecoder</h3>
+<pre class="programlisting">struct GstAudioDecoder;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> data structure.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDecoderClass"></a><h3>struct GstAudioDecoderClass</h3>
+<pre class="programlisting">struct GstAudioDecoderClass {
+  GstElementClass element_class;
+
+  /* virtual methods for subclasses */
+
+  gboolean      (*start)              (GstAudioDecoder *dec);
+
+  gboolean      (*stop)               (GstAudioDecoder *dec);
+
+  gboolean      (*set_format)         (GstAudioDecoder *dec,
+                                       GstCaps *caps);
+
+  GstFlowReturn (*parse)              (GstAudioDecoder *dec,
+                                       GstAdapter *adapter,
+                                       gint *offset, gint *length);
+
+  GstFlowReturn (*handle_frame)       (GstAudioDecoder *dec,
+                                       GstBuffer *buffer);
+
+  void          (*flush)              (GstAudioDecoder *dec, gboolean hard);
+
+  GstFlowReturn (*pre_push)           (GstAudioDecoder *dec,
+                                       GstBuffer **buffer);
+
+  gboolean      (*event)              (GstAudioDecoder *dec,
+                                       GstEvent *event);
+};
+</pre>
+<p>
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum <em class="parameter"><code>handle_frame</code></em> (and likely <em class="parameter"><code>set_format</code></em>) needs to be
+overridden.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioDecoderClass.element-class"></a>element_class</code></em>;</span></p></td>
+<td>The parent class structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.start"></a>start</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element starts processing.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.stop"></a>stop</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element stops processing.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.set-format"></a>set_format</code></em> ()</span></p></td>
+<td>Notifies subclass of incoming data format (caps).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.parse"></a>parse</code></em> ()</span></p></td>
+<td>Optional.
+Allows chopping incoming data into manageable units (frames)
+for subsequent decoding.  This division is at subclass
+discretion and may or may not correspond to 1 (or more)
+frames as defined by audio format.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Provides input data (or NULL to clear any remaining data)
+to subclass.  Input data ref management is performed by
+base class, subclass should not care or intervene,
+and input data is only valid until next call to base class,
+most notably a call to <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()"><code class="function">gst_audio_decoder_finish_frame()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.flush"></a>flush</code></em> ()</span></p></td>
+<td>Optional.
+Instructs subclass to clear any codec caches and discard
+any pending samples and not yet returned decoded data.
+<em class="parameter"><code>hard</code></em> indicates whether a FLUSH is being processed,
+or otherwise a DISCONT (or conceptually similar).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.pre-push"></a>pre_push</code></em> ()</span></p></td>
+<td>Optional.
+Called just prior to pushing (encoded data) buffer downstream.
+Subclass has full discretionary access to buffer,
+and a not OK flow return will abort downstream pushing.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.event"></a>event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the sink pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-ERROR:CAPS"></a><h3>GST_AUDIO_DECODER_ERROR()</h3>
+<pre class="programlisting">#define             GST_AUDIO_DECODER_ERROR(el, weight, domain, code, text, debug, ret)</pre>
+<p>
+Utility function that audio decoder elements can use in case they encountered
+a data processing error that may be fatal for the current "data unit" but
+need not prevent subsequent decoding.  Such errors are counted and if there
+are too many, as configured in the context's max_errors, the pipeline will
+post an error message and the application will be requested to stop further
+media processing.  Otherwise, it is considered a "glitch" and only a warning
+is logged. In either case, <em class="parameter"><code>ret</code></em> is set to the proper value to
+return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
+<td>the base audio decoder element that generates the error</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>weight</code></em> :</span></p></td>
+<td>element defined weight of the error, added to error count</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
+<td>like CORE, LIBRARY, RESOURCE or STREAM (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html"><span class="type">gstreamer-GstGError</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
+<td>error code defined for that domain (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html"><span class="type">gstreamer-GstGError</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the message to display (format string and args enclosed in
+parentheses)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
+<td>debugging information for the message (format string and args
+enclosed in parentheses)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>variable to receive return value</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_DECODER_SINK_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SINK_NAME    "sink"
+</pre>
+<p>
+The name of the templates for the sink pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_DECODER_SINK_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SINK_PAD(obj)        (((GstAudioDecoder *) (obj))-&gt;sinkpad)
+</pre>
+<p>
+Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base audio codec instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_DECODER_SRC_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SRC_NAME     "src"
+</pre>
+<p>
+The name of the templates for the source pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_DECODER_SRC_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SRC_PAD(obj)         (((GstAudioDecoder *) (obj))-&gt;srcpad)
+</pre>
+<p>
+Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base audio codec instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-finish-frame"></a><h3>gst_audio_decoder_finish_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_audio_decoder_finish_frame      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);</pre>
+<p>
+Collects decoded data and pushes it downstream.
+</p>
+<p>
+<em class="parameter"><code>buf</code></em> may be NULL in which case the indicated number of frames
+are discarded and considered to have produced no output
+(e.g. lead-in or setup frames).
+Otherwise, source pad caps must be set when it is called with valid
+data in <em class="parameter"><code>buf</code></em>.
+</p>
+<p>
+Note that a frame received in <code class="function">gst_audio_decoder_handle_frame()</code> may be
+invalidated by a call to this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>decoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frames</code></em> :</span></p></td>
+<td>number of decoded frames represented by decoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-audio-info"></a><h3>gst_audio_decoder_get_audio_info ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      gst_audio_decoder_get_audio_info    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-byte-time"></a><h3>gst_audio_decoder_get_byte_time ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_decoder_get_byte_time     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured byte to time conversion setting</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-delay"></a><h3>gst_audio_decoder_get_delay ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_decoder_get_delay         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured decoder delay</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-drainable"></a><h3>gst_audio_decoder_get_drainable ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_decoder_get_drainable     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder drain handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if drainable handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-latency"></a><h3>gst_audio_decoder_get_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_get_latency       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
+<p>
+Sets the variables pointed to by <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> to the currently configured
+latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>a pointer to storage to hold minimum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>a pointer to storage to hold maximum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-max-errors"></a><h3>gst_audio_decoder_get_max_errors ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_decoder_get_max_errors    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured decoder tolerated error count.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-min-latency"></a><h3>gst_audio_decoder_get_min_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_audio_decoder_get_min_latency   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder's latency aggregation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>aggregation latency.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-needs-format"></a><h3>gst_audio_decoder_get_needs_format ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_decoder_get_needs_format  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder required format handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if required format handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-parse-state"></a><h3>gst_audio_decoder_get_parse_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_get_parse_state   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sync</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);</pre>
+<p>
+Return current parsing (sync and eos) state.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sync</code></em> :</span></p></td>
+<td>a pointer to a variable to hold the current sync state</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>eos</code></em> :</span></p></td>
+<td>a pointer to a variable to hold the current eos state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-plc"></a><h3>gst_audio_decoder_get_plc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_decoder_get_plc           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder packet loss concealment handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if packet loss concealment is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-plc-aware"></a><h3>gst_audio_decoder_get_plc_aware ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_decoder_get_plc_aware     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured plc handling</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-tolerance"></a><h3>gst_audio_decoder_get_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_audio_decoder_get_tolerance     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries current audio jitter tolerance threshold.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>decoder audio jitter tolerance threshold.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-byte-time"></a><h3>gst_audio_decoder_set_byte_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_byte_time     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Allows baseclass to perform byte to time estimated conversion.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>whether to enable byte to time conversion</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-drainable"></a><h3>gst_audio_decoder_set_drainable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_drainable     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures decoder drain handling.  If drainable, subclass might
+be handed a NULL buffer to have it return any leftover decoded data.
+Otherwise, it is not considered so capable and will only ever be passed
+real data.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-latency"></a><h3>gst_audio_decoder_set_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_latency       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
+<p>
+Sets decoder latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>minimum latency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>maximum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-max-errors"></a><h3>gst_audio_decoder_set_max_errors ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_max_errors    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets numbers of tolerated decoder errors, where a tolerated one is then only
+warned about, but more than tolerated will lead to fatal error.  Default
+is set to GST_AUDIO_DECODER_MAX_ERRORS.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>max tolerated errors</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-min-latency"></a><h3>gst_audio_decoder_set_min_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_min_latency   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> num</code></em>);</pre>
+<p>
+Sets decoder minimum aggregation latency.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>new minimum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-needs-format"></a><h3>gst_audio_decoder_set_needs_format ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_needs_format  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures decoder format needs.  If enabled, subclass needs to be
+negotiated with format caps before it can process any data.  It will then
+never be handed any data before it has been configured.
+Otherwise, it might be handed data without having been configured and
+is then expected being able to do so either by default
+or based on the input data.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-plc"></a><h3>gst_audio_decoder_set_plc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_plc           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Enable or disable decoder packet loss concealment, provided subclass
+and codec are capable and allow handling plc.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-plc-aware"></a><h3>gst_audio_decoder_set_plc_aware ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_plc_aware     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);</pre>
+<p>
+Indicates whether or not subclass handles packet loss concealment (plc).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>plc</code></em> :</span></p></td>
+<td>new plc state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-tolerance"></a><h3>gst_audio_decoder_set_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_decoder_set_tolerance     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);</pre>
+<p>
+Configures decoder audio jitter tolerance threshold.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tolerance</code></em> :</span></p></td>
+<td>new tolerance</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstAudioDecoder--min-latency"></a><h3>The <code class="literal">"min-latency"</code> property</h3>
+<pre class="programlisting">  "min-latency"              <span class="type">gint64</span>                : Read / Write</pre>
+<p>Aggregate output data to a minimum of latency time (ns).</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDecoder--plc"></a><h3>The <code class="literal">"plc"</code> property</h3>
+<pre class="programlisting">  "plc"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Perform packet loss concealment (if supported).</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDecoder--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
+<pre class="programlisting">  "tolerance"                <span class="type">gint64</span>                : Read / Write</pre>
+<p>Perfect ts while timestamp jitter/imperfection within tolerance (ns).</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html"><span class="type">GstBaseTransform</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
new file mode 100644 (file)
index 0000000..427db19
--- /dev/null
@@ -0,0 +1,1083 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudioencoder</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
+<link rel="next" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiodecoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudioencoder.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudioencoder"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioencoder.top_of_page"></a>gstaudioencoder</span></h2>
+<p>gstaudioencoder — Base class for audio encoders</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudioencoder.synopsis"></a><h2>Synopsis</h2>
+<a name="GstAudioEncoder"></a><pre class="synopsis">
+#include &lt;gst/audio/gstaudioencoder.h&gt;
+
+struct              <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct" title="struct GstAudioEncoder">GstAudioEncoder</a>;
+struct              <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass" title="struct GstAudioEncoderClass">GstAudioEncoderClass</a>;
+#define             <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS" title="GST_AUDIO_ENCODER_SEGMENT()">GST_AUDIO_ENCODER_SEGMENT</a>           (obj)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" title="GST_AUDIO_ENCODER_SINK_NAME">GST_AUDIO_ENCODER_SINK_NAME</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" title="GST_AUDIO_ENCODER_SINK_PAD()">GST_AUDIO_ENCODER_SINK_PAD</a>          (obj)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" title="GST_AUDIO_ENCODER_SRC_NAME">GST_AUDIO_ENCODER_SRC_NAME</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" title="GST_AUDIO_ENCODER_SRC_PAD()">GST_AUDIO_ENCODER_SRC_PAD</a>           (obj)
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()">gst_audio_encoder_finish_frame</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info" title="gst_audio_encoder_get_audio_info ()">gst_audio_encoder_get_audio_info</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" title="gst_audio_encoder_get_drainable ()">gst_audio_encoder_get_drainable</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" title="gst_audio_encoder_get_frame_max ()">gst_audio_encoder_get_frame_max</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" title="gst_audio_encoder_get_frame_samples_min ()">gst_audio_encoder_get_frame_samples_min</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max" title="gst_audio_encoder_get_frame_samples_max ()">gst_audio_encoder_get_frame_samples_max</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" title="gst_audio_encoder_get_hard_min ()">gst_audio_encoder_get_hard_min</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync" title="gst_audio_encoder_get_hard_resync ()">gst_audio_encoder_get_hard_resync</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency" title="gst_audio_encoder_get_latency ()">gst_audio_encoder_get_latency</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead" title="gst_audio_encoder_get_lookahead ()">gst_audio_encoder_get_lookahead</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" title="gst_audio_encoder_get_mark_granule ()">gst_audio_encoder_get_mark_granule</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" title="gst_audio_encoder_get_perfect_timestamp ()">gst_audio_encoder_get_perfect_timestamp</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance" title="gst_audio_encoder_get_tolerance ()">gst_audio_encoder_get_tolerance</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" title="gst_audio_encoder_proxy_getcaps ()">gst_audio_encoder_proxy_getcaps</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable" title="gst_audio_encoder_set_drainable ()">gst_audio_encoder_set_drainable</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max" title="gst_audio_encoder_set_frame_max ()">gst_audio_encoder_set_frame_max</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()">gst_audio_encoder_set_frame_samples_min</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()">gst_audio_encoder_set_frame_samples_max</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min" title="gst_audio_encoder_set_hard_min ()">gst_audio_encoder_set_hard_min</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync" title="gst_audio_encoder_set_hard_resync ()">gst_audio_encoder_set_hard_resync</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency" title="gst_audio_encoder_set_latency ()">gst_audio_encoder_set_latency</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead" title="gst_audio_encoder_set_lookahead ()">gst_audio_encoder_set_lookahead</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule" title="gst_audio_encoder_set_mark_granule ()">gst_audio_encoder_set_mark_granule</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp" title="gst_audio_encoder_set_perfect_timestamp ()">gst_audio_encoder_set_perfect_timestamp</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance" title="gst_audio_encoder_set_tolerance ()">gst_audio_encoder_set_tolerance</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+               +----GstAudioEncoder
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstAudioEncoder implements
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title='The "hard-resync" property'>hard-resync</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule" title='The "mark-granule" property'>mark-granule</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read
+  "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title='The "perfect-timestamp" property'>perfect-timestamp</a>"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title='The "tolerance" property'>tolerance</a>"                <span class="type">gint64</span>                : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.description"></a><h2>Description</h2>
+<p>
+This base class is for audio encoders turning raw audio samples into
+encoded audio data.
+</p>
+<p>
+GstAudioEncoder and subclass should cooperate as follows.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Configuration</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+    Initially, GstAudioEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
+    is activated, which allows subclass to perform any global setup.
+  </p></li>
+<li class="listitem"><p>
+    GstAudioEncoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
+    of input audio data that it is about to receive.  Subclass should
+    setup for encoding and configure various base class parameters
+    appropriately, notably those directing desired input data handling.
+    While unlikely, it might be called more than once, if changing input
+    parameters require reconfiguration.
+  </p></li>
+<li class="listitem"><p>
+    GstAudioEncoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
+  </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Data processing</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+      Base class gathers input sample data (as directed by the context's
+      frame_samples and frame_max) and provides this to subclass' <em class="parameter"><code>handle_frame</code></em>.
+    </p></li>
+<li class="listitem"><p>
+      If codec processing results in encoded data, subclass should call
+      <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em> to have encoded data pushed
+      downstream.  Alternatively, it might also call to indicate dropped
+      (non-encoded) samples.
+    </p></li>
+<li class="listitem"><p>
+      Just prior to actually pushing a buffer downstream,
+      it is passed to <em class="parameter"><code>pre_push</code></em>.
+    </p></li>
+<li class="listitem"><p>
+      During the parsing process GstAudioEncoderClass will handle both
+      srcpad and sinkpad events. Sink events will be passed to subclass
+      if <em class="parameter"><code>event</code></em> callback has been provided.
+    </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Shutdown phase</b></p>
+<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+    GstAudioEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
+    parsing will be stopped.
+  </p></li></ul>
+</div></li>
+</ol></div>
+<p>
+</p>
+<p>
+Subclass is responsible for providing pad template caps for
+source and sink pads. The pads need to be named "sink" and "src". It also 
+needs to set the fixed caps on srcpad, when the format is ensured.  This
+is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em> function, though
+it might be delayed until calling <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>.
+</p>
+<p>
+In summary, above process should have subclass concentrating on
+codec data processing while leaving other matters to base class,
+such as most notably timestamp handling.  While it may exert more control
+in this area (see e.g. <em class="parameter"><code>pre_push</code></em>), it is very much not recommended.
+</p>
+<p>
+In particular, base class will either favor tracking upstream timestamps
+(at the possible expense of jitter) or aim to arrange for a perfect stream of
+output timestamps, depending on <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title='The "perfect-timestamp" property'><span class="type">"perfect-timestamp"</span></a>.
+However, in the latter case, the input may not be so perfect or ideal, which
+is handled as follows.  An input timestamp is compared with the expected
+timestamp as dictated by input sample stream and if the deviation is less
+than <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title='The "tolerance" property'><span class="type">"tolerance"</span></a>, the deviation is discarded.
+Otherwise, it is considered a discontuinity and subsequent output timestamp
+is resynced to the new position after performing configured discontinuity
+processing.  In the non-perfect-timestamp case, an upstream variation
+exceeding tolerance only leads to marking DISCONT on subsequent outgoing
+(while timestamps are adjusted to upstream regardless of variation).
+While DISCONT is also marked in the perfect-timestamp case, this one
+optionally (see <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title='The "hard-resync" property'><span class="type">"hard-resync"</span></a>)
+performs some additional steps, such as clipping of (early) input samples
+or draining all currently remaining input data, depending on the direction
+of the discontuinity.
+</p>
+<p>
+If perfect timestamps are arranged, it is also possible to request baseclass
+(usually set by subclass) to provide additional buffer metadata (in OFFSET
+and OFFSET_END) fields according to granule defined semantics currently
+needed by oggmux.  Specifically, OFFSET is set to granulepos (= sample count
+including buffer) and OFFSET_END to corresponding timestamp (as determined
+by same sample count and sample rate).
+</p>
+<p>
+Things that subclass need to take care of:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provide pad templates</p></li>
+<li class="listitem"><p>
+     Set source pad caps when appropriate
+  </p></li>
+<li class="listitem"><p>
+     Inform base class of buffer processing needs using context's
+     frame_samples and frame_bytes.
+  </p></li>
+<li class="listitem"><p>
+     Set user-configurable properties to sane defaults for format and
+     implementing codec at hand, e.g. those controlling timestamp behaviour
+     and discontinuity processing.
+  </p></li>
+<li class="listitem"><p>
+     Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
+     <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>.
+  </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstAudioEncoder-struct"></a><h3>struct GstAudioEncoder</h3>
+<pre class="programlisting">struct GstAudioEncoder;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> data structure.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoderClass"></a><h3>struct GstAudioEncoderClass</h3>
+<pre class="programlisting">struct GstAudioEncoderClass {
+  GstElementClass element_class;
+
+  /* virtual methods for subclasses */
+
+  gboolean      (*start)              (GstAudioEncoder *enc);
+
+  gboolean      (*stop)               (GstAudioEncoder *enc);
+
+  gboolean      (*set_format)         (GstAudioEncoder *enc,
+                                       GstAudioInfo        *info);
+
+  GstFlowReturn (*handle_frame)       (GstAudioEncoder *enc,
+                                       GstBuffer *buffer);
+
+  void          (*flush)              (GstAudioEncoder *enc);
+
+  GstFlowReturn (*pre_push)           (GstAudioEncoder *enc,
+                                       GstBuffer **buffer);
+
+  gboolean      (*event)              (GstAudioEncoder *enc,
+                                       GstEvent *event);
+
+  GstCaps *     (*getcaps)            (GstAudioEncoder *enc);
+};
+</pre>
+<p>
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum <em class="parameter"><code>set_format</code></em> and <em class="parameter"><code>handle_frame</code></em> needs to be overridden.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioEncoderClass.element-class"></a>element_class</code></em>;</span></p></td>
+<td>The parent class structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.start"></a>start</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element starts processing.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.stop"></a>stop</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element stops processing.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.set-format"></a>set_format</code></em> ()</span></p></td>
+<td>Notifies subclass of incoming data format.
+GstAudioInfo contains the format according to provided caps.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Provides input samples (or NULL to clear any remaining data)
+according to directions as configured by the subclass
+using the API.  Input data ref management is performed
+by base class, subclass should not care or intervene,
+and input data is only valid until next call to base class,
+most notably a call to <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.flush"></a>flush</code></em> ()</span></p></td>
+<td>Optional.
+Instructs subclass to clear any codec caches and discard
+any pending samples and not yet returned encoded data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.pre-push"></a>pre_push</code></em> ()</span></p></td>
+<td>Optional.
+Called just prior to pushing (encoded data) buffer downstream.
+Subclass has full discretionary access to buffer,
+and a not OK flow return will abort downstream pushing.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.event"></a>event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the sink pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.getcaps"></a>getcaps</code></em> ()</span></p></td>
+<td>Optional.
+Allows for a custom sink getcaps implementation (e.g.
+for multichannel input specification).  If not implemented,
+default returns gst_audio_encoder_proxy_getcaps
+applied to sink template caps.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SEGMENT:CAPS"></a><h3>GST_AUDIO_ENCODER_SEGMENT()</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SEGMENT(obj)     (GST_AUDIO_ENCODER_CAST (obj)-&gt;segment)
+</pre>
+<p>
+Gives the segment of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_NAME "sink"
+</pre>
+<p>
+the name of the templates for the sink pad
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)-&gt;sinkpad)
+</pre>
+<p>
+Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_NAME         "src"
+</pre>
+<p>
+the name of the templates for the source pad
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)-&gt;srcpad)
+</pre>
+<p>
+Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-finish-frame"></a><h3>gst_audio_encoder_finish_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_audio_encoder_finish_frame      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
+<p>
+Collects encoded data and pushes encoded data downstream.
+Source pad caps must be set when this is called.
+</p>
+<p>
+If <em class="parameter"><code>samples</code></em> &lt; 0, then best estimate is all samples provided to encoder
+(subclass) so far.  <em class="parameter"><code>buf</code></em> may be NULL, in which case next number of <em class="parameter"><code>samples</code></em>
+are considered discarded, e.g. as a result of discontinuous transmission,
+and a discontinuity is marked.
+</p>
+<p>
+Note that samples received in <code class="function">gst_audio_encoder_handle_frame()</code>
+may be invalidated by a call to this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>encoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>samples</code></em> :</span></p></td>
+<td>number of samples (per channel) represented by encoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-audio-info"></a><h3>gst_audio_encoder_get_audio_info ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      gst_audio_encoder_get_audio_info    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-drainable"></a><h3>gst_audio_encoder_get_drainable ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_encoder_get_drainable     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries encoder drain handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if drainable handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-frame-max"></a><h3>gst_audio_encoder_get_frame_max ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_encoder_get_frame_max     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured maximum handled frames</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-frame-samples-min"></a><h3>gst_audio_encoder_get_frame_samples_min ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_encoder_get_frame_samples_min
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently maximum requested samples per frame</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-frame-samples-max"></a><h3>gst_audio_encoder_get_frame_samples_max ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_encoder_get_frame_samples_max
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-hard-min"></a><h3>gst_audio_encoder_get_hard_min ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_encoder_get_hard_min      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries encoder hard minimum handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if hard minimum handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-hard-resync"></a><h3>gst_audio_encoder_get_hard_resync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_encoder_get_hard_resync   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-latency"></a><h3>gst_audio_encoder_get_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_get_latency       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
+<p>
+Sets the variables pointed to by <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> to the currently configured
+latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>a pointer to storage to hold minimum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>a pointer to storage to hold maximum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-lookahead"></a><h3>gst_audio_encoder_get_lookahead ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_audio_encoder_get_lookahead     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured encoder lookahead</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-mark-granule"></a><h3>gst_audio_encoder_get_mark_granule ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_encoder_get_mark_granule  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries if the encoder will handle granule marking.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if granule marking is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-perfect-timestamp"></a><h3>gst_audio_encoder_get_perfect_timestamp ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_encoder_get_perfect_timestamp
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries encoder perfect timestamp behaviour.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if perfect timestamp setting enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-tolerance"></a><h3>gst_audio_encoder_get_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_audio_encoder_get_tolerance     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries current audio jitter tolerance threshold.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>encoder audio jitter tolerance threshold.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-proxy-getcaps"></a><h3>gst_audio_encoder_proxy_getcaps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_audio_encoder_proxy_getcaps     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Returns caps that express <em class="parameter"><code>caps</code></em> (or sink template caps if <em class="parameter"><code>caps</code></em> == NULL)
+restricted to channel/rate combinations supported by downstream elements
+(e.g. muxers).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>initial caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> owned by caller</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-drainable"></a><h3>gst_audio_encoder_set_drainable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_drainable     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures encoder drain handling.  If drainable, subclass might
+be handed a NULL buffer to have it return any leftover encoded data.
+Otherwise, it is not considered so capable and will only ever be passed
+real data.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-frame-max"></a><h3>gst_audio_encoder_set_frame_max ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_frame_max     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets max number of frames accepted at once (assumed minimally 1).
+Requires <em class="parameter"><code>frame_samples_min</code></em> and <em class="parameter"><code>frame_samples_max</code></em> to be the equal.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>number of frames</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-frame-samples-min"></a><h3>gst_audio_encoder_set_frame_samples_min ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_frame_samples_min
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets number of samples (per channel) subclass needs to be handed,
+at least or will be handed all available if 0.
+</p>
+<p>
+If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()"><code class="function">gst_audio_encoder_set_frame_samples_max()</code></a>
+must be called with the same number.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>number of samples per frame</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-frame-samples-max"></a><h3>gst_audio_encoder_set_frame_samples_max ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_frame_samples_max
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets number of samples (per channel) subclass needs to be handed,
+at most or will be handed all available if 0.
+</p>
+<p>
+If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()"><code class="function">gst_audio_encoder_set_frame_samples_min()</code></a>
+must be called with the same number.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>number of samples per frame</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-hard-min"></a><h3>gst_audio_encoder_set_hard_min ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_hard_min      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures encoder hard minimum handling.  If enabled, subclass
+will never be handed less samples than it configured, which otherwise
+might occur near end-of-data handling.  Instead, the leftover samples
+will simply be discarded.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-hard-resync"></a><h3>gst_audio_encoder_set_hard_resync ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_hard_resync   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-latency"></a><h3>gst_audio_encoder_set_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_latency       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
+<p>
+Sets encoder latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>minimum latency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>maximum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-lookahead"></a><h3>gst_audio_encoder_set_lookahead ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_lookahead     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets encoder lookahead (in units of input rate samples)
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>lookahead</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-mark-granule"></a><h3>gst_audio_encoder_set_mark_granule ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_mark_granule  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Enable or disable encoder granule handling.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-perfect-timestamp"></a><h3>gst_audio_encoder_set_perfect_timestamp ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_perfect_timestamp
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Enable or disable encoder perfect output timestamp preference.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-tolerance"></a><h3>gst_audio_encoder_set_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_encoder_set_tolerance     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);</pre>
+<p>
+Configures encoder audio jitter tolerance threshold.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tolerance</code></em> :</span></p></td>
+<td>new tolerance</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstAudioEncoder--hard-resync"></a><h3>The <code class="literal">"hard-resync"</code> property</h3>
+<pre class="programlisting">  "hard-resync"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Perform clipping and sample flushing upon discontinuity.</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoder--mark-granule"></a><h3>The <code class="literal">"mark-granule"</code> property</h3>
+<pre class="programlisting">  "mark-granule"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read</pre>
+<p>Apply granule semantics to buffer metadata (implies perfect-timestamp).</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoder--perfect-timestamp"></a><h3>The <code class="literal">"perfect-timestamp"</code> property</h3>
+<pre class="programlisting">  "perfect-timestamp"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Favour perfect timestamps over tracking upstream timestamps.</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoder--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
+<pre class="programlisting">  "tolerance"                <span class="type">gint64</span>                : Read / Write</pre>
+<p>Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns).</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 40000000</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html"><span class="type">GstBaseTransform</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index e6c5159..73480ea 100644 (file)
@@ -3,18 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
+<link rel="prev" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
 <link rel="next" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioclock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioencoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
@@ -62,7 +62,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstaudiofilter.h
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiofilter.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> is a <span class="type">GstBaseTransform-derived</span> base class for simple audio
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> is a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html"><span class="type">GstBaseTransform</span></a>-derived base class for simple audio
 filters, ie. those that output the same format that they get as input.
 </p>
 <p>
@@ -90,10 +90,6 @@ Last reviewed on 2007-02-03 (0.10.11.1)
 <p>
 Base class for audio filters with the same format for input and output.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
 <p class="since">Since 0.10.12</p>
 </div>
 <hr>
@@ -160,6 +156,6 @@ This function is usually used from within a GObject base_init function.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
new file mode 100644 (file)
index 0000000..d861d1e
--- /dev/null
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudioiec61937</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
+<link rel="next" href="gstreamer-cdda.html" title="CDDA Library">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstringbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-cdda.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudioiec61937.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudioiec61937.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudioiec61937"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioiec61937.top_of_page"></a>gstaudioiec61937</span></h2>
+<p>gstaudioiec61937 — Utility functions for IEC 61937 payloading</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudioiec61937.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/audio/gstaudioiec61937.h&gt;
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" title="gst_audio_iec61937_frame_size ()">gst_audio_iec61937_frame_size</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()">gst_audio_iec61937_payload</a>          (<em class="parameter"><code>const <span class="type">guint8</span> *src</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src_n</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *dst</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dst_n</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioiec61937.description"></a><h2>Description</h2>
+<p>
+This module contains some helper functions for encapsulating various
+audio formats in IEC 61937 headers and padding.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioiec61937.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-audio-iec61937-frame-size"></a><h3>gst_audio_iec61937_frame_size ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_audio_iec61937_frame_size       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);</pre>
+<p>
+Calculated the size of the buffer expected by <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()"><code class="function">gst_audio_iec61937_payload()</code></a> for
+payloading type from <em class="parameter"><code>spec</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>spec</code></em> :</span></p></td>
+<td>the ringbufer spec</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the size or 0 if the given <em class="parameter"><code>type</code></em> is not supported or cannot be
+payloaded.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-iec61937-payload"></a><h3>gst_audio_iec61937_payload ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_iec61937_payload          (<em class="parameter"><code>const <span class="type">guint8</span> *src</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src_n</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *dst</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dst_n</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);</pre>
+<p>
+Payloads <em class="parameter"><code>src</code></em> in the form specified by IEC 61937 for the type from <em class="parameter"><code>spec</code></em> and
+stores the result in <em class="parameter"><code>dst</code></em>. <em class="parameter"><code>src</code></em> must contain exactly one frame of data and
+the frame is not checked for errors.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>a buffer containing the data to payload</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src_n</code></em> :</span></p></td>
+<td>size of <em class="parameter"><code>src</code></em> in bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
+<td>the destination buffer to store the payloaded contents in. Should not
+overlap with <em class="parameter"><code>src</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dst_n</code></em> :</span></p></td>
+<td>size of <em class="parameter"><code>dst</code></em> in bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>spec</code></em> :</span></p></td>
+<td>the ringbufer spec for <em class="parameter"><code>src</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>transfer-full: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the payloading was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index 2364f9b..5b218f8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiomixerutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
 <link rel="next" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -54,7 +54,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7862112"></a><p>
+<a name="idp8831744"></a><p>
 Provides some utility functions to detect available audio mixers
 on the system.
 </p>
@@ -139,6 +139,6 @@ using <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-L
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 0730848..e62739f 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
 <link rel="next" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -197,6 +197,6 @@ samples from the device.</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4ac0090..985ed32 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
 <link rel="next" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -119,10 +119,6 @@ Last reviewed on 2006-09-27 (0.10.12)
 <p>
 Base class for simple audio sources.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -198,6 +194,6 @@ functionality.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 28944dc..dc6c9c4 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstbaseaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
 <link rel="next" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,13 +59,13 @@ enum                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method" title="gst_base_audio_sink_set_slave_method ()">gst_base_audio_sink_set_slave_method</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="type">GstBaseAudioSinkSlaveMethod</span></a> method</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a>  <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>
+<span class="returnvalue">gint64</span>              <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" title="gst_base_audio_sink_set_drift_tolerance ()">gst_base_audio_sink_set_drift_tolerance</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> drift_tolerance</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> drift_tolerance</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -82,10 +82,12 @@ enum                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbaseaudiosink.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>buffer-time</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold" title='The "alignment-threshold" property'>alignment-threshold</a>"      <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>buffer-time</a>"              <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull" title='The "can-activate-pull" property'>can-activate-pull</a>"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>drift-tolerance</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>latency-time</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait" title='The "discont-wait" property'>discont-wait</a>"             <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>drift-tolerance</a>"          <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>latency-time</a>"             <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock" title='The "provide-clock" property'>provide-clock</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method" title='The "slave-method" property'>slave-method</a>"             <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="type">GstBaseAudioSinkSlaveMethod</span></a>  : Read / Write
 </pre>
@@ -118,6 +120,10 @@ Opaque <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBase
 
   /* subclass ringbuffer allocation */
   GstRingBuffer* (*create_ringbuffer)  (GstBaseAudioSink *sink);
+
+  /* subclass payloader */
+  GstBuffer*     (*payload)            (GstBaseAudioSink *sink,
+                                        GstBuffer        *buffer);
 };
 </pre>
 <p>
@@ -135,14 +141,20 @@ functionality.
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseAudioSinkClass.create-ringbuffer"></a>create_ringbuffer</code></em> ()</span></p></td>
 <td>create and return a <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> to write to.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseAudioSinkClass.payload"></a>payload</code></em> ()</span></p></td>
+<td>payload data in a format suitable to write to the sink. If no
+payloading is required, returns a reffed copy of the original
+buffer, else returns the payloaded buffer with all other metadata
+copied. (Since: 0.10.36)</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBaseAudioSinkSlaveMethod"></a><h3>enum GstBaseAudioSinkSlaveMethod</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE,
   GST_BASE_AUDIO_SINK_SLAVE_SKEW,
   GST_BASE_AUDIO_SINK_SLAVE_NONE
@@ -313,7 +325,7 @@ Controls how clock slaving will be performed in <em class="parameter"><code>sink
 <hr>
 <div class="refsect2">
 <a name="gst-base-audio-sink-get-slave-method"></a><h3>gst_base_audio_sink_get_slave_method ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a>  gst_base_audio_sink_get_slave_method
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a> gst_base_audio_sink_get_slave_method
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the current slave method used by <em class="parameter"><code>sink</code></em>.
@@ -337,7 +349,7 @@ Get the current slave method used by <em class="parameter"><code>sink</code></em
 <hr>
 <div class="refsect2">
 <a name="gst-base-audio-sink-get-drift-tolerance"></a><h3>gst_base_audio_sink_get_drift_tolerance ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_base_audio_sink_get_drift_tolerance
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_base_audio_sink_get_drift_tolerance
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the current drift tolerance, in microseconds, used by <em class="parameter"><code>sink</code></em>.
@@ -363,7 +375,7 @@ Get the current drift tolerance, in microseconds, used by <em class="parameter">
 <a name="gst-base-audio-sink-set-drift-tolerance"></a><h3>gst_base_audio_sink_set_drift_tolerance ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_audio_sink_set_drift_tolerance
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> drift_tolerance</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> drift_tolerance</code></em>);</pre>
 <p>
 Controls the sink's drift tolerance.
 </p>
@@ -387,8 +399,16 @@ Controls the sink's drift tolerance.
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbaseaudiosink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
+<a name="GstBaseAudioSink--alignment-threshold"></a><h3>The <code class="literal">"alignment-threshold"</code> property</h3>
+<pre class="programlisting">  "alignment-threshold"      <span class="type">guint64</span>               : Read / Write</pre>
+<p>Timestamp alignment threshold in nanoseconds.</p>
+<p>Allowed values: [1,18446744073709551614]</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstBaseAudioSink--buffer-time"></a><h3>The <code class="literal">"buffer-time"</code> property</h3>
-<pre class="programlisting">  "buffer-time"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "buffer-time"              <span class="type">gint64</span>                : Read / Write</pre>
 <p>Size of audio buffer in microseconds.</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 200000</p>
@@ -402,10 +422,22 @@ Controls the sink's drift tolerance.
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstBaseAudioSink--discont-wait"></a><h3>The <code class="literal">"discont-wait"</code> property</h3>
+<pre class="programlisting">  "discont-wait"             <span class="type">guint64</span>               : Read / Write</pre>
+<p>
+A window of time in nanoseconds to wait before creating a discontinuity as
+a result of breaching the drift-tolerance.
+</p>
+<p>Allowed values: &lt;= 18446744073709551614</p>
+<p>Default value: 1000000000</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstBaseAudioSink--drift-tolerance"></a><h3>The <code class="literal">"drift-tolerance"</code> property</h3>
-<pre class="programlisting">  "drift-tolerance"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "drift-tolerance"          <span class="type">gint64</span>                : Read / Write</pre>
 <p>
-Controls the amount of time in milliseconds that timestamps or clocks are allowed
+Controls the amount of time in microseconds that clocks are allowed
 to drift before resynchronisation happens.
 </p>
 <p>Allowed values: &gt;= 1</p>
@@ -415,7 +447,7 @@ to drift before resynchronisation happens.
 <hr>
 <div class="refsect2">
 <a name="GstBaseAudioSink--latency-time"></a><h3>The <code class="literal">"latency-time"</code> property</h3>
-<pre class="programlisting">  "latency-time"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "latency-time"             <span class="type">gint64</span>                : Read / Write</pre>
 <p>Audio latency in microseconds.</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 10000</p>
@@ -442,6 +474,6 @@ to drift before resynchronisation happens.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4d3579e..208e703 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstbaseaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">
 <link rel="next" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -56,7 +56,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> provide</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock" title="gst_base_audio_src_get_provide_clock ()">gst_base_audio_src_get_provide_clock</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a>  <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method" title="gst_base_audio_src_set_slave_method ()">gst_base_audio_src_set_slave_method</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="type">GstBaseAudioSrcSlaveMethod</span></a> method</code></em>);
@@ -77,10 +77,10 @@ enum                <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbaseaudiosrc.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>actual-buffer-time</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>actual-latency-time</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>buffer-time</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>latency-time</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>actual-buffer-time</a>"       <span class="type">gint64</span>                : Read
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>actual-latency-time</a>"      <span class="type">gint64</span>                : Read
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>buffer-time</a>"              <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>latency-time</a>"             <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock" title='The "provide-clock" property'>provide-clock</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method" title='The "slave-method" property'>slave-method</a>"             <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="type">GstBaseAudioSrcSlaveMethod</span></a>  : Read / Write
 </pre>
@@ -136,8 +136,7 @@ functionality.
 <hr>
 <div class="refsect2">
 <a name="GstBaseAudioSrcSlaveMethod"></a><h3>enum GstBaseAudioSrcSlaveMethod</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE,
   GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP,
   GST_BASE_AUDIO_SRC_SLAVE_SKEW,
@@ -290,7 +289,7 @@ gst_base_audio_src_set_provide_clock.
 <hr>
 <div class="refsect2">
 <a name="gst-base-audio-src-get-slave-method"></a><h3>gst_base_audio_src_get_slave_method ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a>  gst_base_audio_src_get_slave_method
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a> gst_base_audio_src_get_slave_method
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>);</pre>
 <p>
 Get the current slave method used by <em class="parameter"><code>src</code></em>.
@@ -340,7 +339,7 @@ Controls how clock slaving will be performed in <em class="parameter"><code>src<
 <a name="gst-plugins-base-libs-gstbaseaudiosrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstBaseAudioSrc--actual-buffer-time"></a><h3>The <code class="literal">"actual-buffer-time"</code> property</h3>
-<pre class="programlisting">  "actual-buffer-time"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read</pre>
+<pre class="programlisting">  "actual-buffer-time"       <span class="type">gint64</span>                : Read</pre>
 <p>
 Actual configured size of audio buffer in microseconds.
 </p>
@@ -351,7 +350,7 @@ Actual configured size of audio buffer in microseconds.
 <hr>
 <div class="refsect2">
 <a name="GstBaseAudioSrc--actual-latency-time"></a><h3>The <code class="literal">"actual-latency-time"</code> property</h3>
-<pre class="programlisting">  "actual-latency-time"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read</pre>
+<pre class="programlisting">  "actual-latency-time"      <span class="type">gint64</span>                : Read</pre>
 <p>
 Actual configured audio latency in microseconds.
 </p>
@@ -362,7 +361,7 @@ Actual configured audio latency in microseconds.
 <hr>
 <div class="refsect2">
 <a name="GstBaseAudioSrc--buffer-time"></a><h3>The <code class="literal">"buffer-time"</code> property</h3>
-<pre class="programlisting">  "buffer-time"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "buffer-time"              <span class="type">gint64</span>                : Read / Write</pre>
 <p>Size of audio buffer in microseconds.</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 200000</p>
@@ -370,7 +369,7 @@ Actual configured audio latency in microseconds.
 <hr>
 <div class="refsect2">
 <a name="GstBaseAudioSrc--latency-time"></a><h3>The <code class="literal">"latency-time"</code> property</h3>
-<pre class="programlisting">  "latency-time"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "latency-time"             <span class="type">gint64</span>                : Read / Write</pre>
 <p>Audio latency in microseconds.</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 10000</p>
@@ -397,6 +396,6 @@ Actual configured audio latency in microseconds.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 15b6dc2..72dc4e0 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstbasertpaudiopayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="next" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertpaudiop
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html"><span class="returnvalue">GstAdapter</span></a> *        <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter" title="gst_base_rtp_audio_payload_get_adapter ()">gst_base_rtp_audio_payload_get_adapter</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *basertpaudiopayload</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push" title="gst_base_rtp_audio_payload_push ()">gst_base_rtp_audio_payload_push</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *baseaudiopayload</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" title="gst_base_rtp_audio_payload_flush ()">gst_base_rtp_audio_payload_flush</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *baseaudiopayload</code></em>,
@@ -90,10 +90,6 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertpaudiop
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbasertpaudiopayload.description"></a><h2>Description</h2>
 <p>
-</p>
-<div class="refsect2">
-<a name="idp16015920"></a><h3>Usage</h3>
-<p>
 Provides a base class for audio RTP payloaders for frame or sample based
 audio codecs (constant bitrate)
 </p>
@@ -111,6 +107,10 @@ sent in a last RTP packet. In the case of frame based codecs, the resulting
 RTP packets always contain full frames.
 </p>
 <p>
+</p>
+<div class="refsect2">
+<a name="idp18656560"></a><h3>Usage</h3>
+<p>
 To use this base class, your child element needs to call either
 <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based" title="gst_base_rtp_audio_payload_set_frame_based ()"><code class="function">gst_base_rtp_audio_payload_set_frame_based()</code></a> or
 <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based" title="gst_base_rtp_audio_payload_set_sample_based ()"><code class="function">gst_base_rtp_audio_payload_set_sample_based()</code></a>. This is usually done in the
@@ -138,10 +138,18 @@ specific to GstBaseRTPAudioPayload.
 <a name="GstBaseRTPAudioPayloadClass"></a><h3>struct GstBaseRTPAudioPayloadClass</h3>
 <pre class="programlisting">struct GstBaseRTPAudioPayloadClass {
   GstBaseRTPPayloadClass parent_class;
-
-  gpointer _gst_reserved[GST_PADDING];
 };
 </pre>
+<p>
+Base class for audio RTP payloader.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass" title="struct GstBaseRTPPayloadClass"><span class="type">GstBaseRTPPayloadClass</span></a> <em class="structfield"><code><a name="GstBaseRTPAudioPayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr></tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -256,7 +264,7 @@ Gets the internal adapter used by the depayloader.
 <div class="refsect2">
 <a name="gst-base-rtp-audio-payload-push"></a><h3>gst_base_rtp_audio_payload_push ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_rtp_audio_payload_push     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *baseaudiopayload</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
 <p>
@@ -372,6 +380,6 @@ Sets the options for sample based audio codecs.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 19e5782..0de9db8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstbasertpdepayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">
 <link rel="next" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,7 +51,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertpdepayl
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push" title="gst_base_rtp_depayload_push ()">gst_base_rtp_depayload_push</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *out_buf</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts" title="gst_base_rtp_depayload_push_ts ()">gst_base_rtp_depayload_push_ts</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *out_buf</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" title="gst_base_rtp_depayload_push_list ()">gst_base_rtp_depayload_push_list</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *out_list</code></em>);
@@ -75,15 +75,9 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertpdepayl
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbasertpdepayload.description"></a><h2>Description</h2>
 <p>
-</p>
-<div class="refsect2">
-<a name="idp15451472"></a><p>
 Provides a base class for RTP depayloaders
 </p>
 </div>
-<p>
-</p>
-</div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbasertpdepayload.details"></a><h2>Details</h2>
 <div class="refsect2">
@@ -125,6 +119,42 @@ Provides a base class for RTP depayloaders
   gboolean (*handle_event) (GstBaseRTPDepayload * filter, GstEvent * event);
 };
 </pre>
+<p>
+Base class for audio RTP payloader.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseRTPDepayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.set-caps"></a>set_caps</code></em> ()</span></p></td>
+<td>configure the depayloader</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.add-to-queue"></a>add_to_queue</code></em> ()</span></p></td>
+<td>(deprecated)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.process"></a>process</code></em> ()</span></p></td>
+<td>process incoming rtp packets</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.set-gst-timestamp"></a>set_gst_timestamp</code></em> ()</span></p></td>
+<td>convert from RTP timestamp to GST timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.packet-lost"></a>packet_lost</code></em> ()</span></p></td>
+<td>signal the depayloader about packet loss</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.handle-event"></a>handle_event</code></em> ()</span></p></td>
+<td>custom event handling</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -176,7 +206,7 @@ outgoing buffers themselves.
 <div class="refsect2">
 <a name="gst-base-rtp-depayload-push-ts"></a><h3>gst_base_rtp_depayload_push_ts ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_rtp_depayload_push_ts      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *out_buf</code></em>);</pre>
 <p>
 Push <em class="parameter"><code>out_buf</code></em> to the peer of <em class="parameter"><code>filter</code></em>. This function takes ownership of
@@ -255,6 +285,6 @@ Push <em class="parameter"><code>out_list</code></em> to the peer of <em class="
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index ad1c275..85a25e0 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstbasertppayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertppayloa
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> clock_rate</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> clock_rate</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps" title="gst_basertppayload_set_outcaps ()">gst_basertppayload_set_outcaps</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload"><span class="type">GstBaseRTPPayload</span></a> *payload</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fieldname</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
@@ -80,12 +80,12 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertppayloa
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbasertppayload.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>max-ptime</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>min-ptime</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>max-ptime</a>"                <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>min-ptime</a>"                <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu" title='The "mtu" property'>mtu</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime" title='The "perfect-rtptime" property'>perfect-rtptime</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt" title='The "pt" property'>pt</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>ptime-multiple</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>ptime-multiple</a>"           <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum" title='The "seqnum" property'>seqnum</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
   "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset" title='The "seqnum-offset" property'>seqnum-offset</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc" title='The "ssrc" property'>ssrc</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
@@ -96,15 +96,9 @@ struct              <a class="link" href="gst-plugins-base-libs-gstbasertppayloa
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbasertppayload.description"></a><h2>Description</h2>
 <p>
-</p>
-<div class="refsect2">
-<a name="idp17358176"></a><p>
 Provides a base class for RTP payloaders
 </p>
 </div>
-<p>
-</p>
-</div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstbasertppayload.details"></a><h2>Details</h2>
 <div class="refsect2">
@@ -127,6 +121,34 @@ Provides a base class for RTP payloaders
   GstCaps *     (*get_caps)             (GstBaseRTPPayload *payload, GstPad * pad);
 };
 </pre>
+<p>
+Base class for audio RTP payloader.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseRTPPayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.set-caps"></a>set_caps</code></em> ()</span></p></td>
+<td>configure the payloader</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.handle-buffer"></a>handle_buffer</code></em> ()</span></p></td>
+<td>process data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.handle-event"></a>handle_event</code></em> ()</span></p></td>
+<td>custom event handling</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.get-caps"></a>get_caps</code></em> ()</span></p></td>
+<td>get desired caps</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -303,7 +325,7 @@ This function takes ownership of <em class="parameter"><code>list</code></em>.
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> clock_rate</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> clock_rate</code></em>);</pre>
 <p>
 Set the rtp options of the payloader. These options will be set in the caps
 of the payloader. Subclasses must call this method before calling
@@ -379,7 +401,7 @@ Variable arguments should be in the form field name, field type
 <a name="gst-plugins-base-libs-gstbasertppayload.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstBaseRTPPayload--max-ptime"></a><h3>The <code class="literal">"max-ptime"</code> property</h3>
-<pre class="programlisting">  "max-ptime"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "max-ptime"                <span class="type">gint64</span>                : Read / Write</pre>
 <p>Maximum duration of the packet data in ns (-1 = unlimited up to MTU).</p>
 <p>Allowed values: &gt;= -1</p>
 <p>Default value: -1</p>
@@ -387,7 +409,7 @@ Variable arguments should be in the form field name, field type
 <hr>
 <div class="refsect2">
 <a name="GstBaseRTPPayload--min-ptime"></a><h3>The <code class="literal">"min-ptime"</code> property</h3>
-<pre class="programlisting">  "min-ptime"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "min-ptime"                <span class="type">gint64</span>                : Read / Write</pre>
 <p>Minimum duration of the packet data in ns (can't go above MTU).</p>
 <p>Allowed values: &gt;= 0</p>
 <p>Default value: 0</p>
@@ -418,7 +440,7 @@ Variable arguments should be in the form field name, field type
 <hr>
 <div class="refsect2">
 <a name="GstBaseRTPPayload--ptime-multiple"></a><h3>The <code class="literal">"ptime-multiple"</code> property</h3>
-<pre class="programlisting">  "ptime-multiple"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "ptime-multiple"           <span class="type">gint64</span>                : Read / Write</pre>
 <p>Force buffers to be multiples of this duration in ns (0 disables).</p>
 <p>Allowed values: &gt;= 0</p>
 <p>Default value: 0</p>
@@ -464,6 +486,6 @@ Variable arguments should be in the form field name, field type
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a30e400..e9d1497 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcddabasesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-cdda.html" title="CDDA Library">
 <link rel="prev" href="gstreamer-cdda.html" title="CDDA Library">
 <link rel="next" href="gstreamer-ffft.html" title="FFT Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,7 +84,7 @@ GstCddaBaseSrc implements
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11424608"></a><h3>Using GstCddaBaseSrc-based elements in applications</h3>
+<a name="idp11955168"></a><h3>Using GstCddaBaseSrc-based elements in applications</h3>
 <p>
 Provides a base class for CDDA sources, which handles things like seeking,
 querying, discid calculation, tags, and buffer timestamping.
@@ -151,6 +151,38 @@ among others.
   gchar **    (*probe_devices)      (GstCddaBaseSrc *src);
 };
 </pre>
+<p>
+Cdda source base class.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">GstPushSrcClass</span> <em class="structfield"><code><a name="GstCddaBaseSrcClass.pushsrc-class"></a>pushsrc_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.open"></a>open</code></em> ()</span></p></td>
+<td>opening the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.close"></a>close</code></em> ()</span></p></td>
+<td>closing the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.read-sector"></a>read_sector</code></em> ()</span></p></td>
+<td>reading a sector</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.get-default-device"></a>get_default_device</code></em> ()</span></p></td>
+<td>getting the default device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.probe-devices"></a>probe_devices</code></em> ()</span></p></td>
+<td>probing possible devices</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -278,6 +310,6 @@ copy of the structure (and take ownership of the taglist if there is one).
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index d0bd13a..dac36d8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcolorbalance</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="next" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,7 +58,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-L
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed" title="gst_color_balance_value_changed ()">gst_color_balance_value_changed</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a>  <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a> <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -85,7 +85,7 @@ GstColorBalance requires
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11606512"></a><p>
+<a name="idp13682272"></a><p>
 This interface is implemented by elements which can perform some color
 balance operation on video frames they process. For example, modifying
 the brightness, contrast, hue or saturation.
@@ -124,16 +124,45 @@ Example elements are 'xvimagesink' and 'colorbalance'
   void (* value_changed) (GstColorBalance        *balance,
                           GstColorBalanceChannel *channel,
                           gint                    value);
-
-  gpointer _gst_reserved[GST_PADDING];
 };
 </pre>
+<p>
+Color-balance interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstColorBalanceClass.klass"></a>klass</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> <em class="structfield"><code><a name="GstColorBalanceClass.balance-type"></a>balance_type</code></em>;</span></p></td>
+<td>implementation type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.list-channels"></a>list_channels</code></em> ()</span></p></td>
+<td>list handled channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.set-value"></a>set_value</code></em> ()</span></p></td>
+<td>set a channel value</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.get-value"></a>get_value</code></em> ()</span></p></td>
+<td>get a channel value</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.value-changed"></a>value_changed</code></em> ()</span></p></td>
+<td>default handler for value changed notification</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstColorBalanceType"></a><h3>enum GstColorBalanceType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_COLOR_BALANCE_HARDWARE,
   GST_COLOR_BALANCE_SOFTWARE
 } GstColorBalanceType;
@@ -195,8 +224,8 @@ Retrieve the current value of the indicated channel, between min_value
 and max_value.
 </p>
 <p>
-See Also: The <span class="type">"min_value"</span> and
-        <span class="type">"max_value"</span> members of the
+See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
+        <span class="type">GstColorBalanceChannel.max_value</span> members of the
         <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.
 </p>
 <div class="variablelist"><table border="0">
@@ -228,8 +257,8 @@ Sets the current value of the channel to the passed value, which must
 be between min_value and max_value.
 </p>
 <p>
-See Also: The <span class="type">"min_value"</span> and
-        <span class="type">"max_value"</span> members of the
+See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
+        <span class="type">GstColorBalanceChannel.max_value</span> members of the
         <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.
 </p>
 <div class="variablelist"><table border="0">
@@ -283,7 +312,7 @@ channel object.
 <hr>
 <div class="refsect2">
 <a name="gst-color-balance-get-balance-type"></a><h3>gst_color_balance_get_balance_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a>  gst_color_balance_get_balance_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a> gst_color_balance_get_balance_type  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> of this implementation.
 </p>
@@ -341,6 +370,6 @@ Fired when the value of the indicated channel has changed.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index acbe1d4..b2e9ae8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcolorbalancechannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
 <link rel="next" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstcolorbalancec
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8229152"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
+<a name="idp13450016"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
 for modifying the color balance implemented by an element providing the
 <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> interface. For example, Hue or Saturation.
 </p>
@@ -112,10 +112,24 @@ for modifying the color balance implemented by an element providing the
   /* signals */
   void (* value_changed) (GstColorBalanceChannel *channel,
                           gint                    value);
-
-  gpointer _gst_reserved[GST_PADDING];
 };
 </pre>
+<p>
+Color-balance channel class.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstColorBalanceChannelClass.parent"></a>parent</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceChannelClass.value-changed"></a>value_changed</code></em> ()</span></p></td>
+<td>default handler for value changed notification</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 </div>
 <div class="refsect1">
@@ -151,6 +165,6 @@ Fired when the value of the indicated channel has changed.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6e75d7c..b5e313a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstdiscoverer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
 <link rel="next" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,16 +60,13 @@ struct              <a class="link" href="gst-plugins-base-libs-gstdiscoverer.ht
                     <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct" title="GstDiscovererInfo">GstDiscovererInfo</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult">GstDiscovererResult</a>;
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration" title="gst_discoverer_info_get_duration ()">gst_discoverer_info_get_duration</a>    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *        <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a>  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *   <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                     <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a>
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *          <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a>         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a>    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
 #define             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref" title="gst_discoverer_info_ref()">gst_discoverer_info_ref</a>             (info)
 #define             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref" title="gst_discoverer_info_unref()">gst_discoverer_info_unref</a>           (info)
@@ -78,42 +75,46 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
                     <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo">GstDiscovererContainerInfo</a>;
                     <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo">GstDiscovererAudioInfo</a>;
                     <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo">GstDiscovererVideoInfo</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *                  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a>
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *       <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>
+                    <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo">GstDiscovererSubtitleInfo</a>;
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *         <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
 #define             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a>      (info)
 #define             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a>    (info)
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>
                                                         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *infos</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> streamtype</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" title="gst_discoverer_info_get_subtitle_streams ()">gst_discoverer_info_get_subtitle_streams</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" title="gst_discoverer_audio_info_get_language ()">gst_discoverer_audio_info_get_language</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" title="gst_discoverer_subtitle_info_get_language ()">gst_discoverer_subtitle_info_get_language</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);
@@ -149,7 +150,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>timeout</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write / Construct
+  "<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>timeout</a>"                  <span class="type">guint64</span>               : Read / Write / Construct
 </pre>
 </div>
 <div class="refsect1">
@@ -290,7 +291,8 @@ afterwards.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
-<td>If an error occurred, this field will be filled in.</td>
+<td>If an error occurred, this field will be filled in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -331,7 +333,7 @@ afterwards.
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em> was succesfully appended to the list of pending
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em> was successfully appended to the list of pending
 uris, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
 </td>
 </tr>
@@ -423,8 +425,7 @@ Result values for the discovery process.
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-misc"></a><h3>gst_discoverer_info_get_misc ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *        gst_discoverer_info_get_misc
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_info_get_misc       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -447,7 +448,7 @@ Result values for the discovery process.
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-result"></a><h3>gst_discoverer_info_get_result ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a>  gst_discoverer_info_get_result     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> gst_discoverer_info_get_result      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -467,7 +468,7 @@ Result values for the discovery process.
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-stream-info"></a><h3>gst_discoverer_info_get_stream_info ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *   gst_discoverer_info_get_stream_info
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_info_get_stream_info
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -492,8 +493,7 @@ This structure can be traversed to see the original hierarchy. Unref with
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-stream-list"></a><h3>gst_discoverer_info_get_stream_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                     gst_discoverer_info_get_stream_list
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_stream_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -516,8 +516,7 @@ with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discover
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-tags"></a><h3>gst_discoverer_info_get_tags ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *          gst_discoverer_info_get_tags
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  gst_discoverer_info_get_tags        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -528,7 +527,7 @@ with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discover
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>all tags contained in the <code class="literal">URI</code>. If you wish to use
+<td>all tags contained in the URI. If you wish to use
 the tags after the life-time of <em class="parameter"><code>info</code></em>, you will need to copy them. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
@@ -539,7 +538,7 @@ the tags after the life-time of <em class="parameter"><code>info</code></em>, yo
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-uri"></a><h3>gst_discoverer_info_get_uri ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *               gst_discoverer_info_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_discoverer_info_get_uri         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -572,7 +571,7 @@ Copy it if you wish to use it after the life-time of <em class="parameter"><code
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the wheter the URI is seekable.</td>
+<td>the whether the URI is seekable.</td>
 </tr>
 </tbody>
 </table></div>
@@ -674,9 +673,18 @@ for the audio and video streams respectively.
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstDiscovererSubtitleInfo"></a><h3>GstDiscovererSubtitleInfo</h3>
+<pre class="programlisting">typedef struct _GstDiscovererSubtitleInfo GstDiscovererSubtitleInfo;</pre>
+<p>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> specific to subtitle streams (this includes text and
+image based ones).
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-discoverer-stream-info-get-caps"></a><h3>gst_discoverer_stream_info_get_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *                  gst_discoverer_stream_info_get_caps
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_discoverer_stream_info_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -698,7 +706,7 @@ for the audio and video streams respectively.
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-misc"></a><h3>gst_discoverer_stream_info_get_misc ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *       gst_discoverer_stream_info_get_misc
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_stream_info_get_misc
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -722,7 +730,7 @@ after the life-time of <em class="parameter"><code>info</code></em> you will nee
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-next"></a><h3>gst_discoverer_stream_info_get_next ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *  gst_discoverer_stream_info_get_next
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_next
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -746,7 +754,7 @@ Unref with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-di
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-previous"></a><h3>gst_discoverer_stream_info_get_previous ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *  gst_discoverer_stream_info_get_previous
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_previous
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -770,8 +778,7 @@ after usage. <span class="annotation">[<acronym title="Free data after the code
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-tags"></a><h3>gst_discoverer_stream_info_get_tags ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *         gst_discoverer_stream_info_get_tags
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  gst_discoverer_stream_info_get_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -853,7 +860,7 @@ and fress the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-stream-type-nick"></a><h3>gst_discoverer_stream_info_get_stream_type_nick ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_discoverer_stream_info_get_stream_type_nick
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_discoverer_stream_info_get_stream_type_nick
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -875,7 +882,7 @@ and fress the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-audio-streams"></a><h3>gst_discoverer_info_get_audio_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    gst_discoverer_info_get_audio_streams
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_audio_streams
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> contained in <em class="parameter"><code>info</code></em>
@@ -902,7 +909,7 @@ matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDisco
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-container-streams"></a><h3>gst_discoverer_info_get_container_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    gst_discoverer_info_get_container_streams
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_container_streams
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> contained in <em class="parameter"><code>info</code></em>
@@ -929,8 +936,7 @@ matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDisco
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-streams"></a><h3>gst_discoverer_info_get_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    gst_discoverer_info_get_streams
-                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_streams     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> streamtype</code></em>);</pre>
 <p>
 Finds the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> contained in <em class="parameter"><code>info</code></em> that match the
@@ -962,8 +968,35 @@ matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDisco
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-discoverer-info-get-subtitle-streams"></a><h3>gst_discoverer_info_get_subtitle_streams ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_subtitle_streams
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<p>
+Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> contained in <em class="parameter"><code>info</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.DiscovererStreamInfo]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-discoverer-info-get-video-streams"></a><h3>gst_discoverer_info_get_video_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                    gst_discoverer_info_get_video_streams
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_video_streams
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> contained in <em class="parameter"><code>info</code></em>
@@ -1051,6 +1084,27 @@ matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDisco
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-discoverer-audio-info-get-language"></a><h3>gst_discoverer_audio_info_get_language ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_discoverer_audio_info_get_language
+                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the language of the stream, or NULL if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-discoverer-audio-info-get-max-bitrate"></a><h3>gst_discoverer_audio_info_get_max_bitrate ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_discoverer_audio_info_get_max_bitrate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
@@ -1117,6 +1171,27 @@ Free with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-dis
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-discoverer-subtitle-info-get-language"></a><h3>gst_discoverer_subtitle_info_get_language ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_discoverer_subtitle_info_get_language
+                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the language of the stream, or NULL if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-discoverer-video-info-get-bitrate"></a><h3>gst_discoverer_video_info_get_bitrate ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_discoverer_video_info_get_bitrate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
@@ -1351,7 +1426,7 @@ one frame).</td>
 <a name="gst-plugins-base-libs-gstdiscoverer.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstDiscoverer--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3>
-<pre class="programlisting">  "timeout"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write / Construct</pre>
+<pre class="programlisting">  "timeout"                  <span class="type">guint64</span>               : Read / Write / Construct</pre>
 <p>
 The duration (in nanoseconds) after which the discovery of an individual
 URI will timeout.
@@ -1452,6 +1527,6 @@ Will be emitted when the discover starts analyzing the pending URIs
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e026291..50b90d8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfft</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="next" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -55,8 +55,7 @@ all typed FFT classes.
 <a name="gst-plugins-base-libs-gstfft.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstFFTWindow"></a><h3>enum GstFFTWindow</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_FFT_WINDOW_RECTANGULAR,
   GST_FFT_WINDOW_HAMMING,
   GST_FFT_WINDOW_HANN,
@@ -125,6 +124,6 @@ the different GstFFT types will provide the best performance.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index c162728..530812f 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfftf32</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
 <link rel="next" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstfftf32.html#G
 <p>
 <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32"><span class="type">GstFFTF32</span></a> provides a FFT implementation and related functions for
 32 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the appropriate parameters and
 then call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> to perform the
 FFT or inverse FFT on a buffer of samples.
 </p>
@@ -280,6 +280,6 @@ This frees the memory allocated for <em class="parameter"><code>self</code></em>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index c0b2041..cac44f5 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfftf64</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
 <link rel="next" href="gstreamer-floatcast.html" title="FloatCast Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstfftf64.html#G
 <p>
 <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64"><span class="type">GstFFTF64</span></a> provides a FFT implementation and related functions for
 64 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()"><code class="function">gst_fft_f64_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the appropriate parameters and
 then call <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()"><code class="function">gst_fft_f64_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()"><code class="function">gst_fft_f64_inverse_fft()</code></a> to perform the
 FFT or inverse FFT on a buffer of samples.
 </p>
@@ -280,6 +280,6 @@ This frees the memory allocated for <em class="parameter"><code>self</code></em>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e03285b..5f0c198 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstffts16</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
 <link rel="next" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,13 +45,13 @@ struct              <a class="link" href="gst-plugins-base-libs-gstffts16.html#G
 <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="returnvalue">GstFFTS16</span></a> *         <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()">gst_fft_s16_new</a>                     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()">gst_fft_s16_fft</a>                     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gint16</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()">gst_fft_s16_inverse_fft</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()">gst_fft_s16_window</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()">gst_fft_s16_free</a>                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>);
 </pre>
@@ -61,7 +61,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstffts16.html#G
 <p>
 <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> provides a FFT implementation and related functions for
 signed 16 bit integer samples. To use this call <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()"><code class="function">gst_fft_s16_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the appropriate parameters and
 then call <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()"><code class="function">gst_fft_s16_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()"><code class="function">gst_fft_s16_inverse_fft()</code></a> to perform the
 FFT or inverse FFT on a buffer of samples.
 </p>
@@ -118,11 +118,11 @@ signed 16 bit integers.
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GstFFTS16Complex.r"></a>r</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint16</span> <em class="structfield"><code><a name="GstFFTS16Complex.r"></a>r</code></em>;</span></p></td>
 <td>Real part</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GstFFTS16Complex.i"></a>i</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint16</span> <em class="structfield"><code><a name="GstFFTS16Complex.i"></a>i</code></em>;</span></p></td>
 <td>Imaginary part</td>
 </tr>
 </tbody>
@@ -165,7 +165,7 @@ sense to keep one instance for several calls for speed reasons.
 <div class="refsect2">
 <a name="gst-fft-s16-fft"></a><h3>gst_fft_s16_fft ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_s16_fft                     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gint16</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>);</pre>
 <p>
 This performs the FFT on <em class="parameter"><code>timedata</code></em> and puts the result in <em class="parameter"><code>freqdata</code></em>.
@@ -202,7 +202,7 @@ domain samples.
 <a name="gst-fft-s16-inverse-fft"></a><h3>gst_fft_s16_inverse_fft ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_s16_inverse_fft             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>);</pre>
 <p>
 This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em> and puts the result in <em class="parameter"><code>timedata</code></em>.
 </p>
@@ -236,7 +236,7 @@ while allocating the <a class="link" href="gst-plugins-base-libs-gstffts16.html#
 <div class="refsect2">
 <a name="gst-fft-s16-window"></a><h3>gst_fft_s16_window ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_s16_window                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
 <p>
 This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
@@ -280,6 +280,6 @@ This frees the memory allocated for <em class="parameter"><code>self</code></em>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 3a60757..814d50d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstffts32</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
 <link rel="next" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,13 +45,13 @@ struct              <a class="link" href="gst-plugins-base-libs-gstffts32.html#G
 <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="returnvalue">GstFFTS32</span></a> *         <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()">gst_fft_s32_new</a>                     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()">gst_fft_s32_fft</a>                     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gint32</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()">gst_fft_s32_inverse_fft</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()">gst_fft_s32_window</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()">gst_fft_s32_free</a>                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>);
 </pre>
@@ -61,7 +61,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstffts32.html#G
 <p>
 <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> provides a FFT implementation and related functions for
 signed 32 bit integer samples. To use this call <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()"><code class="function">gst_fft_s32_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the appropriate parameters and
 then call <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()"><code class="function">gst_fft_s32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()"><code class="function">gst_fft_s32_inverse_fft()</code></a> to perform the
 FFT or inverse FFT on a buffer of samples.
 </p>
@@ -118,11 +118,11 @@ signed 32 bit integers.
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="GstFFTS32Complex.r"></a>r</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint32</span> <em class="structfield"><code><a name="GstFFTS32Complex.r"></a>r</code></em>;</span></p></td>
 <td>Real part</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="GstFFTS32Complex.i"></a>i</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint32</span> <em class="structfield"><code><a name="GstFFTS32Complex.i"></a>i</code></em>;</span></p></td>
 <td>Imaginary part</td>
 </tr>
 </tbody>
@@ -165,7 +165,7 @@ sense to keep one instance for several calls for speed reasons.
 <div class="refsect2">
 <a name="gst-fft-s32-fft"></a><h3>gst_fft_s32_fft ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_s32_fft                     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gint32</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>);</pre>
 <p>
 This performs the FFT on <em class="parameter"><code>timedata</code></em> and puts the result in <em class="parameter"><code>freqdata</code></em>.
@@ -202,7 +202,7 @@ domain samples.
 <a name="gst-fft-s32-inverse-fft"></a><h3>gst_fft_s32_inverse_fft ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_s32_inverse_fft             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>);</pre>
 <p>
 This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em> and puts the result in <em class="parameter"><code>timedata</code></em>.
 </p>
@@ -236,7 +236,7 @@ while allocating the <a class="link" href="gst-plugins-base-libs-gstffts32.html#
 <div class="refsect2">
 <a name="gst-fft-s32-window"></a><h3>gst_fft_s32_window ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_fft_s32_window                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
 <p>
 This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
@@ -280,6 +280,6 @@ This frees the memory allocated for <em class="parameter"><code>self</code></em>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 0b17bb2..73b2e53 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfloatcast</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-floatcast.html" title="FloatCast Library">
 <link rel="prev" href="gstreamer-floatcast.html" title="FloatCast Library">
 <link rel="next" href="gstreamer-interfaces.html" title="Interfaces Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -100,6 +100,6 @@ Casts a 32-bit floating point value (float) to an integer without bias.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 27b8450..3d2a231 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstmixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
 <link rel="next" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -85,7 +85,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags"><span class="returnvalue">GstMixerFlags</span></a>       <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType"><span class="returnvalue">GstMixerType</span></a>        <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a>  <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
@@ -161,18 +161,34 @@ macro (in C) and the mixer API can be used.
 <hr>
 <div class="refsect2">
 <a name="GstMixerType"></a><h3>enum GstMixerType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_MIXER_HARDWARE,
   GST_MIXER_SOFTWARE
 } GstMixerType;
 </pre>
+<p>
+Mixer classification.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-MIXER-HARDWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_HARDWARE</code></span></p></td>
+<td>mixing is implemented with dedicated hardware.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MIXER-SOFTWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_SOFTWARE</code></span></p></td>
+<td>mixing is implemented via software processing.
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMixerFlags"></a><h3>enum GstMixerFlags</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_MIXER_FLAG_NONE                = 0,
   GST_MIXER_FLAG_AUTO_NOTIFICATIONS  = (1&lt;&lt;0),
   GST_MIXER_FLAG_HAS_WHITELIST       = (1&lt;&lt;1),
@@ -218,8 +234,7 @@ implementation.
 <hr>
 <div class="refsect2">
 <a name="GstMixerMessageType"></a><h3>enum GstMixerMessageType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_MIXER_MESSAGE_INVALID,
   GST_MIXER_MESSAGE_MUTE_TOGGLED,
   GST_MIXER_MESSAGE_RECORD_TOGGLED,
@@ -597,7 +612,7 @@ options of a given options object has changed.
 </p>
 <p>
 The new options are not contained in the message on purpose. Applications
-should call <code class="function">gst_mixer_option_get_values()</code> on <em class="parameter"><code>opts</code></em> to make <em class="parameter"><code>opts</code></em> update
+should call <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()"><code class="function">gst_mixer_options_get_values()</code></a> on <em class="parameter"><code>opts</code></em> to make <em class="parameter"><code>opts</code></em> update
 its internal state and obtain the new list of values.
 </p>
 <p>
@@ -715,7 +730,7 @@ Get the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType"
 <hr>
 <div class="refsect2">
 <a name="gst-mixer-message-get-type"></a><h3>gst_mixer_message_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a>  gst_mixer_message_get_type         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> gst_mixer_message_get_type          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
 <p>
 Check a bus message to see if it is a GstMixer notification
 message and return the GstMixerMessageType identifying which
@@ -951,6 +966,6 @@ alsamixer, oss4mixer, sunaudiomixer
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a6766d9..7292d92 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstmixeroptions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">
 <link rel="next" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -66,10 +66,21 @@ Note that <code class="classname">GstMixerOptions</code> is a subclass of
 <a name="gst-plugins-base-libs-gstmixeroptions.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstMixerOptions-struct"></a><h3>struct GstMixerOptions</h3>
-<pre class="programlisting">struct GstMixerOptions;</pre>
+<pre class="programlisting">struct GstMixerOptions {
+  /* list of strings (do not access directly) (FIXME 0.11: make private) */
+  GList        *values;
+};
+</pre>
+<p>
+Mixer control object.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody></tbody>
+<tbody><tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstMixerOptions-struct.values"></a>values</code></em>;</span></p></td>
+<td>List of option strings. Do not access this member directly,
+always use <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()"><code class="function">gst_mixer_options_get_values()</code></a> instead.</td>
+</tr></tbody>
 </table></div>
 </div>
 <hr>
@@ -103,6 +114,6 @@ GstMixer, GstMixerTrack
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 2c526e2..4a8d9f1 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstmixertrack</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">
 <link rel="next" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -254,6 +254,6 @@ GstMixer, GstMixerOptions
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 46ee9d0..30b86c6 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstmultichannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">
 <link rel="next" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -100,17 +100,18 @@ multichannel audio.
    * incompatible with all other positions, either all positions
    * are defined or all positions are undefined, but can't mix'n'match  */
   GST_AUDIO_CHANNEL_POSITION_NONE,
-
-  /* don't use - counter */
-  GST_AUDIO_CHANNEL_POSITION_NUM
 } GstAudioChannelPosition;
 </pre>
+<p>
+Audio channel positions.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_INVALID</code></span></p></td>
-<td></td>
+<td>invalid position
+</td>
 </tr>
 <tr>
 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-MONO:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_MONO</code></span></p></td>
@@ -179,10 +180,6 @@ multichannel audio.
     any other channel position
 </td>
 </tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-NUM:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NUM</code></span></p></td>
-<td></td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -393,6 +390,6 @@ and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.h
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 54a22ee..3937b9c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstnavigation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">
 <link rel="next" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -75,7 +75,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gstnavigation.ht
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a>  <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>,
@@ -94,7 +94,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gstnavigation.ht
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a>     (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a>  <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>    (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a>   (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
@@ -161,7 +161,7 @@ mouse moving over a clickable region, or the set of available angles changing.
 </p>
 <p>
 The GstNavigation message functions provide functions for creating and parsing
-custom bus messages for signalling GstNavigation changes.
+custom bus messages for signaling GstNavigation changes.
 </p>
 </li>
 </ul></div>
@@ -182,10 +182,24 @@ custom bus messages for signalling GstNavigation changes.
 
   /* virtual functions */
   void (*send_event) (GstNavigation *navigation, GstStructure *structure);
-  
-  gpointer _gst_reserved[GST_PADDING];
 };
 </pre>
+<p>
+Color-balance interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstNavigationInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstNavigationInterface.send-event"></a>send_event</code></em> ()</span></p></td>
+<td>sending a navigation event</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -200,7 +214,7 @@ custom bus messages for signalling GstNavigation changes.
   GST_NAVIGATION_COMMAND_MENU5    = 5,
   GST_NAVIGATION_COMMAND_MENU6    = 6,
   GST_NAVIGATION_COMMAND_MENU7    = 7,
-  
+
   GST_NAVIGATION_COMMAND_LEFT     = 20,
   GST_NAVIGATION_COMMAND_RIGHT    = 21,
   GST_NAVIGATION_COMMAND_UP       = 22,
@@ -441,13 +455,35 @@ disappeared.
 <hr>
 <div class="refsect2">
 <a name="GstNavigationQueryType"></a><h3>enum GstNavigationQueryType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_NAVIGATION_QUERY_INVALID     = 0,
   GST_NAVIGATION_QUERY_COMMANDS    = 1,
   GST_NAVIGATION_QUERY_ANGLES      = 2
 } GstNavigationQueryType;
 </pre>
+<p>
+Tyoes of navigation interface queries.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-NAVIGATION-QUERY-INVALID:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_INVALID</code></span></p></td>
+<td>invalid query
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-NAVIGATION-QUERY-COMMANDS:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_COMMANDS</code></span></p></td>
+<td>command query
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-NAVIGATION-QUERY-ANGLES:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_ANGLES</code></span></p></td>
+<td>viewing angle query
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -679,7 +715,7 @@ of the event.
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-get-type"></a><h3>gst_navigation_message_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a>  gst_navigation_message_get_type
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> gst_navigation_message_get_type
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
 <p>
 Check a bus message to see if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> event, and return
@@ -694,7 +730,7 @@ the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The type of the <span class="type">GstNavigationMessage</span>, or
+<td>The type of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_INVALID</span></a> if the message is not a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a>
 notification.</td>
 </tr>
@@ -882,7 +918,7 @@ greater than one in a multiangle video.
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-get-type"></a><h3>gst_navigation_query_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a>  gst_navigation_query_get_type   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> gst_navigation_query_get_type    (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
 Inspect a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
 it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> query.
@@ -897,7 +933,7 @@ it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#Gst
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>The <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> of the query, or
-<span class="type">GST_NAVIGATION_QUERY_INVALID</span>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"><span class="type">GST_NAVIGATION_QUERY_INVALID</span></a>
 </td>
 </tr>
 </tbody>
@@ -1161,6 +1197,6 @@ of commands passed must be equal to <em class="parameter"><code>n_commands</code
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index ea25361..2663b33 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstnetbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-netbuffer.html" title="Network Buffer Library">
 <link rel="prev" href="gstreamer-netbuffer.html" title="Network Buffer Library">
 <link rel="next" href="gstreamer-riff.html" title="Riff Media Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -47,24 +47,24 @@ struct              <a class="link" href="gst-plugins-base-libs-gstnetbuffer.htm
 <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer" title="struct GstNetBuffer"><span class="returnvalue">GstNetBuffer</span></a> *      <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new" title="gst_netbuffer_new ()">gst_netbuffer_new</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType"><span class="returnvalue">GstNetType</span></a>          <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type" title="gst_netaddress_get_net_type ()">gst_netaddress_get_net_type</a>         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address" title="gst_netaddress_set_ip4_address ()">gst_netaddress_set_ip4_address</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> address</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> address</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address" title="gst_netaddress_get_ip4_address ()">gst_netaddress_get_ip4_address</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *address</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *address</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address" title="gst_netaddress_set_ip6_address ()">gst_netaddress_set_ip6_address</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address" title="gst_netaddress_get_ip6_address ()">gst_netaddress_get_ip6_address</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes" title="gst_netaddress_get_address_bytes ()">gst_netaddress_get_address_bytes</a>    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" title="gst_netaddress_set_address_bytes ()">gst_netaddress_set_address_bytes</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType"><span class="type">GstNetType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" title="gst_netaddress_equal ()">gst_netaddress_equal</a>                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr1</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr2</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" title="gst_netaddress_to_string ()">gst_netaddress_to_string</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
@@ -213,8 +213,8 @@ Get the type of address stored in <em class="parameter"><code>naddr</code></em>.
 <div class="refsect2">
 <a name="gst-netaddress-set-ip4-address"></a><h3>gst_netaddress_set_ip4_address ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_netaddress_set_ip4_address      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> address</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> address</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
 <p>
 Set <em class="parameter"><code>naddr</code></em> with the IPv4 <em class="parameter"><code>address</code></em> and <em class="parameter"><code>port</code></em> pair.
 </p>
@@ -244,8 +244,8 @@ use <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros
 <div class="refsect2">
 <a name="gst-netaddress-get-ip4-address"></a><h3>gst_netaddress_get_ip4_address ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_netaddress_get_ip4_address      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *address</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *address</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
 <p>
 Get the IPv4 address stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>. This function requires
 that the address type of <em class="parameter"><code>naddr</code></em> is of type <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GST-NET-TYPE-IP4:CAPS"><span class="type">GST_NET_TYPE_IP4</span></a>.
@@ -280,8 +280,8 @@ Note that <em class="parameter"><code>port</code></em> and <em class="parameter"
 <div class="refsect2">
 <a name="gst-netaddress-set-ip6-address"></a><h3>gst_netaddress_set_ip6_address ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_netaddress_set_ip6_address      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
 <p>
 Set <em class="parameter"><code>naddr</code></em> with the IPv6 <em class="parameter"><code>address</code></em> and <em class="parameter"><code>port</code></em> pair.
 </p>
@@ -311,8 +311,8 @@ it to network byte order.
 <div class="refsect2">
 <a name="gst-netaddress-get-ip6-address"></a><h3>gst_netaddress_get_ip6_address ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_netaddress_get_ip6_address      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
 <p>
 Get the IPv6 address stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>.
 </p>
@@ -350,8 +350,8 @@ it to host order.
 <div class="refsect2">
 <a name="gst-netaddress-get-address-bytes"></a><h3>gst_netaddress_get_address_bytes ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_netaddress_get_address_bytes    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
 <p>
 Get just the address bytes stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>.
 </p>
@@ -387,14 +387,14 @@ it to host order. IP4 addresses are also stored in network byte order.
 <a name="gst-netaddress-set-address-bytes"></a><h3>gst_netaddress_set_address_bytes ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_netaddress_set_address_bytes    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType"><span class="type">GstNetType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
 <p>
 Set just the address bytes stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>.
 </p>
 <p>
 Note that <em class="parameter"><code>port</code></em> must be expressed in network byte order, use <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros.html#g-htons"><code class="function">g_htons()</code></a> to
-convert it to network byte order order. IP4 address bytes must also be
+convert it to network byte order. IP4 address bytes must also be
 stored in network byte order.
 </p>
 <div class="variablelist"><table border="0">
@@ -493,6 +493,6 @@ enough</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index af7358b..8b58a85 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gstreamer-base-utils.html" title="Base Utils Library">
-<link rel="next" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstpbutilscodecutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstpluginsbaseversion.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gstpbutils.synopsis" class="shortcut">Top</a>
 #include &lt;gst/pbutils/pbutils.h&gt;
 
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()">gst_pb_utils_init</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
-
-#define             <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a>      (major,
-                                                         minor,
-                                                         micro)
-<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a>     (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -61,7 +48,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp19337104"></a><h3>Linking to this library</h3>
+<a name="idp7121744"></a><h3>Linking to this library</h3>
 <p>
 libgstpbutils is a general utility library for plugins and applications,
 available since gst-plugins-base 0.10.12. It currently provides the
@@ -115,111 +102,10 @@ library has already been initialised.
 </p>
 <p class="since">Since 0.10.12</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MAJOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MAJOR (0)
-</pre>
-<p>
-The major version of GStreamer's gst-plugins-base libraries at compile time.
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (10)
-</pre>
-<p>
-The minor version of GStreamer's gst-plugins-base libraries at compile time.
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (34)
-</pre>
-<p>
-The micro version of GStreamer's gst-plugins-base libraries at compile time.
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-NANO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_NANO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (0)
-</pre>
-<p>
-The nano version of GStreamer's gst-plugins-base libraries at compile time.
-Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-CHECK-PLUGINS-BASE-VERSION:CAPS"></a><h3>GST_CHECK_PLUGINS_BASE_VERSION()</h3>
-<pre class="programlisting">#define             GST_CHECK_PLUGINS_BASE_VERSION(major,minor,micro)</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-plugins-base-version"></a><h3>gst_plugins_base_version ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_plugins_base_version            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);</pre>
-<p>
-Gets the version number of the GStreamer Plugins Base libraries.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
-<td>pointer to a guint to store the major version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>minor</code></em> :</span></p></td>
-<td>pointer to a guint to store the minor version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>micro</code></em> :</span></p></td>
-<td>pointer to a guint to store the micro version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>nano</code></em> :</span></p></td>
-<td>pointer to a guint to store the nano version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-plugins-base-version-string"></a><h3>gst_plugins_base_version_string ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_plugins_base_version_string     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-This function returns a string that is useful for describing this version
-of GStreamer's gst-plugins-base libraries to the outside world: user agent
-strings, logging, about dialogs ...
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated string describing this version of gst-plugins-base</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.31</p>
-</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e97c212..cc14367 100644 (file)
@@ -3,18 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilscodecutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
-<link rel="prev" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
+<link rel="prev" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstpbutils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstpluginsbaseversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
 
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>
                                                         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sr_idx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>     (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>       (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a>    (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a>      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a>      (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc" title="gst_codec_utils_h264_get_level_idc ()">gst_codec_utils_h264_get_level_idc</a>  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);
 
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a>
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+                                                        (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a>
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+                                                        (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 </pre>
 </div>
@@ -77,7 +78,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp24572928"></a><p>
+<a name="idp27788672"></a><p>
 Provides codec-specific ulility functions such as functions to provide the
 codec profile and level in human-readable string form from header data.
 </p>
@@ -114,7 +115,7 @@ container) or ADTS frame header</td>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-get-profile"></a><h3>gst_codec_utils_aac_get_profile ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_aac_get_profile     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_aac_get_profile     (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Returns the profile of the given AAC stream as a string. The profile is
@@ -154,7 +155,7 @@ determined.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-get-level"></a><h3>gst_codec_utils_aac_get_level ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_aac_get_level       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_aac_get_level       (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC
@@ -216,7 +217,7 @@ determined.</td>
 <a name="gst-codec-utils-aac-caps-set-level-and-profile"></a><h3>gst_codec_utils_aac_caps_set_level_and_profile ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_codec_utils_aac_caps_set_level_and_profile
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Sets the level and profile on <em class="parameter"><code>caps</code></em> if it can be determined from
@@ -254,7 +255,7 @@ below for a more details).</td>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h264-get-profile"></a><h3>gst_codec_utils_h264_get_profile ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_h264_get_profile    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_h264_get_profile    (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Converts the profile indication (profile_idc) in the stream's
@@ -299,7 +300,7 @@ byte.
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h264-get-level"></a><h3>gst_codec_utils_h264_get_level ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_h264_get_level      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_h264_get_level      (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Converts the level indication (level_idc) in the stream's
@@ -330,7 +331,7 @@ same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecut
 <a name="gst-codec-utils-h264-caps-set-level-and-profile"></a><h3>gst_codec_utils_h264_caps_set_level_and_profile ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_codec_utils_h264_caps_set_level_and_profile
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Sets the level and profile in <em class="parameter"><code>caps</code></em> if it can be determined from <em class="parameter"><code>sps</code></em>. See
@@ -363,9 +364,31 @@ for more details on the parameters.
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-codec-utils-h264-get-level-idc"></a><h3>gst_codec_utils_h264_get_level_idc ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_codec_utils_h264_get_level_idc  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);</pre>
+<p>
+Transform a level string from the caps into the level_idc
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
+<td>A level string from caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the level_idc or 0 if the level is unknown</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-codec-utils-mpeg4video-get-profile"></a><h3>gst_codec_utils_mpeg4video_get_profile ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_mpeg4video_get_profile
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+                                                        (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Converts the profile indication in the stream's visual object sequence into
@@ -396,7 +419,7 @@ object sequence start code. Only the first byte
 <div class="refsect2">
 <a name="gst-codec-utils-mpeg4video-get-level"></a><h3>gst_codec_utils_mpeg4video_get_level ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_codec_utils_mpeg4video_get_level
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+                                                        (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Converts the level indication in the stream's visual object sequence into
@@ -428,7 +451,7 @@ object sequence start code. Only the first byte
 <a name="gst-codec-utils-mpeg4video-caps-set-level-and-profile"></a><h3>gst_codec_utils_mpeg4video_caps_set_level_and_profile ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_codec_utils_mpeg4video_caps_set_level_and_profile
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Sets the level and profile in <em class="parameter"><code>caps</code></em> if it can be determined from
@@ -464,6 +487,6 @@ parameters.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index abbb237..f647c2e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsdescriptions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,7 +62,7 @@ and encoder, decoder, URI source and URI sink elements</p>
 <p>
 </p>
 <div class="refsect2">
-<a name="idp23918896"></a><p>
+<a name="idp25852032"></a><p>
 The above functions provide human-readable strings for media formats
 and decoder/demuxer/depayloader/encoder/muxer/payloader elements for use
 in error dialogs or other messages shown to users.
@@ -292,6 +292,6 @@ string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Al
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 7f995ec..daec235 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsinstallplugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
 <link rel="next" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 enum                <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn">GstInstallPluginsReturn</a>;
 <span class="returnvalue">void</span>                (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()">*GstInstallPluginsResultFunc</a>)      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> result</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>  <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>  <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> ret</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a>
@@ -55,7 +55,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a>       (<em class="parameter"><code><span class="type">void</span></code></em>);
 
                     <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext">GstInstallPluginsContext</a>;
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> *  <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()">gst_install_plugins_context_free</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
@@ -67,7 +67,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp23991312"></a><h3>Overview</h3>
+<a name="idp25467280"></a><h3>Overview</h3>
 <p>
 Using this API, applications can request the installation of missing
 GStreamer plugins. These may be missing decoders/demuxers or encoders/muxers
@@ -456,7 +456,7 @@ to handle (but usually not relevant for playback applications).
 <p>
 Result codes returned by <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> and
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>, and also the result code passed to the
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> specified with <code class="function">gst_install_plugin_async()</code>.
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> specified with <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a>.
 </p>
 <p>
 These codes indicate success or failure of starting an external installer
@@ -566,7 +566,7 @@ a callback function if you are using the asynchronous interface.
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-async"></a><h3>gst_install_plugins_async ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>  gst_install_plugins_async      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> gst_install_plugins_async       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -623,7 +623,7 @@ installed but no suitable video decoder and no suitable audio decoder).
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-sync"></a><h3>gst_install_plugins_sync ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>  gst_install_plugins_sync       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> gst_install_plugins_sync        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);</pre>
 <p>
 Requests plugin installation and block until the plugins have been
@@ -731,7 +731,7 @@ API to set details on it.
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-context-new"></a><h3>gst_install_plugins_context_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> *  gst_install_plugins_context_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> * gst_install_plugins_context_new
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.
@@ -816,6 +816,6 @@ window like this:
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 2b2d9d7..d971db8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsmissingplugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp26701328"></a><p>
+<a name="idp28136352"></a><p>
 Functions to create, recognise and parse missing-plugins messages for
 applications and elements.
 </p>
@@ -505,6 +505,6 @@ with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocatio
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
new file mode 100644 (file)
index 0000000..30eb832
--- /dev/null
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstpluginsbaseversion</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
+<link rel="prev" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
+<link rel="next" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstpbutils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstpbutilscodecutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstpluginsbaseversion.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstpluginsbaseversion.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpluginsbaseversion.top_of_page"></a>gstpluginsbaseversion</span></h2>
+<p>gstpluginsbaseversion — GStreamer gst-plugins-base libraries version macros.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/pbutils/gstpluginsbaseversion.h&gt;
+
+#define             <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a>      (major,
+                                                         minor,
+                                                         micro)
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a>     (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion.description"></a><h2>Description</h2>
+<p>
+Use the GST_PLUGINS_BASE_VERSION_* macros e.g. to check what version of
+gst-plugins-base you are building against, and <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()"><code class="function">gst_plugins_base_version()</code></a>
+if you need to check at runtime what version of the gst-plugins-base
+libraries are being used / you are currently linked against.
+</p>
+<p>
+The version macros get defined by including &lt;gst/pbutils/pbutils.h&gt;.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MAJOR</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MAJOR (0)
+</pre>
+<p>
+The major version of GStreamer's gst-plugins-base libraries at compile time.
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (10)
+</pre>
+<p>
+The minor version of GStreamer's gst-plugins-base libraries at compile time.
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (36)
+</pre>
+<p>
+The micro version of GStreamer's gst-plugins-base libraries at compile time.
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-NANO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_NANO</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (0)
+</pre>
+<p>
+The nano version of GStreamer's gst-plugins-base libraries at compile time.
+Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-CHECK-PLUGINS-BASE-VERSION:CAPS"></a><h3>GST_CHECK_PLUGINS_BASE_VERSION()</h3>
+<pre class="programlisting">#define             GST_CHECK_PLUGINS_BASE_VERSION(major,minor,micro)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-plugins-base-version"></a><h3>gst_plugins_base_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_plugins_base_version            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);</pre>
+<p>
+Gets the version number of the GStreamer Plugins Base libraries.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
+<td>pointer to a guint to store the major version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>minor</code></em> :</span></p></td>
+<td>pointer to a guint to store the minor version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>micro</code></em> :</span></p></td>
+<td>pointer to a guint to store the micro version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nano</code></em> :</span></p></td>
+<td>pointer to a guint to store the nano version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-plugins-base-version-string"></a><h3>gst_plugins_base_version_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_plugins_base_version_string     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+This function returns a string that is useful for describing this version
+of GStreamer's gst-plugins-base libraries to the outside world: user agent
+strings, logging, about dialogs ...
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated string describing this version of gst-plugins-base</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.31</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index df03b13..b02a586 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpropertyprobe</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
 <link rel="next" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -174,8 +174,8 @@ Get a list of properties for which probing is supported.
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the list of properties for which probing is supported
-by this element.</td>
+<td>the list of <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> * pointers representing
+properties for which probing is supported by this element.</td>
 </tr>
 </tbody>
 </table></div>
@@ -444,6 +444,6 @@ Runs a probe on the property specified by <em class="parameter"><code>name</code
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4c918e3..3e1e655 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstriff</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-riff.html" title="Riff Media Library">
 <link rel="prev" href="gstreamer-riff.html" title="Riff Media Library">
 <link rel="next" href="gstreamer-rtp.html" title="RTP Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <pre class="synopsis">
 #include &lt;gst/riff/riff-media.h&gt;
 
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS" title="GST_RIFF_00">GST_RIFF_00</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS" title="GST_RIFF_0021">GST_RIFF_0021</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS" title="GST_RIFF_0031">GST_RIFF_0031</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS" title="GST_RIFF_0032">GST_RIFF_0032</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS" title="GST_RIFF_00AM">GST_RIFF_00AM</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS" title="GST_RIFF_00__">GST_RIFF_00__</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db" title="GST_RIFF_00db">GST_RIFF_00db</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc" title="GST_RIFF_00dc">GST_RIFF_00dc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx" title="GST_RIFF_00dx">GST_RIFF_00dx</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id" title="GST_RIFF_00id">GST_RIFF_00id</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv" title="GST_RIFF_00iv">GST_RIFF_00iv</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc" title="GST_RIFF_00pc">GST_RIFF_00pc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt" title="GST_RIFF_00rt">GST_RIFF_00rt</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc" title="GST_RIFF_00vc">GST_RIFF_00vc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm" title="GST_RIFF_00xm">GST_RIFF_00xm</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx" title="GST_RIFF_00xx">GST_RIFF_00xx</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS" title="GST_RIFF_01">GST_RIFF_01</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc" title="GST_RIFF_01dc">GST_RIFF_01dc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc" title="GST_RIFF_01pc">GST_RIFF_01pc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb" title="GST_RIFF_01wb">GST_RIFF_01wb</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS" title="GST_RIFF_02">GST_RIFF_02</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS" title="GST_RIFF_03">GST_RIFF_03</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS" title="GST_RIFF_04">GST_RIFF_04</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS" title="GST_RIFF_05">GST_RIFF_05</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS" title="GST_RIFF_06">GST_RIFF_06</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS" title="GST_RIFF_07">GST_RIFF_07</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS" title="GST_RIFF_AURA">GST_RIFF_AURA</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS" title="GST_RIFF_BW10">GST_RIFF_BW10</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS" title="GST_RIFF_CCC">GST_RIFF_CCC</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS" title="GST_RIFF_CRAM">GST_RIFF_CRAM</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS" title="GST_RIFF_CVID">GST_RIFF_CVID</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS" title="GST_RIFF_CYUV">GST_RIFF_CYUV</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS" title="GST_RIFF_DIB">GST_RIFF_DIB</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS" title="GST_RIFF_DISP">GST_RIFF_DISP</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS" title="GST_RIFF_DIV3">GST_RIFF_DIV3</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS" title="GST_RIFF_DMB1">GST_RIFF_DMB1</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS" title="GST_RIFF_FCCH_MSVC">GST_RIFF_FCCH_MSVC</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS" title="GST_RIFF_FCCH_RLE">GST_RIFF_FCCH_RLE</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc" title="GST_RIFF_FCCH_msvc">GST_RIFF_FCCH_msvc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds" title="GST_RIFF_FCC_auds">GST_RIFF_FCC_auds</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs" title="GST_RIFF_FCC_iavs">GST_RIFF_FCC_iavs</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads" title="GST_RIFF_FCC_pads">GST_RIFF_FCC_pads</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts" title="GST_RIFF_FCC_txts">GST_RIFF_FCC_txts</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc" title="GST_RIFF_FCC_vidc">GST_RIFF_FCC_vidc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids" title="GST_RIFF_FCC_vids">GST_RIFF_FCC_vids</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS" title="GST_RIFF_FF00">GST_RIFF_FF00</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS" title="GST_RIFF_H263">GST_RIFF_H263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS" title="GST_RIFF_I420">GST_RIFF_I420</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS" title="GST_RIFF_IDIT">GST_RIFF_IDIT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS" title="GST_RIFF_IJPG">GST_RIFF_IJPG</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS" title="GST_RIFF_INFO_IARL">GST_RIFF_INFO_IARL</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS" title="GST_RIFF_INFO_IART">GST_RIFF_INFO_IART</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS" title="GST_RIFF_INFO_ICMS">GST_RIFF_INFO_ICMS</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS" title="GST_RIFF_INFO_ICMT">GST_RIFF_INFO_ICMT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS" title="GST_RIFF_INFO_ICOP">GST_RIFF_INFO_ICOP</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS" title="GST_RIFF_INFO_ICRD">GST_RIFF_INFO_ICRD</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS" title="GST_RIFF_INFO_ICRP">GST_RIFF_INFO_ICRP</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS" title="GST_RIFF_INFO_IDIM">GST_RIFF_INFO_IDIM</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS" title="GST_RIFF_INFO_IDPI">GST_RIFF_INFO_IDPI</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS" title="GST_RIFF_INFO_IENG">GST_RIFF_INFO_IENG</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS" title="GST_RIFF_INFO_IGNR">GST_RIFF_INFO_IGNR</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS" title="GST_RIFF_INFO_IKEY">GST_RIFF_INFO_IKEY</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS" title="GST_RIFF_INFO_ILGT">GST_RIFF_INFO_ILGT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS" title="GST_RIFF_INFO_IMED">GST_RIFF_INFO_IMED</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS" title="GST_RIFF_INFO_INAM">GST_RIFF_INFO_INAM</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS" title="GST_RIFF_INFO_IPLT">GST_RIFF_INFO_IPLT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS" title="GST_RIFF_INFO_IPRD">GST_RIFF_INFO_IPRD</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS" title="GST_RIFF_INFO_ISBJ">GST_RIFF_INFO_ISBJ</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS" title="GST_RIFF_INFO_ISFT">GST_RIFF_INFO_ISFT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS" title="GST_RIFF_INFO_ISHP">GST_RIFF_INFO_ISHP</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS" title="GST_RIFF_INFO_ISRC">GST_RIFF_INFO_ISRC</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS" title="GST_RIFF_INFO_ISRF">GST_RIFF_INFO_ISRF</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS" title="GST_RIFF_INFO_ITCH">GST_RIFF_INFO_ITCH</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS" title="GST_RIFF_ISBJ">GST_RIFF_ISBJ</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS" title="GST_RIFF_ISFT">GST_RIFF_ISFT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS" title="GST_RIFF_IV31">GST_RIFF_IV31</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS" title="GST_RIFF_IV32">GST_RIFF_IV32</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS" title="GST_RIFF_IV41">GST_RIFF_IV41</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS" title="GST_RIFF_IV50">GST_RIFF_IV50</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS" title="GST_RIFF_IYUV">GST_RIFF_IYUV</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS" title="GST_RIFF_JPEG">GST_RIFF_JPEG</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS" title="GST_RIFF_L263">GST_RIFF_L263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS" title="GST_RIFF_LIST_AVIX">GST_RIFF_LIST_AVIX</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS" title="GST_RIFF_LIST_INFO">GST_RIFF_LIST_INFO</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl" title="GST_RIFF_LIST_adtl">GST_RIFF_LIST_adtl</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl" title="GST_RIFF_LIST_hdrl">GST_RIFF_LIST_hdrl</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi" title="GST_RIFF_LIST_movi">GST_RIFF_LIST_movi</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml" title="GST_RIFF_LIST_odml">GST_RIFF_LIST_odml</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl" title="GST_RIFF_LIST_strl">GST_RIFF_LIST_strl</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS" title="GST_RIFF_M263">GST_RIFF_M263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS" title="GST_RIFF_MJPG">GST_RIFF_MJPG</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS" title="GST_RIFF_MPIX">GST_RIFF_MPIX</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS" title="GST_RIFF_MVI1">GST_RIFF_MVI1</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS" title="GST_RIFF_NONE">GST_RIFF_NONE</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS" title="GST_RIFF_PACK">GST_RIFF_PACK</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS" title="GST_RIFF_Q1_0">GST_RIFF_Q1_0</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS" title="GST_RIFF_RAW">GST_RIFF_RAW</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS" title="GST_RIFF_RGB">GST_RIFF_RGB</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS" title="GST_RIFF_RIFF_AVI">GST_RIFF_RIFF_AVI</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS" title="GST_RIFF_RIFF_CDXA">GST_RIFF_RIFF_CDXA</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS" title="GST_RIFF_RIFF_WAVE">GST_RIFF_RIFF_WAVE</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS" title="GST_RIFF_RLE4">GST_RIFF_RLE4</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS" title="GST_RIFF_RLE8">GST_RIFF_RLE8</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS" title="GST_RIFF_RT21">GST_RIFF_RT21</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS" title="GST_RIFF_SFMC">GST_RIFF_SFMC</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid" title="GST_RIFF_TAG_acid">GST_RIFF_TAG_acid</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS" title="GST_RIFF_TAG_AVF0">GST_RIFF_TAG_AVF0</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS" title="GST_RIFF_TAG_BEXT">GST_RIFF_TAG_BEXT</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS" title="GST_RIFF_TAG_JUNK">GST_RIFF_TAG_JUNK</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS" title="GST_RIFF_TAG_JUNQ">GST_RIFF_TAG_JUNQ</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS" title="GST_RIFF_TAG_LIST">GST_RIFF_TAG_LIST</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS" title="GST_RIFF_TAG_RIFF">GST_RIFF_TAG_RIFF</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS" title="GST_RIFF_TAG_RIFX">GST_RIFF_TAG_RIFX</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih" title="GST_RIFF_TAG_avih">GST_RIFF_TAG_avih</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext" title="GST_RIFF_TAG_bext">GST_RIFF_TAG_bext</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue" title="GST_RIFF_TAG_cue">GST_RIFF_TAG_cue</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data" title="GST_RIFF_TAG_data">GST_RIFF_TAG_data</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh" title="GST_RIFF_TAG_dmlh">GST_RIFF_TAG_dmlh</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact" title="GST_RIFF_TAG_fact">GST_RIFF_TAG_fact</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt" title="GST_RIFF_TAG_fmt">GST_RIFF_TAG_fmt</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1" title="GST_RIFF_TAG_idx1">GST_RIFF_TAG_idx1</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst" title="GST_RIFF_TAG_plst">GST_RIFF_TAG_plst</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd" title="GST_RIFF_TAG_strd">GST_RIFF_TAG_strd</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf" title="GST_RIFF_TAG_strf">GST_RIFF_TAG_strf</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh" title="GST_RIFF_TAG_strh">GST_RIFF_TAG_strh</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn" title="GST_RIFF_TAG_strn">GST_RIFF_TAG_strn</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt" title="GST_RIFF_TAG_vedt">GST_RIFF_TAG_vedt</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS" title="GST_RIFF_TRAN">GST_RIFF_TRAN</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS" title="GST_RIFF_ULTI">GST_RIFF_ULTI</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS" title="GST_RIFF_V422">GST_RIFF_V422</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS" title="GST_RIFF_VDOW">GST_RIFF_VDOW</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS" title="GST_RIFF_VIXL">GST_RIFF_VIXL</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS" title="GST_RIFF_VSSH">GST_RIFF_VSSH</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS" title="GST_RIFF_VYUY">GST_RIFF_VYUY</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS" title="GST_RIFF_WHAM">GST_RIFF_WHAM</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS" title="GST_RIFF_WINX">GST_RIFF_WINX</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS" title="GST_RIFF_WPY2">GST_RIFF_WPY2</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS" title="GST_RIFF_XMPG">GST_RIFF_XMPG</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS" title="GST_RIFF_Y41P">GST_RIFF_Y41P</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS" title="GST_RIFF_YUV8">GST_RIFF_YUV8</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS" title="GST_RIFF_YUV9">GST_RIFF_YUV9</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS" title="GST_RIFF_YUY2">GST_RIFF_YUY2</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS" title="GST_RIFF_YV12">GST_RIFF_YV12</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS" title="GST_RIFF_YVU9">GST_RIFF_YVU9</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr" title="GST_RIFF_azpr">GST_RIFF_azpr</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10" title="GST_RIFF_bw10">GST_RIFF_bw10</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc" title="GST_RIFF_ccc">GST_RIFF_ccc</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram" title="GST_RIFF_cram">GST_RIFF_cram</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid" title="GST_RIFF_cvid">GST_RIFF_cvid</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv" title="GST_RIFF_cyuv">GST_RIFF_cyuv</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1" title="GST_RIFF_dmb1">GST_RIFF_dmb1</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263" title="GST_RIFF_h263">GST_RIFF_h263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263" title="GST_RIFF_i263">GST_RIFF_i263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420" title="GST_RIFF_i420">GST_RIFF_i420</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31" title="GST_RIFF_iv31">GST_RIFF_iv31</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32" title="GST_RIFF_iv32">GST_RIFF_iv32</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41" title="GST_RIFF_iv41">GST_RIFF_iv41</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50" title="GST_RIFF_iv50">GST_RIFF_iv50</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv" title="GST_RIFF_iyuv">GST_RIFF_iyuv</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg" title="GST_RIFF_jpeg">GST_RIFF_jpeg</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263" title="GST_RIFF_m263">GST_RIFF_m263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG" title="GST_RIFF_mJPG">GST_RIFF_mJPG</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1" title="GST_RIFF_mvi1">GST_RIFF_mvi1</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-none" title="GST_RIFF_none">GST_RIFF_none</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack" title="GST_RIFF_pack">GST_RIFF_pack</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec" title="GST_RIFF_rec">GST_RIFF_rec</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb" title="GST_RIFF_rgb">GST_RIFF_rgb</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4" title="GST_RIFF_rle4">GST_RIFF_rle4</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8" title="GST_RIFF_rle8">GST_RIFF_rle8</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza" title="GST_RIFF_rpza">GST_RIFF_rpza</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21" title="GST_RIFF_rt21">GST_RIFF_rt21</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran" title="GST_RIFF_tran">GST_RIFF_tran</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti" title="GST_RIFF_ulti">GST_RIFF_ulti</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422" title="GST_RIFF_v422">GST_RIFF_v422</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl" title="GST_RIFF_vixl">GST_RIFF_vixl</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy" title="GST_RIFF_vyuy">GST_RIFF_vyuy</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham" title="GST_RIFF_wham">GST_RIFF_wham</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263" title="GST_RIFF_x263">GST_RIFF_x263</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg" title="GST_RIFF_xmpg">GST_RIFF_xmpg</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p" title="GST_RIFF_y41p">GST_RIFF_y41p</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2" title="GST_RIFF_yuy2">GST_RIFF_yuy2</a>
-#define             <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12" title="GST_RIFF_yv12">GST_RIFF_yv12</a>
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-acid" title="gst_riff_acid">gst_riff_acid</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> codec_id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a>          (<em class="parameter"><code><span class="type">guint16</span> codec_id</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a>           (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a>  (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a>          (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh" title="gst_riff_dmlh">gst_riff_dmlh</a>;
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry" title="gst_riff_index_entry">gst_riff_index_entry</a>;
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-init" title="gst_riff_init ()">gst_riff_init</a>                       (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *fourcc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *fourcc</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *doctype</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *doctype</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info" title="gst_riff_parse_info ()">gst_riff_parse_info</a>                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a>                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk" title="gst_riff_read_chunk ()">gst_riff_read_chunk</a>                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *tag</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds">gst_riff_strf_auds</a>;
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs">gst_riff_strf_iavs</a>;
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids">gst_riff_strf_vids</a>;
-                    <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh">gst_riff_strh</a>;
 </pre>
 </div>
 <div class="refsect1">
@@ -294,1140 +105,10 @@ asf.
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstriff.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GST-RIFF-00:CAPS"></a><h3>GST_RIFF_00</h3>
-<pre class="programlisting">#define GST_RIFF_00   GST_MAKE_FOURCC ('0', '0',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-0021:CAPS"></a><h3>GST_RIFF_0021</h3>
-<pre class="programlisting">#define GST_RIFF_0021 GST_MAKE_FOURCC ('0', '0', '2', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-0031:CAPS"></a><h3>GST_RIFF_0031</h3>
-<pre class="programlisting">#define GST_RIFF_0031 GST_MAKE_FOURCC ('0', '0', '3', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-0032:CAPS"></a><h3>GST_RIFF_0032</h3>
-<pre class="programlisting">#define GST_RIFF_0032 GST_MAKE_FOURCC ('0', '0', '3', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00AM:CAPS"></a><h3>GST_RIFF_00AM</h3>
-<pre class="programlisting">#define GST_RIFF_00AM GST_MAKE_FOURCC ('0', '0', 'A', 'M')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00--:CAPS"></a><h3>GST_RIFF_00__</h3>
-<pre class="programlisting">#define GST_RIFF_00__ GST_MAKE_FOURCC ('0', '0', '_', '_')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00db"></a><h3>GST_RIFF_00db</h3>
-<pre class="programlisting">#define GST_RIFF_00db GST_MAKE_FOURCC ('0', '0', 'd', 'b')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00dc"></a><h3>GST_RIFF_00dc</h3>
-<pre class="programlisting">#define GST_RIFF_00dc GST_MAKE_FOURCC ('0', '0', 'd', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00dx"></a><h3>GST_RIFF_00dx</h3>
-<pre class="programlisting">#define GST_RIFF_00dx GST_MAKE_FOURCC ('0', '0', 'd', 'x')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00id"></a><h3>GST_RIFF_00id</h3>
-<pre class="programlisting">#define GST_RIFF_00id GST_MAKE_FOURCC ('0', '0', 'i', 'd')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00iv"></a><h3>GST_RIFF_00iv</h3>
-<pre class="programlisting">#define GST_RIFF_00iv GST_MAKE_FOURCC ('0', '0', 'i', 'v')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00pc"></a><h3>GST_RIFF_00pc</h3>
-<pre class="programlisting">#define GST_RIFF_00pc GST_MAKE_FOURCC ('0', '0', 'p', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00rt"></a><h3>GST_RIFF_00rt</h3>
-<pre class="programlisting">#define GST_RIFF_00rt GST_MAKE_FOURCC ('0', '0', 'r', 't')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00vc"></a><h3>GST_RIFF_00vc</h3>
-<pre class="programlisting">#define GST_RIFF_00vc GST_MAKE_FOURCC ('0', '0', 'v', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00xm"></a><h3>GST_RIFF_00xm</h3>
-<pre class="programlisting">#define GST_RIFF_00xm GST_MAKE_FOURCC ('0', '0', 'x', 'm')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00xx"></a><h3>GST_RIFF_00xx</h3>
-<pre class="programlisting">#define GST_RIFF_00xx GST_MAKE_FOURCC ('0', '0', 'x', 'x')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01:CAPS"></a><h3>GST_RIFF_01</h3>
-<pre class="programlisting">#define GST_RIFF_01   GST_MAKE_FOURCC ('0', '1',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01dc"></a><h3>GST_RIFF_01dc</h3>
-<pre class="programlisting">#define GST_RIFF_01dc GST_MAKE_FOURCC ('0', '1', 'd', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01pc"></a><h3>GST_RIFF_01pc</h3>
-<pre class="programlisting">#define GST_RIFF_01pc GST_MAKE_FOURCC ('0', '1', 'p', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01wb"></a><h3>GST_RIFF_01wb</h3>
-<pre class="programlisting">#define GST_RIFF_01wb GST_MAKE_FOURCC ('0', '1', 'w', 'b')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-02:CAPS"></a><h3>GST_RIFF_02</h3>
-<pre class="programlisting">#define GST_RIFF_02   GST_MAKE_FOURCC ('0', '2',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-03:CAPS"></a><h3>GST_RIFF_03</h3>
-<pre class="programlisting">#define GST_RIFF_03   GST_MAKE_FOURCC ('0', '3',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-04:CAPS"></a><h3>GST_RIFF_04</h3>
-<pre class="programlisting">#define GST_RIFF_04   GST_MAKE_FOURCC ('0', '4',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-05:CAPS"></a><h3>GST_RIFF_05</h3>
-<pre class="programlisting">#define GST_RIFF_05   GST_MAKE_FOURCC ('0', '5',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-06:CAPS"></a><h3>GST_RIFF_06</h3>
-<pre class="programlisting">#define GST_RIFF_06   GST_MAKE_FOURCC ('0', '6',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-07:CAPS"></a><h3>GST_RIFF_07</h3>
-<pre class="programlisting">#define GST_RIFF_07   GST_MAKE_FOURCC ('0', '7',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-AURA:CAPS"></a><h3>GST_RIFF_AURA</h3>
-<pre class="programlisting">#define GST_RIFF_AURA GST_MAKE_FOURCC ('A', 'U', 'R', 'A')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-BW10:CAPS"></a><h3>GST_RIFF_BW10</h3>
-<pre class="programlisting">#define GST_RIFF_BW10 GST_MAKE_FOURCC ('B', 'W', '1', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CCC:CAPS"></a><h3>GST_RIFF_CCC</h3>
-<pre class="programlisting">#define GST_RIFF_CCC  GST_MAKE_FOURCC ('C', 'C', 'C', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CRAM:CAPS"></a><h3>GST_RIFF_CRAM</h3>
-<pre class="programlisting">#define GST_RIFF_CRAM GST_MAKE_FOURCC ('C', 'R', 'A', 'M')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CVID:CAPS"></a><h3>GST_RIFF_CVID</h3>
-<pre class="programlisting">#define GST_RIFF_CVID GST_MAKE_FOURCC ('C', 'V', 'I', 'D')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CYUV:CAPS"></a><h3>GST_RIFF_CYUV</h3>
-<pre class="programlisting">#define GST_RIFF_CYUV GST_MAKE_FOURCC ('C', 'Y', 'U', 'V')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DIB:CAPS"></a><h3>GST_RIFF_DIB</h3>
-<pre class="programlisting">#define GST_RIFF_DIB  GST_MAKE_FOURCC ('D', 'I', 'B', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DISP:CAPS"></a><h3>GST_RIFF_DISP</h3>
-<pre class="programlisting">#define GST_RIFF_DISP GST_MAKE_FOURCC ('D', 'I', 'S', 'P')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DIV3:CAPS"></a><h3>GST_RIFF_DIV3</h3>
-<pre class="programlisting">#define GST_RIFF_DIV3 GST_MAKE_FOURCC ('D', 'I', 'V', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DMB1:CAPS"></a><h3>GST_RIFF_DMB1</h3>
-<pre class="programlisting">#define GST_RIFF_DMB1 GST_MAKE_FOURCC ('D', 'M', 'B', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCCH-MSVC:CAPS"></a><h3>GST_RIFF_FCCH_MSVC</h3>
-<pre class="programlisting">#define GST_RIFF_FCCH_MSVC GST_MAKE_FOURCC ('M','S','V','C')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCCH-RLE:CAPS"></a><h3>GST_RIFF_FCCH_RLE</h3>
-<pre class="programlisting">#define GST_RIFF_FCCH_RLE  GST_MAKE_FOURCC ('R','L','E',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCCH-msvc"></a><h3>GST_RIFF_FCCH_msvc</h3>
-<pre class="programlisting">#define GST_RIFF_FCCH_msvc GST_MAKE_FOURCC ('m','s','v','c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-auds"></a><h3>GST_RIFF_FCC_auds</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_auds GST_MAKE_FOURCC ('a','u','d','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-iavs"></a><h3>GST_RIFF_FCC_iavs</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_iavs GST_MAKE_FOURCC ('i','a','v','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-pads"></a><h3>GST_RIFF_FCC_pads</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_pads GST_MAKE_FOURCC ('p','a','d','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-txts"></a><h3>GST_RIFF_FCC_txts</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_txts GST_MAKE_FOURCC ('t','x','t','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-vidc"></a><h3>GST_RIFF_FCC_vidc</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_vidc GST_MAKE_FOURCC ('v','i','d','c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-vids"></a><h3>GST_RIFF_FCC_vids</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_vids GST_MAKE_FOURCC ('v','i','d','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FF00:CAPS"></a><h3>GST_RIFF_FF00</h3>
-<pre class="programlisting">#define GST_RIFF_FF00 GST_MAKE_FOURCC (0xFF,0xFF,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-H263:CAPS"></a><h3>GST_RIFF_H263</h3>
-<pre class="programlisting">#define GST_RIFF_H263 GST_MAKE_FOURCC ('H', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-I420:CAPS"></a><h3>GST_RIFF_I420</h3>
-<pre class="programlisting">#define GST_RIFF_I420 GST_MAKE_FOURCC ('I', '4', '2', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IDIT:CAPS"></a><h3>GST_RIFF_IDIT</h3>
-<pre class="programlisting">#define GST_RIFF_IDIT GST_MAKE_FOURCC ('I', 'D', 'I', 'T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IJPG:CAPS"></a><h3>GST_RIFF_IJPG</h3>
-<pre class="programlisting">#define GST_RIFF_IJPG GST_MAKE_FOURCC ('I', 'J', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IARL:CAPS"></a><h3>GST_RIFF_INFO_IARL</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IARL GST_MAKE_FOURCC ('I','A','R','L') /* location */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IART:CAPS"></a><h3>GST_RIFF_INFO_IART</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IART GST_MAKE_FOURCC ('I','A','R','T') /* artist */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICMS:CAPS"></a><h3>GST_RIFF_INFO_ICMS</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICMS GST_MAKE_FOURCC ('I','C','M','S') /* commissioned */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICMT:CAPS"></a><h3>GST_RIFF_INFO_ICMT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICMT GST_MAKE_FOURCC ('I','C','M','T') /* comment */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICOP:CAPS"></a><h3>GST_RIFF_INFO_ICOP</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICOP GST_MAKE_FOURCC ('I','C','O','P') /* copyright */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICRD:CAPS"></a><h3>GST_RIFF_INFO_ICRD</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICRD GST_MAKE_FOURCC ('I','C','R','D') /* creation date */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICRP:CAPS"></a><h3>GST_RIFF_INFO_ICRP</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICRP GST_MAKE_FOURCC ('I','C','R','P') /* cropped */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IDIM:CAPS"></a><h3>GST_RIFF_INFO_IDIM</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IDIM GST_MAKE_FOURCC ('I','D','I','M') /* dimensions */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IDPI:CAPS"></a><h3>GST_RIFF_INFO_IDPI</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IDPI GST_MAKE_FOURCC ('I','D','P','I') /* dots-per-inch */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IENG:CAPS"></a><h3>GST_RIFF_INFO_IENG</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IENG GST_MAKE_FOURCC ('I','E','N','G') /* engineer(s) */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IGNR:CAPS"></a><h3>GST_RIFF_INFO_IGNR</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IGNR GST_MAKE_FOURCC ('I','G','N','R') /* genre */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IKEY:CAPS"></a><h3>GST_RIFF_INFO_IKEY</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IKEY GST_MAKE_FOURCC ('I','K','E','Y') /* keywords */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ILGT:CAPS"></a><h3>GST_RIFF_INFO_ILGT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ILGT GST_MAKE_FOURCC ('I','L','G','T') /* lightness */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IMED:CAPS"></a><h3>GST_RIFF_INFO_IMED</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IMED GST_MAKE_FOURCC ('I','M','E','D') /* medium */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-INAM:CAPS"></a><h3>GST_RIFF_INFO_INAM</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_INAM GST_MAKE_FOURCC ('I','N','A','M') /* name */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IPLT:CAPS"></a><h3>GST_RIFF_INFO_IPLT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IPLT GST_MAKE_FOURCC ('I','P','L','T') /* palette setting */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IPRD:CAPS"></a><h3>GST_RIFF_INFO_IPRD</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IPRD GST_MAKE_FOURCC ('I','P','R','D') /* product */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISBJ:CAPS"></a><h3>GST_RIFF_INFO_ISBJ</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISBJ GST_MAKE_FOURCC ('I','S','B','J') /* subject */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISFT:CAPS"></a><h3>GST_RIFF_INFO_ISFT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISFT GST_MAKE_FOURCC ('I','S','F','T') /* software */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISHP:CAPS"></a><h3>GST_RIFF_INFO_ISHP</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISHP GST_MAKE_FOURCC ('I','S','H','P') /* sharpness */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISRC:CAPS"></a><h3>GST_RIFF_INFO_ISRC</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISRC GST_MAKE_FOURCC ('I','S','R','C') /* source */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISRF:CAPS"></a><h3>GST_RIFF_INFO_ISRF</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISRF GST_MAKE_FOURCC ('I','S','R','F') /* source form */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ITCH:CAPS"></a><h3>GST_RIFF_INFO_ITCH</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ITCH GST_MAKE_FOURCC ('I','T','C','H') /* technician(s) */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ISBJ:CAPS"></a><h3>GST_RIFF_ISBJ</h3>
-<pre class="programlisting">#define GST_RIFF_ISBJ GST_MAKE_FOURCC ('I', 'S', 'B', 'J')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ISFT:CAPS"></a><h3>GST_RIFF_ISFT</h3>
-<pre class="programlisting">#define GST_RIFF_ISFT GST_MAKE_FOURCC ('I', 'S', 'F', 'T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV31:CAPS"></a><h3>GST_RIFF_IV31</h3>
-<pre class="programlisting">#define GST_RIFF_IV31 GST_MAKE_FOURCC ('I', 'V', '3', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV32:CAPS"></a><h3>GST_RIFF_IV32</h3>
-<pre class="programlisting">#define GST_RIFF_IV32 GST_MAKE_FOURCC ('I', 'V', '3', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV41:CAPS"></a><h3>GST_RIFF_IV41</h3>
-<pre class="programlisting">#define GST_RIFF_IV41 GST_MAKE_FOURCC ('I', 'V', '4', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV50:CAPS"></a><h3>GST_RIFF_IV50</h3>
-<pre class="programlisting">#define GST_RIFF_IV50 GST_MAKE_FOURCC ('I', 'V', '5', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IYUV:CAPS"></a><h3>GST_RIFF_IYUV</h3>
-<pre class="programlisting">#define GST_RIFF_IYUV GST_MAKE_FOURCC ('I', 'Y', 'U', 'V')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-JPEG:CAPS"></a><h3>GST_RIFF_JPEG</h3>
-<pre class="programlisting">#define GST_RIFF_JPEG GST_MAKE_FOURCC ('J', 'P', 'E', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-L263:CAPS"></a><h3>GST_RIFF_L263</h3>
-<pre class="programlisting">#define GST_RIFF_L263 GST_MAKE_FOURCC ('L', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-AVIX:CAPS"></a><h3>GST_RIFF_LIST_AVIX</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_AVIX GST_MAKE_FOURCC ('A','V','I','X')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-INFO:CAPS"></a><h3>GST_RIFF_LIST_INFO</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_INFO GST_MAKE_FOURCC ('I','N','F','O')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-adtl"></a><h3>GST_RIFF_LIST_adtl</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_adtl GST_MAKE_FOURCC ('a','d','t','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-hdrl"></a><h3>GST_RIFF_LIST_hdrl</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_hdrl GST_MAKE_FOURCC ('h','d','r','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-movi"></a><h3>GST_RIFF_LIST_movi</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_movi GST_MAKE_FOURCC ('m','o','v','i')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-odml"></a><h3>GST_RIFF_LIST_odml</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_odml GST_MAKE_FOURCC ('o','d','m','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-strl"></a><h3>GST_RIFF_LIST_strl</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_strl GST_MAKE_FOURCC ('s','t','r','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-M263:CAPS"></a><h3>GST_RIFF_M263</h3>
-<pre class="programlisting">#define GST_RIFF_M263 GST_MAKE_FOURCC ('M', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-MJPG:CAPS"></a><h3>GST_RIFF_MJPG</h3>
-<pre class="programlisting">#define GST_RIFF_MJPG GST_MAKE_FOURCC ('M', 'J', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-MPIX:CAPS"></a><h3>GST_RIFF_MPIX</h3>
-<pre class="programlisting">#define GST_RIFF_MPIX GST_MAKE_FOURCC (0x04,0x00, 'i', '1')     /* MotionPixels munged their id */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-MVI1:CAPS"></a><h3>GST_RIFF_MVI1</h3>
-<pre class="programlisting">#define GST_RIFF_MVI1 GST_MAKE_FOURCC ('M', 'V', 'I', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-NONE:CAPS"></a><h3>GST_RIFF_NONE</h3>
-<pre class="programlisting">#define GST_RIFF_NONE GST_MAKE_FOURCC ('N', 'O', 'N', 'E')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-PACK:CAPS"></a><h3>GST_RIFF_PACK</h3>
-<pre class="programlisting">#define GST_RIFF_PACK GST_MAKE_FOURCC ('P', 'A', 'C', 'K')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-Q1-0:CAPS"></a><h3>GST_RIFF_Q1_0</h3>
-<pre class="programlisting">#define GST_RIFF_Q1_0 GST_MAKE_FOURCC ('Q', '1',0x2e, '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RAW:CAPS"></a><h3>GST_RIFF_RAW</h3>
-<pre class="programlisting">#define GST_RIFF_RAW  GST_MAKE_FOURCC ('R', 'A', 'W', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RGB:CAPS"></a><h3>GST_RIFF_RGB</h3>
-<pre class="programlisting">#define GST_RIFF_RGB  GST_MAKE_FOURCC ('R', 'G', 'B', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RIFF-AVI:CAPS"></a><h3>GST_RIFF_RIFF_AVI</h3>
-<pre class="programlisting">#define GST_RIFF_RIFF_AVI  GST_MAKE_FOURCC ('A','V','I',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RIFF-CDXA:CAPS"></a><h3>GST_RIFF_RIFF_CDXA</h3>
-<pre class="programlisting">#define GST_RIFF_RIFF_CDXA GST_MAKE_FOURCC ('C','D','X','A')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RIFF-WAVE:CAPS"></a><h3>GST_RIFF_RIFF_WAVE</h3>
-<pre class="programlisting">#define GST_RIFF_RIFF_WAVE GST_MAKE_FOURCC ('W','A','V','E')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RLE4:CAPS"></a><h3>GST_RIFF_RLE4</h3>
-<pre class="programlisting">#define GST_RIFF_RLE4 GST_MAKE_FOURCC ('R', 'L', 'E', '4')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RLE8:CAPS"></a><h3>GST_RIFF_RLE8</h3>
-<pre class="programlisting">#define GST_RIFF_RLE8 GST_MAKE_FOURCC ('R', 'L', 'E', '8')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RT21:CAPS"></a><h3>GST_RIFF_RT21</h3>
-<pre class="programlisting">#define GST_RIFF_RT21 GST_MAKE_FOURCC ('R', 'T', '2', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-SFMC:CAPS"></a><h3>GST_RIFF_SFMC</h3>
-<pre class="programlisting">#define GST_RIFF_SFMC GST_MAKE_FOURCC ('S', 'F', 'M', 'C')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-acid"></a><h3>GST_RIFF_TAG_acid</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_acid GST_MAKE_FOURCC ('a','c','i','d')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-AVF0:CAPS"></a><h3>GST_RIFF_TAG_AVF0</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_AVF0 GST_MAKE_FOURCC ('A','V','F','0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-BEXT:CAPS"></a><h3>GST_RIFF_TAG_BEXT</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_BEXT GST_MAKE_FOURCC ('B','E','X','T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-JUNK:CAPS"></a><h3>GST_RIFF_TAG_JUNK</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_JUNK GST_MAKE_FOURCC ('J','U','N','K')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-JUNQ:CAPS"></a><h3>GST_RIFF_TAG_JUNQ</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_JUNQ GST_MAKE_FOURCC ('J','U','N','Q')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-LIST:CAPS"></a><h3>GST_RIFF_TAG_LIST</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_LIST GST_MAKE_FOURCC ('L','I','S','T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-RIFF:CAPS"></a><h3>GST_RIFF_TAG_RIFF</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_RIFF GST_MAKE_FOURCC ('R','I','F','F')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-RIFX:CAPS"></a><h3>GST_RIFF_TAG_RIFX</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_RIFX GST_MAKE_FOURCC ('R','I','F','X')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-avih"></a><h3>GST_RIFF_TAG_avih</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_avih GST_MAKE_FOURCC ('a','v','i','h')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-bext"></a><h3>GST_RIFF_TAG_bext</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_bext GST_MAKE_FOURCC ('b','e','x','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-cue"></a><h3>GST_RIFF_TAG_cue</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_cue  GST_MAKE_FOURCC ('c','u','e',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-data"></a><h3>GST_RIFF_TAG_data</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_data GST_MAKE_FOURCC ('d','a','t','a')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-dmlh"></a><h3>GST_RIFF_TAG_dmlh</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_dmlh GST_MAKE_FOURCC ('d','m','l','h')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-fact"></a><h3>GST_RIFF_TAG_fact</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_fact GST_MAKE_FOURCC ('f','a','c','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-fmt"></a><h3>GST_RIFF_TAG_fmt</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_fmt  GST_MAKE_FOURCC ('f','m','t',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-idx1"></a><h3>GST_RIFF_TAG_idx1</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_idx1 GST_MAKE_FOURCC ('i','d','x','1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-plst"></a><h3>GST_RIFF_TAG_plst</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_plst GST_MAKE_FOURCC ('p','l','s','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strd"></a><h3>GST_RIFF_TAG_strd</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strd GST_MAKE_FOURCC ('s','t','r','d')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strf"></a><h3>GST_RIFF_TAG_strf</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strf GST_MAKE_FOURCC ('s','t','r','f')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strh"></a><h3>GST_RIFF_TAG_strh</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strh GST_MAKE_FOURCC ('s','t','r','h')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strn"></a><h3>GST_RIFF_TAG_strn</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strn GST_MAKE_FOURCC ('s','t','r','n')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-vedt"></a><h3>GST_RIFF_TAG_vedt</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_vedt GST_MAKE_FOURCC ('v','e','d','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TRAN:CAPS"></a><h3>GST_RIFF_TRAN</h3>
-<pre class="programlisting">#define GST_RIFF_TRAN GST_MAKE_FOURCC ('T', 'R', 'A', 'N')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ULTI:CAPS"></a><h3>GST_RIFF_ULTI</h3>
-<pre class="programlisting">#define GST_RIFF_ULTI GST_MAKE_FOURCC ('U', 'L', 'T', 'I')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-V422:CAPS"></a><h3>GST_RIFF_V422</h3>
-<pre class="programlisting">#define GST_RIFF_V422 GST_MAKE_FOURCC ('V', '4', '2', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VDOW:CAPS"></a><h3>GST_RIFF_VDOW</h3>
-<pre class="programlisting">#define GST_RIFF_VDOW GST_MAKE_FOURCC ('V', 'D', 'O', 'W')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VIXL:CAPS"></a><h3>GST_RIFF_VIXL</h3>
-<pre class="programlisting">#define GST_RIFF_VIXL GST_MAKE_FOURCC ('V', 'I', 'X', 'L')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VSSH:CAPS"></a><h3>GST_RIFF_VSSH</h3>
-<pre class="programlisting">#define GST_RIFF_VSSH GST_MAKE_FOURCC ( 'V', 'S', 'S', 'H') /* H2.64 */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VYUY:CAPS"></a><h3>GST_RIFF_VYUY</h3>
-<pre class="programlisting">#define GST_RIFF_VYUY GST_MAKE_FOURCC ('V', 'Y', 'U', 'Y')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-WHAM:CAPS"></a><h3>GST_RIFF_WHAM</h3>
-<pre class="programlisting">#define GST_RIFF_WHAM GST_MAKE_FOURCC ('W', 'H', 'A', 'M')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-WINX:CAPS"></a><h3>GST_RIFF_WINX</h3>
-<pre class="programlisting">#define GST_RIFF_WINX GST_MAKE_FOURCC ('W', 'I', 'N', 'X')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-WPY2:CAPS"></a><h3>GST_RIFF_WPY2</h3>
-<pre class="programlisting">#define GST_RIFF_WPY2 GST_MAKE_FOURCC ('W', 'P', 'Y', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-XMPG:CAPS"></a><h3>GST_RIFF_XMPG</h3>
-<pre class="programlisting">#define GST_RIFF_XMPG GST_MAKE_FOURCC ('X', 'M', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-Y41P:CAPS"></a><h3>GST_RIFF_Y41P</h3>
-<pre class="programlisting">#define GST_RIFF_Y41P GST_MAKE_FOURCC ('Y', '4', '1', 'P')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YUV8:CAPS"></a><h3>GST_RIFF_YUV8</h3>
-<pre class="programlisting">#define GST_RIFF_YUV8 GST_MAKE_FOURCC ('Y', 'U', 'V', '8')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YUV9:CAPS"></a><h3>GST_RIFF_YUV9</h3>
-<pre class="programlisting">#define GST_RIFF_YUV9 GST_MAKE_FOURCC ('Y', 'V', 'U', '9')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YUY2:CAPS"></a><h3>GST_RIFF_YUY2</h3>
-<pre class="programlisting">#define GST_RIFF_YUY2 GST_MAKE_FOURCC ('Y', 'U', 'Y', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YV12:CAPS"></a><h3>GST_RIFF_YV12</h3>
-<pre class="programlisting">#define GST_RIFF_YV12 GST_MAKE_FOURCC ('Y', 'V', '1', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YVU9:CAPS"></a><h3>GST_RIFF_YVU9</h3>
-<pre class="programlisting">#define GST_RIFF_YVU9 GST_MAKE_FOURCC ('Y', 'U', 'V', '9')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-azpr"></a><h3>GST_RIFF_azpr</h3>
-<pre class="programlisting">#define GST_RIFF_azpr GST_MAKE_FOURCC ('a', 'z', 'p', 'r')  /* recognize Apple's rpza mangled? */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-bw10"></a><h3>GST_RIFF_bw10</h3>
-<pre class="programlisting">#define GST_RIFF_bw10 GST_MAKE_FOURCC ('b', 'w', '1', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ccc"></a><h3>GST_RIFF_ccc</h3>
-<pre class="programlisting">#define GST_RIFF_ccc  GST_MAKE_FOURCC (0x03,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-cram"></a><h3>GST_RIFF_cram</h3>
-<pre class="programlisting">#define GST_RIFF_cram GST_MAKE_FOURCC ('c', 'r', 'a', 'm')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-cvid"></a><h3>GST_RIFF_cvid</h3>
-<pre class="programlisting">#define GST_RIFF_cvid GST_MAKE_FOURCC ('c', 'v', 'i', 'd')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-cyuv"></a><h3>GST_RIFF_cyuv</h3>
-<pre class="programlisting">#define GST_RIFF_cyuv GST_MAKE_FOURCC ('c', 'y', 'u', 'v')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-dmb1"></a><h3>GST_RIFF_dmb1</h3>
-<pre class="programlisting">#define GST_RIFF_dmb1 GST_MAKE_FOURCC ('d', 'm', 'b', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-h263"></a><h3>GST_RIFF_h263</h3>
-<pre class="programlisting">#define GST_RIFF_h263 GST_MAKE_FOURCC ('h', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-i263"></a><h3>GST_RIFF_i263</h3>
-<pre class="programlisting">#define GST_RIFF_i263 GST_MAKE_FOURCC ('i', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-i420"></a><h3>GST_RIFF_i420</h3>
-<pre class="programlisting">#define GST_RIFF_i420 GST_MAKE_FOURCC ('i', '4', '2', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv31"></a><h3>GST_RIFF_iv31</h3>
-<pre class="programlisting">#define GST_RIFF_iv31 GST_MAKE_FOURCC ('i', 'v', '3', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv32"></a><h3>GST_RIFF_iv32</h3>
-<pre class="programlisting">#define GST_RIFF_iv32 GST_MAKE_FOURCC ('i', 'v', '3', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv41"></a><h3>GST_RIFF_iv41</h3>
-<pre class="programlisting">#define GST_RIFF_iv41 GST_MAKE_FOURCC ('i', 'v', '4', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv50"></a><h3>GST_RIFF_iv50</h3>
-<pre class="programlisting">#define GST_RIFF_iv50 GST_MAKE_FOURCC ('i', 'v', '5', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iyuv"></a><h3>GST_RIFF_iyuv</h3>
-<pre class="programlisting">#define GST_RIFF_iyuv GST_MAKE_FOURCC ('i', 'y', 'u', 'v')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-jpeg"></a><h3>GST_RIFF_jpeg</h3>
-<pre class="programlisting">#define GST_RIFF_jpeg GST_MAKE_FOURCC (0x04,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-m263"></a><h3>GST_RIFF_m263</h3>
-<pre class="programlisting">#define GST_RIFF_m263 GST_MAKE_FOURCC ('m', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-mJPG"></a><h3>GST_RIFF_mJPG</h3>
-<pre class="programlisting">#define GST_RIFF_mJPG GST_MAKE_FOURCC ('m', 'J', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-mvi1"></a><h3>GST_RIFF_mvi1</h3>
-<pre class="programlisting">#define GST_RIFF_mvi1 GST_MAKE_FOURCC ('m', 'v', 'i', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-none"></a><h3>GST_RIFF_none</h3>
-<pre class="programlisting">#define GST_RIFF_none GST_MAKE_FOURCC (0x00,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-pack"></a><h3>GST_RIFF_pack</h3>
-<pre class="programlisting">#define GST_RIFF_pack GST_MAKE_FOURCC (0x01,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rec"></a><h3>GST_RIFF_rec</h3>
-<pre class="programlisting">#define GST_RIFF_rec  GST_MAKE_FOURCC ('r', 'e', 'c', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rgb"></a><h3>GST_RIFF_rgb</h3>
-<pre class="programlisting">#define GST_RIFF_rgb  GST_MAKE_FOURCC (0x00,0x00,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rle4"></a><h3>GST_RIFF_rle4</h3>
-<pre class="programlisting">#define GST_RIFF_rle4 GST_MAKE_FOURCC (0x02,0x00,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rle8"></a><h3>GST_RIFF_rle8</h3>
-<pre class="programlisting">#define GST_RIFF_rle8 GST_MAKE_FOURCC (0x01,0x00,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rpza"></a><h3>GST_RIFF_rpza</h3>
-<pre class="programlisting">#define GST_RIFF_rpza GST_MAKE_FOURCC ('r', 'p', 'z', 'a')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rt21"></a><h3>GST_RIFF_rt21</h3>
-<pre class="programlisting">#define GST_RIFF_rt21 GST_MAKE_FOURCC ('r', 't', '2', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-tran"></a><h3>GST_RIFF_tran</h3>
-<pre class="programlisting">#define GST_RIFF_tran GST_MAKE_FOURCC (0x02,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ulti"></a><h3>GST_RIFF_ulti</h3>
-<pre class="programlisting">#define GST_RIFF_ulti GST_MAKE_FOURCC ('u', 'l', 't', 'i')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-v422"></a><h3>GST_RIFF_v422</h3>
-<pre class="programlisting">#define GST_RIFF_v422 GST_MAKE_FOURCC ('v', '4', '2', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-vixl"></a><h3>GST_RIFF_vixl</h3>
-<pre class="programlisting">#define GST_RIFF_vixl GST_MAKE_FOURCC ('v', 'i', 'x', 'l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-vyuy"></a><h3>GST_RIFF_vyuy</h3>
-<pre class="programlisting">#define GST_RIFF_vyuy GST_MAKE_FOURCC ('v', 'y', 'u', 'y')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-wham"></a><h3>GST_RIFF_wham</h3>
-<pre class="programlisting">#define GST_RIFF_wham GST_MAKE_FOURCC ('w', 'h', 'a', 'm')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-x263"></a><h3>GST_RIFF_x263</h3>
-<pre class="programlisting">#define GST_RIFF_x263 GST_MAKE_FOURCC ('x', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-xmpg"></a><h3>GST_RIFF_xmpg</h3>
-<pre class="programlisting">#define GST_RIFF_xmpg GST_MAKE_FOURCC ('x', 'm', 'p', 'g')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-y41p"></a><h3>GST_RIFF_y41p</h3>
-<pre class="programlisting">#define GST_RIFF_y41p GST_MAKE_FOURCC ('y', '4', '1', 'p')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-yuy2"></a><h3>GST_RIFF_yuy2</h3>
-<pre class="programlisting">#define GST_RIFF_yuy2 GST_MAKE_FOURCC ('y', 'u', 'y', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-yv12"></a><h3>GST_RIFF_yv12</h3>
-<pre class="programlisting">#define GST_RIFF_yv12 GST_MAKE_FOURCC ('y', 'v', '1', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-acid"></a><h3>gst_riff_acid</h3>
-<pre class="programlisting">typedef struct {
-  /* 4 bytes (int)     type of file:
-   *  this appears to be a bit mask,however some combinations
-   *  are probably impossible and/or qualified as "errors"
-   *
-   *  0x01 On: One Shot         Off: Loop
-   *  0x02 On: Root note is Set Off: No root
-   *  0x04 On: Stretch is On,   Off: Strech is OFF
-   *  0x08 On: Disk Based       Off: Ram based
-   *  0x10 On: ??????????       Off: ????????? (Acidizer puts that ON)
-   */
-  guint32 loop_type;
-  /* 2 bytes (short)      root note
-   *  if type 0x10 is OFF : [C,C#,(...),B] -&gt; [0x30 to 0x3B]
-   *  if type 0x10 is ON  : [C,C#,(...),B] -&gt; [0x3C to 0x47]
-   *  (both types fit on same MIDI pitch albeit different octaves, so who cares)
-   */
-  guint16 root_note;
-  /* 2 bytes (short)      ??? always set to 0x8000
-   * 4 bytes (float)      ??? seems to be always 0
-   */
-  guint16 unknown1;
-  gfloat unknown2;
-  /* 4 bytes (int)        number of beats
-   * 2 bytes (short)      meter denominator   //always 4 in SF/ACID
-   * 2 bytes (short)      meter numerator     //always 4 in SF/ACID
-   *                      //are we sure about the order?? usually its num/denom
-   * 4 bytes (float)      tempo
-   */
-  guint32 number_of_beats;
-  guint16 meter_d, meter_n;
-  gfloat tempo;
-} gst_riff_acid;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-riff-create-audio-caps"></a><h3>gst_riff_create_audio_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_riff_create_audio_caps          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> codec_id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_riff_create_audio_caps          (<em class="parameter"><code><span class="type">guint16</span> codec_id</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
@@ -1440,9 +121,9 @@ asf.
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-iavs-caps"></a><h3>gst_riff_create_iavs_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_riff_create_iavs_caps           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_riff_create_iavs_caps           (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
@@ -1455,9 +136,9 @@ asf.
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-video-caps"></a><h3>gst_riff_create_video_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_riff_create_video_caps          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_riff_create_video_caps          (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
@@ -1502,29 +183,6 @@ chunk. Usually codec initialization data.</td>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-riff-dmlh"></a><h3>gst_riff_dmlh</h3>
-<pre class="programlisting">typedef struct {
-  guint32 totalframes;
-} gst_riff_dmlh;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-index-entry"></a><h3>gst_riff_index_entry</h3>
-<pre class="programlisting">typedef struct {
-  guint32 id;
-  guint32 flags;
-#define GST_RIFF_IF_LIST                (0x00000001L)
-#define GST_RIFF_IF_KEYFRAME            (0x00000010L)
-#define GST_RIFF_IF_NO_TIME             (0x00000100L)
-#define GST_RIFF_IF_COMPUSE             (0x0FFF0000L)
-  guint32 offset;
-  guint32 size;
-} gst_riff_index_entry;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-riff-init"></a><h3>gst_riff_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_riff_init                       (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
@@ -1537,7 +195,7 @@ Initialize riff library.
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_riff_parse_chunk                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *fourcc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *fourcc</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
 <p>
 Reads a single chunk.
@@ -1579,7 +237,7 @@ chunk data, which may be NULL if chunksize == 0</td>
 <a name="gst-riff-parse-file-header"></a><h3>gst_riff_parse_file_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_riff_parse_file_header          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *doctype</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *doctype</code></em>);</pre>
 <p>
 Reads the first few bytes from the provided buffer, checks
 if this stream is a RIFF stream, and determines document type.
@@ -1646,7 +304,7 @@ NULL if no supported tags were found.</td>
 <a name="gst-riff-parse-strf-auds"></a><h3>gst_riff_parse_strf_auds ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_riff_parse_strf_auds            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
 <p>
 Parses an audio stream´s strf structure plus optionally some
@@ -1688,11 +346,11 @@ should be skipped on error, but it is not fatal.</td>
 <a name="gst-riff-parse-strf-iavs"></a><h3>gst_riff_parse_strf_iavs ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_riff_parse_strf_iavs            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
 <p>
 Parses a interleaved (also known as "complex")  stream´s strf
-structure plus optionally some extradata from input data. This 
+structure plus optionally some extradata from input data. This
 function takes ownership of <em class="parameter"><code>buf</code></em>.
 </p>
 <div class="variablelist"><table border="0">
@@ -1729,7 +387,7 @@ codec initialization data).</td>
 <a name="gst-riff-parse-strf-vids"></a><h3>gst_riff_parse_strf_vids ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_riff_parse_strf_vids            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
 <p>
 Parses a video stream´s strf structure plus optionally some
@@ -1770,7 +428,7 @@ should be skipped on error, but it is not fatal.</td>
 <a name="gst-riff-parse-strh"></a><h3>gst_riff_parse_strh ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_riff_parse_strh                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);</pre>
 <p>
 Parses a strh structure from input data. Takes ownership of <em class="parameter"><code>buf</code></em>.
 </p>
@@ -1803,8 +461,8 @@ should be skipped on error, but it is not fatal.</td>
 <a name="gst-riff-read-chunk"></a><h3>gst_riff_read_chunk ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_riff_read_chunk                 (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *tag</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
 <p>
 Reads a single chunk of data. Since 0.10.8 'JUNK' chunks
@@ -1840,253 +498,10 @@ are skipped automatically.
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strf-auds"></a><h3>gst_riff_strf_auds</h3>
-<pre class="programlisting">typedef struct {
-       /* == WaveHeader (?) */
-  guint16 format;
-/**** from public Microsoft RIFF docs ******/
-#define GST_RIFF_WAVE_FORMAT_UNKNOWN        (0x0000)
-#define GST_RIFF_WAVE_FORMAT_PCM            (0x0001)
-#define GST_RIFF_WAVE_FORMAT_ADPCM          (0x0002)
-#define GST_RIFF_WAVE_FORMAT_IEEE_FLOAT     (0x0003)
-#define GST_RIFF_WAVE_FORMAT_VSELP          (0x0004)
-#define GST_RIFF_WAVE_FORMAT_IBM_CVSD       (0x0005)
-#define GST_RIFF_WAVE_FORMAT_ALAW           (0x0006)
-#define GST_RIFF_WAVE_FORMAT_MULAW          (0x0007)
-#define GST_RIFF_WAVE_FORMAT_WMS            (0x000a) /* WMS Windows Media Audio Speech */
-#define GST_RIFF_WAVE_FORMAT_OKI_ADPCM      (0x0010)
-#define GST_RIFF_WAVE_FORMAT_DVI_ADPCM      (0x0011)
-#define GST_RIFF_WAVE_FORMAT_MEDIASPACE_ADPCM (0x0012)
-#define GST_RIFF_WAVE_FORMAT_SIERRA_ADPCM   (0x0013)
-#define GST_RIFF_WAVE_FORMAT_G723_ADPCM     (0x0014)
-#define GST_RIFF_WAVE_FORMAT_DIGISTD        (0x0015)
-#define GST_RIFF_WAVE_FORMAT_DIGIFIX        (0x0016)
-#define GST_RIFF_WAVE_FORMAT_DIALOGIC_OKI_ADPCM (0x0017)
-#define GST_RIFF_WAVE_FORMAT_MEDIAVISION_ADPCM  (0x0018)
-#define GST_RIFF_WAVE_FORMAT_CU_CODEC       (0x0019)
-#define GST_RIFF_WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
-#define GST_RIFF_WAVE_FORMAT_SONARC         (0x0021)
-#define GST_RIFF_WAVE_FORMAT_DSP_TRUESPEECH (0x0022)
-#define GST_RIFF_WAVE_FORMAT_ECHOSC1        (0x0023)
-#define GST_RIFF_WAVE_FORMAT_AUDIOFILE_AF36 (0x0024)
-#define GST_RIFF_WAVE_FORMAT_APTX           (0x0025)
-#define GST_RIFF_WAVE_FORMAT_AUDIOFILE_AF10 (0x0026)
-#define GST_RIFF_WAVE_FORMAT_PROSODY_1612   (0x0027)
-#define GST_RIFF_WAVE_FORMAT_LRC            (0x0028)
-#define GST_RIFF_WAVE_FORMAT_DOLBY_AC2      (0x0030)
-#define GST_RIFF_WAVE_FORMAT_GSM610         (0x0031)
-#define GST_RIFF_WAVE_FORMAT_MSN            (0x0032)
-#define GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME   (0x0033 
-#define GST_RIFF_WAVE_FORMAT_CONTROL_RES_VQLPC (0x0034)
-#define GST_RIFF_WAVE_FORMAT_DIGIREAL       (0x0035)
-#define GST_RIFF_WAVE_FORMAT_DIGIADPCM      (0x0036)
-#define GST_RIFF_WAVE_FORMAT_CONTROL_RES_CR10  (0x0037)
-#define GST_RIFF_WAVE_FORMAT_NMS_VBXADPCM   (0x0038)
-#define GST_RIFF_WAVE_FORMAT_CS_IMAADPCM    (0x0039)
-#define GST_RIFF_WAVE_FORMAT_ECHOSC3        (0x003A)
-#define GST_RIFF_WAVE_FORMAT_ROCKWELL_ADPCM (0x003B)
-#define GST_RIFF_WAVE_FORMAT_ROCKWELL_DIGITALK (0x003C)
-#define GST_RIFF_WAVE_FORMAT_XEBEC          (0x003D)
-#define GST_RIFF_WAVE_FORMAT_ITU_G721_ADPCM (0x0040)
-#define GST_RIFF_WAVE_FORMAT_G728_CELP      (0x0041)
-#define GST_RIFF_WAVE_FORMAT_MSG723         (0x0042)
-#define GST_RIFF_WAVE_FORMAT_MPEGL12        (0x0050)
-#define GST_RIFF_WAVE_FORMAT_RT24           (0x0052)
-#define GST_RIFF_WAVE_FORMAT_PAC            (0x0053)
-#define GST_RIFF_WAVE_FORMAT_MPEGL3         (0x0055)
-#define GST_RIFF_WAVE_FORMAT_AMR_NB         (0x0057)
-#define GST_RIFF_WAVE_FORMAT_AMR_WB         (0x0058)
-#define GST_RIFF_WAVE_FORMAT_LUCENT_G723    (0x0059)
-#define GST_RIFF_WAVE_FORMAT_CIRRUS         (0x0060)
-#define GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK4  (0x0061)  /* not official */
-#define GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK3  (0x0062)  /* not official */
-/* FIXME: where are these from? are they used at all? */
-#if 0
-#define GST_RIFF_WAVE_FORMAT_ESPCM          (0x0061)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE        (0x0062)
-#endif
-#define GST_RIFF_WAVE_FORMAT_CANOPUS_ATRAC  (0x0063)
-#define GST_RIFF_WAVE_FORMAT_G726_ADPCM     (0x0064)
-#define GST_RIFF_WAVE_FORMAT_G722_ADPCM     (0x0065)
-#define GST_RIFF_WAVE_FORMAT_DSAT_DISPLAY   (0x0067)
-#define GST_RIFF_WAVE_FORMAT_ADPCM_IMA_WAV (0x0069)
-/* FIXME: where are these from? are they used at all? */
-#if 0
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_BYTE_ALIGNED (0x0069)
-#endif
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC8    (0x0070)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC10   (0x0071)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC16   (0x0072)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC20   (0x0073)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_METAVOICE (0x0074)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_METASOUND (0x0075)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_RT29HW (0x0076)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR12   (0x0077)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR18   (0x0078)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ40   (0x0079)
-#define GST_RIFF_WAVE_FORMAT_SOFTSOUND      (0x0080)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ60   (0x0081)
-#define GST_RIFF_WAVE_FORMAT_MSRT24         (0x0082)
-#define GST_RIFF_WAVE_FORMAT_G729A          (0x0083)
-#define GST_RIFF_WAVE_FORMAT_MVI_MVI2       (0x0084)
-#define GST_RIFF_WAVE_FORMAT_DF_G726        (0x0085)
-#define GST_RIFF_WAVE_FORMAT_DF_GSM610      (0x0086)
-#define GST_RIFF_WAVE_FORMAT_ISIAUDIO       (0x0088)
-#define GST_RIFF_WAVE_FORMAT_ONLIVE         (0x0089)
-#define GST_RIFF_WAVE_FORMAT_SBC24          (0x0091)
-#define GST_RIFF_WAVE_FORMAT_DOLBY_AC3_SPDIF  (0x0092)
-#define GST_RIFF_WAVE_FORMAT_MEDIASONIC_G723  (0x0093)
-#define GST_RIFF_WAVE_FORMAT_PROSODY_8KBPS  (0x0094)
-#define GST_RIFF_WAVE_FORMAT_ZYXEL_ADPCM    (0x0097)
-#define GST_RIFF_WAVE_FORMAT_PHILIPS_LPCBB  (0x0098)
-#define GST_RIFF_WAVE_FORMAT_PACKED         (0x0099)
-#define GST_RIFF_WAVE_FORMAT_MALDEN_PHONYTALK (0x00A0)
-#define GST_RIFF_WAVE_FORMAT_AAC            (0x00ff)
-#define GST_RIFF_WAVE_FORMAT_RHETOREX_ADPCM (0x0100)
-#define GST_RIFF_IBM_FORMAT_MULAW           (0x0101)
-#define GST_RIFF_IBM_FORMAT_ALAW            (0x0102)
-#define GST_RIFF_IBM_FORMAT_ADPCM           (0x0103)
-#define GST_RIFF_WAVE_FORMAT_VIVO_G723      (0x0111)
-#define GST_RIFF_WAVE_FORMAT_VIVO_SIREN     (0x0112)
-#define GST_RIFF_WAVE_FORMAT_DIGITAL_G723   (0x0123)
-#define GST_RIFF_WAVE_FORMAT_SANYO_LD_ADPCM (0x0125)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACEPLNET  (0x0130)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACELP4800 (0x0131)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACELP8V3  (0x0132)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_G729   (0x0133)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_G729A  (0x0134)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_KELVIN (0x0135)
-#define GST_RIFF_WAVE_FORMAT_G726ADPCM       (0x0140)
-#define GST_RIFF_WAVE_FORMAT_QUALCOMM_PUREVOICE (0x0150)
-#define GST_RIFF_WAVE_FORMAT_QUALCOMM_HALFRATE  (0x0151)
-#define GST_RIFF_WAVE_FORMAT_TUBGSM             (0x0155)
-#define GST_RIFF_WAVE_FORMAT_WMAV1          (0x0160)
-#define GST_RIFF_WAVE_FORMAT_WMAV2          (0x0161)
-#define GST_RIFF_WAVE_FORMAT_WMAV3          (0x0162)
-#define GST_RIFF_WAVE_FORMAT_WMAV3_L        (0x0163)
-#define GST_RIFF_WAVE_FORMAT_CREATIVE_ADPCM (0x0200)
-#define GST_RIFF_WAVE_FORMAT_CREATIVE_FASTSPEECH8  (0x0202)
-#define GST_RIFF_WAVE_FORMAT_CREATIVE_FASTSPEECH10 (0x0203)
-#define GST_RIFF_WAVE_FORMAT_UHER_ADPCM     (0x0210)
-#define GST_RIFF_WAVE_FORMAT_QUARTERDECK    (0x0220)
-#define GST_RIFF_WAVE_FORMAT_ILINK_VC       (0x0230)
-#define GST_RIFF_WAVE_FORMAT_RAW_SPORT      (0x0240)
-#define GST_RIFF_WAVE_FORMAT_IPI_HSX        (0x0250)
-#define GST_RIFF_WAVE_FORMAT_IPI_RPELP      (0x0251)
-#define GST_RIFF_WAVE_FORMAT_CS2            (0x0260)
-#define GST_RIFF_WAVE_FORMAT_SONY_ATRAC3    (0x0270)
-#define GST_RIFF_WAVE_FORMAT_SIREN          (0x028E)
-#define GST_RIFF_WAVE_FORMAT_FM_TOWNS_SND   (0x0300)
-#define GST_RIFF_WAVE_FORMAT_BTV_DIGITAL    (0x0400)
-#define GST_RIFF_WAVE_FORMAT_IMC            (0x0401)
-#define GST_RIFF_WAVE_FORMAT_QDESIGN_MUSIC  (0x0450)
-#define GST_RIFF_WAVE_FORMAT_VME_VMPCM      (0x0680)
-#define GST_RIFF_WAVE_FORMAT_TPC            (0x0681)
-#define GST_RIFF_WAVE_FORMAT_OLIGSM         (0x1000)
-#define GST_RIFF_WAVE_FORMAT_OLIADPCM       (0x1001)
-#define GST_RIFF_WAVE_FORMAT_OLICELP        (0x1002)
-#define GST_RIFF_WAVE_FORMAT_OLISBC         (0x1003)
-#define GST_RIFF_WAVE_FORMAT_OLIOPR         (0x1004)
-#define GST_RIFF_WAVE_FORMAT_LH_CODEC       (0x1100)
-#define GST_RIFF_WAVE_FORMAT_NORRIS         (0x1400)
-#define GST_RIFF_WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS (0x1500)
-#define GST_RIFF_WAVE_FORMAT_A52            (0x2000)
-#define GST_RIFF_WAVE_FORMAT_DTS            (0x2001)
-#define GST_RIFF_WAVE_FORMAT_SONIC          (0x2048)
-#define GST_RIFF_WAVE_FORMAT_SONIC_LS       (0x2048)
-#define GST_RIFF_WAVE_FORMAT_AAC_AC         (0x4143)
-#define GST_RIFF_WAVE_FORMAT_VORBIS1        (0x674f)
-#define GST_RIFF_WAVE_FORMAT_VORBIS2        (0x6750)
-#define GST_RIFF_WAVE_FORMAT_VORBIS3        (0x6751)
-#define GST_RIFF_WAVE_FORMAT_VORBIS1PLUS    (0x676f)
-#define GST_RIFF_WAVE_FORMAT_VORBIS2PLUS    (0x6770)
-#define GST_RIFF_WAVE_FORMAT_VORBIS3PLUS    (0x6771)
-#define GST_RIFF_WAVE_FORMAT_AAC_pm         (0x706d)
-#define GST_RIFF_WAVE_FORMAT_GSM_AMR_CBR    (0x7A21)
-#define GST_RIFF_WAVE_FORMAT_GSM_AMR_VBR    (0x7A22)
-#define GST_RIFF_WAVE_FORMAT_FLAC           (0xF1AC)
-#define GST_RIFF_WAVE_FORMAT_EXTENSIBLE     (0xFFFE)
-  guint16 channels;
-  guint32 rate;
-  guint32 av_bps;
-  guint16 blockalign;
-#if 0
-  /* missing field: */
-  guint16 bits_per_sample;
-#endif
-  guint16 size;
-} gst_riff_strf_auds;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strf-iavs"></a><h3>gst_riff_strf_iavs</h3>
-<pre class="programlisting">typedef struct {
-  guint32 DVAAuxSrc;
-  guint32 DVAAuxCtl;
-  guint32 DVAAuxSrc1;
-  guint32 DVAAuxCtl1;
-  guint32 DVVAuxSrc;
-  guint32 DVVAuxCtl;
-  guint32 DVReserved1;
-  guint32 DVReserved2;
-} gst_riff_strf_iavs;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strf-vids"></a><h3>gst_riff_strf_vids</h3>
-<pre class="programlisting">typedef struct {
-       /* == BitMapInfoHeader */
-  guint32 size;
-  guint32 width;
-  guint32 height;
-  guint16 planes;
-  guint16 bit_cnt;
-  guint32 compression;
-  guint32 image_size;
-  guint32 xpels_meter;
-  guint32 ypels_meter;
-  guint32 num_colors;        /* used colors */
-  guint32 imp_colors;        /* important colors */
-  /* may be more for some codecs */
-} gst_riff_strf_vids;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strh"></a><h3>gst_riff_strh</h3>
-<pre class="programlisting">typedef struct {
-  guint32 type;             /* stream type */
-  guint32 fcc_handler;       /* fcc_handler */
-  guint32 flags;
-/* flags values */
-#define GST_RIFF_STRH_DISABLED        0x000000001
-#define GST_RIFF_STRH_VIDEOPALCHANGES 0x000010000
-  guint32 priority;
-  guint32 init_frames;       /* initial frames (???) */
-  guint32 scale;
-  guint32 rate;
-  guint32 start;
-  guint32 length;
-  guint32 bufsize;           /* suggested buffer size */
-  guint32 quality;
-  guint32 samplesize;
-  /* rcFrame, RECT structure(struct of 4 shorts)
-  gint32  left;
-  gint32  top;
-  gint32  right;
-  gint32  bottom;
-  */
-} gst_riff_strh;
-</pre>
-</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 839c8fd..fb9e66c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstringbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">
-<link rel="next" href="gstreamer-cdda.html" title="CDDA Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-cdda.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioiec61937.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gstringbuffer.synopsis" class="shortcut">Top</a>
@@ -46,7 +46,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstringbuffer.ht
 struct              <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferClass" title="struct GstRingBufferClass">GstRingBufferClass</a>;
 struct              <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec">GstRingBufferSpec</a>;
 <span class="returnvalue">void</span>                (<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferCallback" title="GstRingBufferCallback ()">*GstRingBufferCallback</a>)            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *rbuf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 enum                <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSegState" title="enum GstRingBufferSegState">GstRingBufferSegState</a>;
@@ -71,30 +71,30 @@ enum                <a class="link" href="gst-plugins-base-libs-gstringbuffer.ht
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-pause" title="gst_ring_buffer_pause ()">gst_ring_buffer_pause</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-stop" title="gst_ring_buffer_stop ()">gst_ring_buffer_stop</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-delay" title="gst_ring_buffer_delay ()">gst_ring_buffer_delay</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-samples-done" title="gst_ring_buffer_samples_done ()">gst_ring_buffer_samples_done</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-samples-done" title="gst_ring_buffer_samples_done ()">gst_ring_buffer_samples_done</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-sample" title="gst_ring_buffer_set_sample ()">gst_ring_buffer_set_sample</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> sample</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit" title="gst_ring_buffer_commit ()">gst_ring_buffer_commit</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit-full" title="gst_ring_buffer_commit_full ()">gst_ring_buffer_commit_full</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *sample</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *sample</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *accum</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-convert" title="gst_ring_buffer_convert ()">gst_ring_buffer_convert</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-prepare-read" title="gst_ring_buffer_prepare_read ()">gst_ring_buffer_prepare_read</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **readptr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **readptr</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-read" title="gst_ring_buffer_read ()">gst_ring_buffer_read</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-clear" title="gst_ring_buffer_clear ()">gst_ring_buffer_clear</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
@@ -126,7 +126,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gstringbuffer.ht
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11277488"></a><p>
+<a name="idp12967152"></a><p>
 This object is the base class for audio ringbuffers used by the base
 audio source and sink classes.
 </p>
@@ -199,7 +199,7 @@ The ringbuffer base class structure.
 <td>number of samples in one segment</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstRingBuffer-struct.empty-seg"></a>empty_seg</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint8</span> *<em class="structfield"><code><a name="GstRingBuffer-struct.empty-seg"></a>empty_seg</code></em>;</span></p></td>
 <td>pointer to memory holding one segment of silence samples</td>
 </tr>
 <tr>
@@ -393,11 +393,11 @@ The structure containing the format specification of the ringbuffer.
 <td>the number of channels</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstRingBufferSpec.latency-time"></a>latency_time</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstRingBufferSpec.latency-time"></a>latency_time</code></em>;</span></p></td>
 <td>the latency in microseconds</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstRingBufferSpec.buffer-time"></a>buffer_time</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstRingBufferSpec.buffer-time"></a>buffer_time</code></em>;</span></p></td>
 <td>the total buffer size in microseconds</td>
 </tr>
 <tr>
@@ -413,7 +413,7 @@ The structure containing the format specification of the ringbuffer.
 <td>number of bytes in one sample</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstRingBufferSpec.silence-sample"></a>silence_sample</code></em>[32];</span></p></td>
+<td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstRingBufferSpec.silence-sample"></a>silence_sample</code></em>[32];</span></p></td>
 <td>bytes representing one sample of silence</td>
 </tr>
 <tr>
@@ -428,7 +428,7 @@ defaults to segtotal</td>
 <div class="refsect2">
 <a name="GstRingBufferCallback"></a><h3>GstRingBufferCallback ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                (*GstRingBufferCallback)            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *rbuf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
@@ -533,8 +533,7 @@ The state of the ringbuffer.
 <hr>
 <div class="refsect2">
 <a name="GstBufferFormat"></a><h3>enum GstBufferFormat</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_UNKNOWN,
 
   GST_S8,
@@ -582,15 +581,234 @@ The state of the ringbuffer.
   GST_IEC958,
   GST_AC3,
   GST_EAC3,
-  GST_DTS
+  GST_DTS,
+  GST_MPEG2_AAC,
+  GST_MPEG4_AAC,
 } GstBufferFormat;
 </pre>
+<p>
+The detailed format of the samples in the ringbuffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_UNKNOWN</code></span></p></td>
+<td>unspecified
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S8:CAPS"></a><span class="term"><code class="literal">GST_S8</code></span></p></td>
+<td>integer signed 8 bit
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U8:CAPS"></a><span class="term"><code class="literal">GST_U8</code></span></p></td>
+<td>integer unsigned 8 bit
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S16-LE:CAPS"></a><span class="term"><code class="literal">GST_S16_LE</code></span></p></td>
+<td>integer signed 16 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S16-BE:CAPS"></a><span class="term"><code class="literal">GST_S16_BE</code></span></p></td>
+<td>integer signed 16 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U16-LE:CAPS"></a><span class="term"><code class="literal">GST_U16_LE</code></span></p></td>
+<td>integer unsigned 16 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U16-BE:CAPS"></a><span class="term"><code class="literal">GST_U16_BE</code></span></p></td>
+<td>integer unsigned 16 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-LE:CAPS"></a><span class="term"><code class="literal">GST_S24_LE</code></span></p></td>
+<td>integer signed 24 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-BE:CAPS"></a><span class="term"><code class="literal">GST_S24_BE</code></span></p></td>
+<td>integer signed 24 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-LE:CAPS"></a><span class="term"><code class="literal">GST_U24_LE</code></span></p></td>
+<td>integer unsigned 24 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-BE:CAPS"></a><span class="term"><code class="literal">GST_U24_BE</code></span></p></td>
+<td>integer unsigned 24 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S32-LE:CAPS"></a><span class="term"><code class="literal">GST_S32_LE</code></span></p></td>
+<td>integer signed 32 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S32-BE:CAPS"></a><span class="term"><code class="literal">GST_S32_BE</code></span></p></td>
+<td>integer signed 32 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U32-LE:CAPS"></a><span class="term"><code class="literal">GST_U32_LE</code></span></p></td>
+<td>integer unsigned 32 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U32-BE:CAPS"></a><span class="term"><code class="literal">GST_U32_BE</code></span></p></td>
+<td>integer unsigned 32 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-3LE:CAPS"></a><span class="term"><code class="literal">GST_S24_3LE</code></span></p></td>
+<td>integer signed 24 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-3BE:CAPS"></a><span class="term"><code class="literal">GST_S24_3BE</code></span></p></td>
+<td>integer signed 24 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-3LE:CAPS"></a><span class="term"><code class="literal">GST_U24_3LE</code></span></p></td>
+<td>integer unsigned 24 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-3BE:CAPS"></a><span class="term"><code class="literal">GST_U24_3BE</code></span></p></td>
+<td>integer unsigned 24 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S20-3LE:CAPS"></a><span class="term"><code class="literal">GST_S20_3LE</code></span></p></td>
+<td>integer signed 20 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S20-3BE:CAPS"></a><span class="term"><code class="literal">GST_S20_3BE</code></span></p></td>
+<td>integer signed 20 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U20-3LE:CAPS"></a><span class="term"><code class="literal">GST_U20_3LE</code></span></p></td>
+<td>integer unsigned 20 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U20-3BE:CAPS"></a><span class="term"><code class="literal">GST_U20_3BE</code></span></p></td>
+<td>integer unsigned 20 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S18-3LE:CAPS"></a><span class="term"><code class="literal">GST_S18_3LE</code></span></p></td>
+<td>integer signed 18 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S18-3BE:CAPS"></a><span class="term"><code class="literal">GST_S18_3BE</code></span></p></td>
+<td>integer signed 18 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U18-3LE:CAPS"></a><span class="term"><code class="literal">GST_U18_3LE</code></span></p></td>
+<td>integer unsigned 18 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U18-3BE:CAPS"></a><span class="term"><code class="literal">GST_U18_3BE</code></span></p></td>
+<td>integer unsigned 18 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT32-LE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT32_LE</code></span></p></td>
+<td>floating 32 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT32-BE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT32_BE</code></span></p></td>
+<td>floating 32 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT64-LE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT64_LE</code></span></p></td>
+<td>floating 64 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT64-BE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT64_BE</code></span></p></td>
+<td>floating 64 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MU-LAW:CAPS"></a><span class="term"><code class="literal">GST_MU_LAW</code></span></p></td>
+<td>mu-law
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-A-LAW:CAPS"></a><span class="term"><code class="literal">GST_A_LAW</code></span></p></td>
+<td>a-law
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-IMA-ADPCM:CAPS"></a><span class="term"><code class="literal">GST_IMA_ADPCM</code></span></p></td>
+<td>ima adpcm
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MPEG:CAPS"></a><span class="term"><code class="literal">GST_MPEG</code></span></p></td>
+<td>mpeg audio (but not aac)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-GSM:CAPS"></a><span class="term"><code class="literal">GST_GSM</code></span></p></td>
+<td>gsm
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-IEC958:CAPS"></a><span class="term"><code class="literal">GST_IEC958</code></span></p></td>
+<td>IEC958 frames
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AC3:CAPS"></a><span class="term"><code class="literal">GST_AC3</code></span></p></td>
+<td>ac3
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-EAC3:CAPS"></a><span class="term"><code class="literal">GST_EAC3</code></span></p></td>
+<td>eac3
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-DTS:CAPS"></a><span class="term"><code class="literal">GST_DTS</code></span></p></td>
+<td>dts
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MPEG2-AAC:CAPS"></a><span class="term"><code class="literal">GST_MPEG2_AAC</code></span></p></td>
+<td>mpeg-2 aac
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MPEG4-AAC:CAPS"></a><span class="term"><code class="literal">GST_MPEG4_AAC</code></span></p></td>
+<td>mpeg-4 aac
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBufferFormatType"></a><h3>enum GstBufferFormatType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_BUFTYPE_LINEAR,
   GST_BUFTYPE_FLOAT,
   GST_BUFTYPE_MU_LAW,
@@ -601,7 +819,9 @@ The state of the ringbuffer.
   GST_BUFTYPE_IEC958,
   GST_BUFTYPE_AC3,
   GST_BUFTYPE_EAC3,
-  GST_BUFTYPE_DTS
+  GST_BUFTYPE_DTS,
+  GST_BUFTYPE_MPEG2_AAC,
+  GST_BUFTYPE_MPEG4_AAC,
 } GstBufferFormatType;
 </pre>
 <p>
@@ -637,7 +857,7 @@ The format of the samples in the ringbuffer.
 </tr>
 <tr>
 <td><p><a name="GST-BUFTYPE-MPEG:CAPS"></a><span class="term"><code class="literal">GST_BUFTYPE_MPEG</code></span></p></td>
-<td>samples in mpeg audio format
+<td>samples in mpeg audio (but not AAC) format
 </td>
 </tr>
 <tr>
@@ -665,6 +885,16 @@ The format of the samples in the ringbuffer.
 <td>samples in DTS format
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-BUFTYPE-MPEG2-AAC:CAPS"></a><span class="term"><code class="literal">GST_BUFTYPE_MPEG2_AAC</code></span></p></td>
+<td>samples in MPEG-2 AAC format
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFTYPE-MPEG4-AAC:CAPS"></a><span class="term"><code class="literal">GST_BUFTYPE_MPEG4_AAC</code></span></p></td>
+<td>samples in MPEG-4 AAC format
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -955,7 +1185,7 @@ MT safe.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-ring-buffer-samples-done"></a><h3>gst_ring_buffer_samples_done ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_ring_buffer_samples_done        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_ring_buffer_samples_done        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);</pre>
 <p>
 Get the number of samples that were processed by the ringbuffer
 since it was last started. This does not include the number of samples not
@@ -980,7 +1210,7 @@ MT safe.</td>
 <div class="refsect2">
 <a name="gst-ring-buffer-set-sample"></a><h3>gst_ring_buffer_set_sample ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_ring_buffer_set_sample          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> sample</code></em>);</pre>
 <p>
 Make sure that the next sample written to the device is
 accounted for as being the <em class="parameter"><code>sample</code></em> sample written to the
@@ -1011,7 +1241,7 @@ MT safe.
 <div class="refsect2">
 <a name="gst-ring-buffer-commit"></a><h3>gst_ring_buffer_commit ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_ring_buffer_commit              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
@@ -1050,7 +1280,7 @@ MT safe.</td>
 <div class="refsect2">
 <a name="gst-ring-buffer-commit-full"></a><h3>gst_ring_buffer_commit_full ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_ring_buffer_commit_full         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *sample</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *sample</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
@@ -1059,7 +1289,7 @@ MT safe.</td>
 Commit <em class="parameter"><code>in_samples</code></em> samples pointed to by <em class="parameter"><code>data</code></em> to the ringbuffer <em class="parameter"><code>buf</code></em>. 
 </p>
 <p>
-<em class="parameter"><code>in_samples</code></em> and <em class="parameter"><code>out_samples</code></em> define the rate conversion to perform on the the
+<em class="parameter"><code>in_samples</code></em> and <em class="parameter"><code>out_samples</code></em> define the rate conversion to perform on the
 samples in <em class="parameter"><code>data</code></em>. For negative rates, <em class="parameter"><code>out_samples</code></em> must be negative and
 <em class="parameter"><code>in_samples</code></em> positive.
 </p>
@@ -1123,9 +1353,9 @@ with a flush or stop.</td>
 <a name="gst-ring-buffer-convert"></a><h3>gst_ring_buffer_convert ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ring_buffer_convert             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_fmt</code></em> to the equivalent value in <em class="parameter"><code>dest_fmt</code></em>. The result
 will be put in <em class="parameter"><code>dest_val</code></em>.
@@ -1167,7 +1397,7 @@ will be put in <em class="parameter"><code>dest_val</code></em>.
 <a name="gst-ring-buffer-prepare-read"></a><h3>gst_ring_buffer_prepare_read ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ring_buffer_prepare_read        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **readptr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **readptr</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);</pre>
 <p>
 Returns a pointer to memory where the data from segment <em class="parameter"><code>segment</code></em>
@@ -1204,7 +1434,7 @@ MT safe.</td>
 <div class="refsect2">
 <a name="gst-ring-buffer-read"></a><h3>gst_ring_buffer_read ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_ring_buffer_read                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
@@ -1475,6 +1705,6 @@ MT safe.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index bbb199b..d6f1e05 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtcpbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
 <link rel="next" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -55,7 +55,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.ht
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data" title="gst_rtcp_buffer_new_copy_data ()">gst_rtcp_buffer_new_copy_data</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()">gst_rtcp_buffer_validate_data</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()">gst_rtcp_buffer_validate_data</a>       (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate" title="gst_rtcp_buffer_validate ()">gst_rtcp_buffer_validate</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new" title="gst_rtcp_buffer_new ()">gst_rtcp_buffer_new</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> mtu</code></em>);
@@ -69,98 +69,98 @@ enum                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.ht
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-remove" title="gst_rtcp_packet_remove ()">gst_rtcp_packet_remove</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-padding" title="gst_rtcp_packet_get_padding ()">gst_rtcp_packet_get_padding</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count" title="gst_rtcp_packet_get_count ()">gst_rtcp_packet_get_count</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count" title="gst_rtcp_packet_get_count ()">gst_rtcp_packet_get_count</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType" title="enum GstRTCPType"><span class="returnvalue">GstRTCPType</span></a>         <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-type" title="gst_rtcp_packet_get_type ()">gst_rtcp_packet_get_type</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length" title="gst_rtcp_packet_get_length ()">gst_rtcp_packet_get_length</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint16</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length" title="gst_rtcp_packet_get_length ()">gst_rtcp_packet_get_length</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-get-sender-info" title="gst_rtcp_packet_sr_get_sender_info ()">gst_rtcp_packet_sr_get_sender_info</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *ntptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rtptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *packet_count</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *octet_count</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *rtptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *packet_count</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *octet_count</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-set-sender-info" title="gst_rtcp_packet_sr_set_sender_info ()">gst_rtcp_packet_sr_set_sender_info</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rtptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> packet_count</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> octet_count</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc" title="gst_rtcp_packet_rr_get_ssrc ()">gst_rtcp_packet_rr_get_ssrc</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> rtptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> packet_count</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> octet_count</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc" title="gst_rtcp_packet_rr_get_ssrc ()">gst_rtcp_packet_rr_get_ssrc</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-set-ssrc" title="gst_rtcp_packet_rr_set_ssrc ()">gst_rtcp_packet_rr_set_ssrc</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb-count" title="gst_rtcp_packet_get_rb_count ()">gst_rtcp_packet_get_rb_count</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb" title="gst_rtcp_packet_get_rb ()">gst_rtcp_packet_get_rb</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *fractionlost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *packetslost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *exthighestseq</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *jitter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *lsr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *dlsr</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *fractionlost</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> *packetslost</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *exthighestseq</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *lsr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *dlsr</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-add-rb" title="gst_rtcp_packet_add_rb ()">gst_rtcp_packet_add_rb</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-set-rb" title="gst_rtcp_packet_set_rb ()">gst_rtcp_packet_set_rb</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-item-count" title="gst_rtcp_packet_sdes_get_item_count ()">gst_rtcp_packet_sdes_get_item_count</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-item" title="gst_rtcp_packet_sdes_first_item ()">gst_rtcp_packet_sdes_first_item</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-item" title="gst_rtcp_packet_sdes_next_item ()">gst_rtcp_packet_sdes_next_item</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc" title="gst_rtcp_packet_sdes_get_ssrc ()">gst_rtcp_packet_sdes_get_ssrc</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc" title="gst_rtcp_packet_sdes_get_ssrc ()">gst_rtcp_packet_sdes_get_ssrc</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-entry" title="gst_rtcp_packet_sdes_first_entry ()">gst_rtcp_packet_sdes_first_entry</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-entry" title="gst_rtcp_packet_sdes_next_entry ()">gst_rtcp_packet_sdes_next_entry</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()">gst_rtcp_packet_sdes_get_entry</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()">gst_rtcp_packet_sdes_copy_entry</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-item" title="gst_rtcp_packet_sdes_add_item ()">gst_rtcp_packet_sdes_add_item</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-entry" title="gst_rtcp_packet_sdes_add_entry ()">gst_rtcp_packet_sdes_add_entry</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-ssrc-count" title="gst_rtcp_packet_bye_get_ssrc_count ()">gst_rtcp_packet_bye_get_ssrc_count</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc" title="gst_rtcp_packet_bye_get_nth_ssrc ()">gst_rtcp_packet_bye_get_nth_ssrc</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc" title="gst_rtcp_packet_bye_get_nth_ssrc ()">gst_rtcp_packet_bye_get_nth_ssrc</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrc" title="gst_rtcp_packet_bye_add_ssrc ()">gst_rtcp_packet_bye_add_ssrc</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrcs" title="gst_rtcp_packet_bye_add_ssrcs ()">gst_rtcp_packet_bye_add_ssrcs</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len" title="gst_rtcp_packet_bye_get_reason_len ()">gst_rtcp_packet_bye_get_reason_len</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len" title="gst_rtcp_packet_bye_get_reason_len ()">gst_rtcp_packet_bye_get_reason_len</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason" title="gst_rtcp_packet_bye_get_reason ()">gst_rtcp_packet_bye_get_reason</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-set-reason" title="gst_rtcp_packet_bye_set_reason ()">gst_rtcp_packet_bye_set_reason</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="returnvalue">GstRTCPFBType</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-type" title="gst_rtcp_packet_fb_get_type ()">gst_rtcp_packet_fb_get_type</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-type" title="gst_rtcp_packet_fb_set_type ()">gst_rtcp_packet_fb_set_type</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="type">GstRTCPFBType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-sender-ssrc" title="gst_rtcp_packet_fb_get_sender_ssrc ()">gst_rtcp_packet_fb_get_sender_ssrc</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-sender-ssrc" title="gst_rtcp_packet_fb_get_sender_ssrc ()">gst_rtcp_packet_fb_get_sender_ssrc</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-sender-ssrc" title="gst_rtcp_packet_fb_set_sender_ssrc ()">gst_rtcp_packet_fb_set_sender_ssrc</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-media-ssrc" title="gst_rtcp_packet_fb_get_media_ssrc ()">gst_rtcp_packet_fb_get_media_ssrc</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-media-ssrc" title="gst_rtcp_packet_fb_get_media_ssrc ()">gst_rtcp_packet_fb_get_media_ssrc</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-media-ssrc" title="gst_rtcp_packet_fb_set_media_ssrc ()">gst_rtcp_packet_fb_set_media_ssrc</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci-length" title="gst_rtcp_packet_fb_get_fci_length ()">gst_rtcp_packet_fb_get_fci_length</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint16</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci-length" title="gst_rtcp_packet_fb_get_fci_length ()">gst_rtcp_packet_fb_get_fci_length</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-fci-length" title="gst_rtcp_packet_fb_set_fci_length ()">gst_rtcp_packet_fb_set_fci_length</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> wordlen</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci" title="gst_rtcp_packet_fb_get_fci ()">gst_rtcp_packet_fb_get_fci</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix" title="gst_rtcp_ntp_to_unix ()">gst_rtcp_ntp_to_unix</a>                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp" title="gst_rtcp_unix_to_ntp ()">gst_rtcp_unix_to_ntp</a>                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> unixtime</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> wordlen</code></em>);
+<span class="returnvalue">guint8</span> *            <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci" title="gst_rtcp_packet_fb_get_fci ()">gst_rtcp_packet_fb_get_fci</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix" title="gst_rtcp_ntp_to_unix ()">gst_rtcp_ntp_to_unix</a>                (<em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp" title="gst_rtcp_unix_to_ntp ()">gst_rtcp_unix_to_ntp</a>                (<em class="parameter"><code><span class="type">guint64</span> unixtime</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="returnvalue">GstRTCPSDESType</span></a>     <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type" title="gst_rtcp_sdes_name_to_type ()">gst_rtcp_sdes_name_to_type</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name" title="gst_rtcp_sdes_type_to_name ()">gst_rtcp_sdes_type_to_name</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>);
 </pre>
@@ -173,7 +173,7 @@ Note: The API in this module is not yet declared stable.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18698800"></a><p>
+<a name="idp19709744"></a><p>
 The GstRTPCBuffer helper functions makes it easy to parse and create regular 
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
 of 'application/x-rtcp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
@@ -259,8 +259,7 @@ Valid value for the first two bytes of an RTCP packet after applying
 <hr>
 <div class="refsect2">
 <a name="GstRTCPType"></a><h3>enum GstRTCPType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_RTCP_TYPE_INVALID = 0,
   GST_RTCP_TYPE_SR      = 200,
   GST_RTCP_TYPE_RR      = 201,
@@ -349,8 +348,7 @@ The size of the structure is made public to allow stack allocations.
 <hr>
 <div class="refsect2">
 <a name="GstRTCPSDESType"></a><h3>enum GstRTCPSDESType</h3>
-<pre class="programlisting">typedef enum 
-{
+<pre class="programlisting">typedef enum {
   GST_RTCP_SDES_INVALID  = -1,
   GST_RTCP_SDES_END      = 0,
   GST_RTCP_SDES_CNAME    = 1,
@@ -425,17 +423,24 @@ Different types of SDES content.
 <hr>
 <div class="refsect2">
 <a name="GstRTCPFBType"></a><h3>enum GstRTCPFBType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   /* generic */
   GST_RTCP_FB_TYPE_INVALID    = 0,
   /* RTPFB types */
   GST_RTCP_RTPFB_TYPE_NACK    = 1,
+  /* RTPFB types assigned in RFC 5104 */
+  GST_RTCP_RTPFB_TYPE_TMMBR   = 3,
+  GST_RTCP_RTPFB_TYPE_TMMBN   = 4,
   /* PSFB types */
   GST_RTCP_PSFB_TYPE_PLI      = 1,
   GST_RTCP_PSFB_TYPE_SLI      = 2,
   GST_RTCP_PSFB_TYPE_RPSI     = 3,
-  GST_RTCP_PSFB_TYPE_AFB      = 15
+  GST_RTCP_PSFB_TYPE_AFB      = 15,
+  /* PSFB types assigned in RFC 5104 */
+  GST_RTCP_PSFB_TYPE_FIR      = 4,
+  GST_RTCP_PSFB_TYPE_TSTR     = 5,
+  GST_RTCP_PSFB_TYPE_TSTN     = 6,
+  GST_RTCP_PSFB_TYPE_VBCN     = 7,
 } GstRTCPFBType;
 </pre>
 <p>
@@ -455,6 +460,17 @@ Different types of feedback messages.
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-RTCP-RTPFB-TYPE-TMMBR:CAPS"></a><span class="term"><code class="literal">GST_RTCP_RTPFB_TYPE_TMMBR</code></span></p></td>
+<td>Temporary Maximum Media Stream Bit Rate Request
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-RTPFB-TYPE-TMMBN:CAPS"></a><span class="term"><code class="literal">GST_RTCP_RTPFB_TYPE_TMMBN</code></span></p></td>
+<td>Temporary Maximum Media Stream Bit Rate
+   Notification
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-RTCP-PSFB-TYPE-PLI:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_PLI</code></span></p></td>
 <td>Picture Loss Indication
 </td>
@@ -474,6 +490,26 @@ Different types of feedback messages.
 <td>Application layer Feedback
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-FIR:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_FIR</code></span></p></td>
+<td>Full Intra Request Command
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-TSTR:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_TSTR</code></span></p></td>
+<td>Temporal-Spatial Trade-off Request
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-TSTN:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_TSTN</code></span></p></td>
+<td>Temporal-Spatial Trade-off Notification
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-VBCN:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_VBCN</code></span></p></td>
+<td>Video Back Channel Message
+</td>
+</tr>
 </tbody>
 </table></div>
 <p class="since">Since 0.10.23</p>
@@ -537,7 +573,7 @@ is freed.
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-validate-data"></a><h3>gst_rtcp_buffer_validate_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_buffer_validate_data       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_buffer_validate_data       (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Check if the <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> point to the data of a valid RTCP (compound)
@@ -782,7 +818,7 @@ Get the packet padding of the packet pointed to by <em class="parameter"><code>p
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-count"></a><h3>gst_rtcp_packet_get_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_rtcp_packet_get_count           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_rtcp_packet_get_count           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the count field in <em class="parameter"><code>packet</code></em>.
 </p>
@@ -828,7 +864,7 @@ pointing to a valid packet.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-length"></a><h3>gst_rtcp_packet_get_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_rtcp_packet_get_length          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_rtcp_packet_get_length          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the length field of <em class="parameter"><code>packet</code></em>. This is the length of the packet in 
 32-bit words minus one.
@@ -852,11 +888,11 @@ Get the length field of <em class="parameter"><code>packet</code></em>. This is
 <div class="refsect2">
 <a name="gst-rtcp-packet-sr-get-sender-info"></a><h3>gst_rtcp_packet_sr_get_sender_info ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_sr_get_sender_info  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *ntptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rtptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *packet_count</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *octet_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *rtptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *packet_count</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *octet_count</code></em>);</pre>
 <p>
 Parse the SR sender info and store the values.
 </p>
@@ -886,7 +922,7 @@ Parse the SR sender info and store the values.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>octet_count</code></em> :</span></p></td>
-<td>result octect count</td>
+<td>result octet count</td>
 </tr>
 </tbody>
 </table></div>
@@ -895,11 +931,11 @@ Parse the SR sender info and store the values.
 <div class="refsect2">
 <a name="gst-rtcp-packet-sr-set-sender-info"></a><h3>gst_rtcp_packet_sr_set_sender_info ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_sr_set_sender_info  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rtptime</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> packet_count</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> octet_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> rtptime</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> packet_count</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> octet_count</code></em>);</pre>
 <p>
 Set the given values in the SR packet <em class="parameter"><code>packet</code></em>.
 </p>
@@ -929,7 +965,7 @@ Set the given values in the SR packet <em class="parameter"><code>packet</code><
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>octet_count</code></em> :</span></p></td>
-<td>the octect count</td>
+<td>the octet count</td>
 </tr>
 </tbody>
 </table></div>
@@ -937,7 +973,7 @@ Set the given values in the SR packet <em class="parameter"><code>packet</code><
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-rr-get-ssrc"></a><h3>gst_rtcp_packet_rr_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtcp_packet_rr_get_ssrc         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtcp_packet_rr_get_ssrc         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
 </p>
@@ -960,7 +996,7 @@ Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
 <div class="refsect2">
 <a name="gst-rtcp-packet-rr-set-ssrc"></a><h3>gst_rtcp_packet_rr_set_ssrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_rr_set_ssrc         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Set the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1006,13 +1042,13 @@ Get the number of report blocks in <em class="parameter"><code>packet</code></em
 <a name="gst-rtcp-packet-get-rb"></a><h3>gst_rtcp_packet_get_rb ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_get_rb              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *fractionlost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *packetslost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *exthighestseq</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *jitter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *lsr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *dlsr</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *fractionlost</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> *packetslost</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *exthighestseq</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *lsr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *dlsr</code></em>);</pre>
 <p>
 Parse the values of the <em class="parameter"><code>nth</code></em> report block in <em class="parameter"><code>packet</code></em> and store the result in
 the values.
@@ -1065,13 +1101,13 @@ the values.
 <div class="refsect2">
 <a name="gst-rtcp-packet-add-rb"></a><h3>gst_rtcp_packet_add_rb ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_add_rb              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);</pre>
 <p>
 Add a new report block to <em class="parameter"><code>packet</code></em> with the given values.
 </p>
@@ -1126,13 +1162,13 @@ the max MTU is exceeded or the number of report blocks is greater than
 <a name="gst-rtcp-packet-set-rb"></a><h3>gst_rtcp_packet_set_rb ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_set_rb              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);</pre>
 <p>
 Set the <em class="parameter"><code>nth</code></em> new report block in <em class="parameter"><code>packet</code></em> with the given values.
 </p>
@@ -1251,7 +1287,7 @@ Move to the next SDES item in <em class="parameter"><code>packet</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-get-ssrc"></a><h3>gst_rtcp_packet_sdes_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtcp_packet_sdes_get_ssrc       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtcp_packet_sdes_get_ssrc       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the SSRC of the current SDES item.
 </p>
@@ -1321,8 +1357,8 @@ Move to the next SDES entry in the current item.
 <a name="gst-rtcp-packet-sdes-get-entry"></a><h3>gst_rtcp_packet_sdes_get_entry ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_sdes_get_entry      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);</pre>
 <p>
 Get the data of the current SDES item entry. <em class="parameter"><code>type</code></em> (when not NULL) will
 contain the type of the entry. <em class="parameter"><code>data</code></em> (when not NULL) will point to <em class="parameter"><code>len</code></em>
@@ -1331,7 +1367,7 @@ bytes.
 <p>
 When <em class="parameter"><code>type</code></em> refers to a text item, <em class="parameter"><code>data</code></em> will point to a UTF8 string. Note
 that this UTF8 string is NOT null-terminated. Use
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-termined copy of the entry.
+<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-terminated copy of the entry.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1366,8 +1402,8 @@ that this UTF8 string is NOT null-terminated. Use
 <a name="gst-rtcp-packet-sdes-copy-entry"></a><h3>gst_rtcp_packet_sdes_copy_entry ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_sdes_copy_entry     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);</pre>
 <p>
 This function is like <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()"><code class="function">gst_rtcp_packet_sdes_get_entry()</code></a> but it returns a
 null-terminated copy of the data instead. use <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.
@@ -1404,7 +1440,7 @@ null-terminated copy of the data instead. use <a href="http://library.gnome.org/
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-add-item"></a><h3>gst_rtcp_packet_sdes_add_item ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_sdes_add_item       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Add a new SDES item for <em class="parameter"><code>ssrc</code></em> to <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1434,8 +1470,8 @@ items has been exceeded for the SDES packet or the MTU has been reached.</td>
 <a name="gst-rtcp-packet-sdes-add-entry"></a><h3>gst_rtcp_packet_sdes_add_entry ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_sdes_add_entry      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>
 Add a new SDES entry to the current item in <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1493,7 +1529,7 @@ Get the number of SSRC fields in <em class="parameter"><code>packet</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-nth-ssrc"></a><h3>gst_rtcp_packet_bye_get_nth_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtcp_packet_bye_get_nth_ssrc    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtcp_packet_bye_get_nth_ssrc    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>
 Get the <em class="parameter"><code>nth</code></em> SSRC of the BYE <em class="parameter"><code>packet</code></em>.
@@ -1521,7 +1557,7 @@ Get the <em class="parameter"><code>nth</code></em> SSRC of the BYE <em class="p
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-add-ssrc"></a><h3>gst_rtcp_packet_bye_add_ssrc ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_bye_add_ssrc        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Add <em class="parameter"><code>ssrc</code></em> to the BYE <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1551,7 +1587,7 @@ the max MTU is exceeded or the number of sources blocks is greater than
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-add-ssrcs"></a><h3>gst_rtcp_packet_bye_add_ssrcs ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_bye_add_ssrcs       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Adds <em class="parameter"><code>len</code></em> SSRCs in <em class="parameter"><code>ssrc</code></em> to BYE <em class="parameter"><code>packet</code></em>.
@@ -1586,7 +1622,7 @@ the max MTU is exceeded or the number of sources blocks is greater than
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-reason-len"></a><h3>gst_rtcp_packet_bye_get_reason_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_rtcp_packet_bye_get_reason_len  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_rtcp_packet_bye_get_reason_len  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the length of the reason string.
 </p>
@@ -1706,7 +1742,7 @@ Set the feedback message type of the FB <em class="parameter"><code>packet</code
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-sender-ssrc"></a><h3>gst_rtcp_packet_fb_get_sender_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtcp_packet_fb_get_sender_ssrc  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtcp_packet_fb_get_sender_ssrc  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1730,7 +1766,7 @@ Get the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packe
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-set-sender-ssrc"></a><h3>gst_rtcp_packet_fb_set_sender_ssrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_fb_set_sender_ssrc  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Set the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1753,7 +1789,7 @@ Set the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packe
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-media-ssrc"></a><h3>gst_rtcp_packet_fb_get_media_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtcp_packet_fb_get_media_ssrc   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtcp_packet_fb_get_media_ssrc   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1777,7 +1813,7 @@ Get the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-set-media-ssrc"></a><h3>gst_rtcp_packet_fb_set_media_ssrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtcp_packet_fb_set_media_ssrc   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Set the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1800,7 +1836,7 @@ Set the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-fci-length"></a><h3>gst_rtcp_packet_fb_get_fci_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_rtcp_packet_fb_get_fci_length   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_rtcp_packet_fb_get_fci_length   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the length of the Feedback Control Information attached to a
 RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
@@ -1825,7 +1861,7 @@ RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-set-fci-length"></a><h3>gst_rtcp_packet_fb_set_fci_length ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtcp_packet_fb_set_fci_length   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> wordlen</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> wordlen</code></em>);</pre>
 <p>
 Set the length of the Feedback Control Information attached to a
 RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
@@ -1854,7 +1890,7 @@ RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-fci"></a><h3>gst_rtcp_packet_fb_get_fci ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            gst_rtcp_packet_fb_get_fci          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> *            gst_rtcp_packet_fb_get_fci          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>
 Get the Feedback Control Information attached to a RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
@@ -1877,7 +1913,7 @@ Get the Feedback Control Information attached to a RTPFB or PSFB <em class="para
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-ntp-to-unix"></a><h3>gst_rtcp_ntp_to_unix ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_rtcp_ntp_to_unix                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_rtcp_ntp_to_unix                (<em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);</pre>
 <p>
 Converts an NTP time to UNIX nanoseconds. <em class="parameter"><code>ntptime</code></em> can typically be
 the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
@@ -1901,7 +1937,7 @@ seconds. The resulting value will be the number of nanoseconds since 1970.
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-unix-to-ntp"></a><h3>gst_rtcp_unix_to_ntp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_rtcp_unix_to_ntp                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> unixtime</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_rtcp_unix_to_ntp                (<em class="parameter"><code><span class="type">guint64</span> unixtime</code></em>);</pre>
 <p>
 Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
 pass a value with nanoseconds since 1970. The NTP time will, in the upper
@@ -1980,6 +2016,6 @@ key in a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstre
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5f1fc8d..1cfc19d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">
 <link rel="next" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 #define             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS" title="GST_RTP_VERSION">GST_RTP_VERSION</a>
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data" title="gst_rtp_buffer_allocate_data ()">gst_rtp_buffer_allocate_data</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data" title="gst_rtp_buffer_new_take_data ()">gst_rtp_buffer_new_take_data</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-copy-data" title="gst_rtp_buffer_new_copy_data ()">gst_rtp_buffer_new_copy_data</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate" title="gst_rtp_buffer_new_allocate ()">gst_rtp_buffer_new_allocate</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate-len" title="gst_rtp_buffer_new_allocate_len ()">gst_rtp_buffer_new_allocate_len</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-from-buffer" title="gst_rtp_buffer_list_from_buffer ()">gst_rtp_buffer_list_from_buffer</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len" title="gst_rtp_buffer_calc_header_len ()">gst_rtp_buffer_calc_header_len</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len" title="gst_rtp_buffer_calc_header_len ()">gst_rtp_buffer_calc_header_len</a>      (<em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-packet-len" title="gst_rtp_buffer_calc_packet_len ()">gst_rtp_buffer_calc_packet_len</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len" title="gst_rtp_buffer_calc_payload_len ()">gst_rtp_buffer_calc_payload_len</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate" title="gst_rtp_buffer_validate ()">gst_rtp_buffer_validate</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()">gst_rtp_buffer_validate_data</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()">gst_rtp_buffer_validate_data</a>        (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-packet-len" title="gst_rtp_buffer_set_packet_len ()">gst_rtp_buffer_set_packet_len</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-packet-len" title="gst_rtp_buffer_get_packet_len ()">gst_rtp_buffer_get_packet_len</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-header-len" title="gst_rtp_buffer_get_header_len ()">gst_rtp_buffer_get_header_len</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-version" title="gst_rtp_buffer_get_version ()">gst_rtp_buffer_get_version</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-version" title="gst_rtp_buffer_get_version ()">gst_rtp_buffer_get_version</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-version" title="gst_rtp_buffer_set_version ()">gst_rtp_buffer_set_version</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> version</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> version</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-padding" title="gst_rtp_buffer_get_padding ()">gst_rtp_buffer_get_padding</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-padding" title="gst_rtp_buffer_set_padding ()">gst_rtp_buffer_set_padding</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> padding</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension" title="gst_rtp_buffer_set_extension ()">gst_rtp_buffer_set_extension</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extension</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-data" title="gst_rtp_buffer_get_extension_data ()">gst_rtp_buffer_get_extension_data</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *bits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *bits</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *wordlen</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc" title="gst_rtp_buffer_get_ssrc ()">gst_rtp_buffer_get_ssrc</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc" title="gst_rtp_buffer_get_ssrc ()">gst_rtp_buffer_get_ssrc</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-ssrc" title="gst_rtp_buffer_set_ssrc ()">gst_rtp_buffer_set_ssrc</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count" title="gst_rtp_buffer_get_csrc_count ()">gst_rtp_buffer_get_csrc_count</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc" title="gst_rtp_buffer_get_csrc ()">gst_rtp_buffer_get_csrc</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count" title="gst_rtp_buffer_get_csrc_count ()">gst_rtp_buffer_get_csrc_count</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc" title="gst_rtp_buffer_get_csrc ()">gst_rtp_buffer_get_csrc</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> idx</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-csrc" title="gst_rtp_buffer_set_csrc ()">gst_rtp_buffer_set_csrc</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> csrc</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> csrc</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-marker" title="gst_rtp_buffer_get_marker ()">gst_rtp_buffer_get_marker</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-marker" title="gst_rtp_buffer_set_marker ()">gst_rtp_buffer_set_marker</a>           (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> marker</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-type" title="gst_rtp_buffer_get_payload_type ()">gst_rtp_buffer_get_payload_type</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-type" title="gst_rtp_buffer_get_payload_type ()">gst_rtp_buffer_get_payload_type</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-payload-type" title="gst_rtp_buffer_set_payload_type ()">gst_rtp_buffer_set_payload_type</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-seq" title="gst_rtp_buffer_get_seq ()">gst_rtp_buffer_get_seq</a>              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
+<span class="returnvalue">guint16</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-seq" title="gst_rtp_buffer_get_seq ()">gst_rtp_buffer_get_seq</a>              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-seq" title="gst_rtp_buffer_set_seq ()">gst_rtp_buffer_set_seq</a>              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-timestamp" title="gst_rtp_buffer_get_timestamp ()">gst_rtp_buffer_get_timestamp</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-timestamp" title="gst_rtp_buffer_get_timestamp ()">gst_rtp_buffer_get_timestamp</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-timestamp" title="gst_rtp_buffer_set_timestamp ()">gst_rtp_buffer_set_timestamp</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer" title="gst_rtp_buffer_get_payload_buffer ()">gst_rtp_buffer_get_payload_buffer</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer" title="gst_rtp_buffer_get_payload_subbuffer ()">gst_rtp_buffer_get_payload_subbuffer</a>
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer" title="gst_rtp_buffer_get_payload_buffer ()">gst_rtp_buffer_get_payload_buffer</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer" title="gst_rtp_buffer_get_payload_subbuffer ()">gst_rtp_buffer_get_payload_subbuffer</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-len" title="gst_rtp_buffer_get_payload_len ()">gst_rtp_buffer_get_payload_len</a>      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload" title="gst_rtp_buffer_get_payload ()">gst_rtp_buffer_get_payload</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate" title="gst_rtp_buffer_default_clock_rate ()">gst_rtp_buffer_default_clock_rate</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum" title="gst_rtp_buffer_compare_seqnum ()">gst_rtp_buffer_compare_seqnum</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum2</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-ext-timestamp" title="gst_rtp_buffer_ext_timestamp ()">gst_rtp_buffer_ext_timestamp</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *exttimestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate" title="gst_rtp_buffer_default_clock_rate ()">gst_rtp_buffer_default_clock_rate</a>   (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum" title="gst_rtp_buffer_compare_seqnum ()">gst_rtp_buffer_compare_seqnum</a>       (<em class="parameter"><code><span class="type">guint16</span> seqnum1</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> seqnum2</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-ext-timestamp" title="gst_rtp_buffer_ext_timestamp ()">gst_rtp_buffer_ext_timestamp</a>        (<em class="parameter"><code><span class="type">guint64</span> *exttimestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension-data" title="gst_rtp_buffer_set_extension_data ()">gst_rtp_buffer_set_extension_data</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> bits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> length</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> bits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> length</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-validate" title="gst_rtp_buffer_list_validate ()">gst_rtp_buffer_list_validate</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-len" title="gst_rtp_buffer_list_get_payload_len ()">gst_rtp_buffer_list_get_payload_len</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-type" title="gst_rtp_buffer_list_get_payload_type ()">gst_rtp_buffer_list_get_payload_type</a>
+<span class="returnvalue">guint8</span>              <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-type" title="gst_rtp_buffer_list_get_payload_type ()">gst_rtp_buffer_list_get_payload_type</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-payload-type" title="gst_rtp_buffer_list_set_payload_type ()">gst_rtp_buffer_list_set_payload_type</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-seq" title="gst_rtp_buffer_list_get_seq ()">gst_rtp_buffer_list_get_seq</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-seq" title="gst_rtp_buffer_list_set_seq ()">gst_rtp_buffer_list_set_seq</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-ssrc" title="gst_rtp_buffer_list_get_ssrc ()">gst_rtp_buffer_list_get_ssrc</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
+<span class="returnvalue">guint16</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-seq" title="gst_rtp_buffer_list_get_seq ()">gst_rtp_buffer_list_get_seq</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+<span class="returnvalue">guint16</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-seq" title="gst_rtp_buffer_list_set_seq ()">gst_rtp_buffer_list_set_seq</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-ssrc" title="gst_rtp_buffer_list_get_ssrc ()">gst_rtp_buffer_list_get_ssrc</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-ssrc" title="gst_rtp_buffer_list_set_ssrc ()">gst_rtp_buffer_list_set_ssrc</a>        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-timestamp" title="gst_rtp_buffer_list_get_timestamp ()">gst_rtp_buffer_list_get_timestamp</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-timestamp" title="gst_rtp_buffer_list_get_timestamp ()">gst_rtp_buffer_list_get_timestamp</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-timestamp" title="gst_rtp_buffer_list_set_timestamp ()">gst_rtp_buffer_list_set_timestamp</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-onebyte-header" title="gst_rtp_buffer_get_extension_onebyte_header ()">gst_rtp_buffer_get_extension_onebyte_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header" title="gst_rtp_buffer_get_extension_twobytes_header ()">gst_rtp_buffer_get_extension_twobytes_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" title="gst_rtp_buffer_add_extension_onebyte_header ()">gst_rtp_buffer_add_extension_onebyte_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" title="gst_rtp_buffer_add_extension_twobytes_header ()">gst_rtp_buffer_add_extension_twobytes_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-onebyte-header" title="gst_rtp_buffer_list_get_extension_onebyte_header ()">gst_rtp_buffer_list_get_extension_onebyte_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-twobytes-header" title="gst_rtp_buffer_list_get_extension_twobytes_header ()">gst_rtp_buffer_list_get_extension_twobytes_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-onebyte-header" title="gst_rtp_buffer_list_add_extension_onebyte_header ()">gst_rtp_buffer_list_add_extension_onebyte_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-twobytes-header" title="gst_rtp_buffer_list_add_extension_twobytes_header ()">gst_rtp_buffer_list_add_extension_twobytes_header</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 </pre>
 <p>
 </p>
 <div class="refsect2">
-<a name="idp19435168"></a><p>
+<a name="idp20554720"></a><p>
 The GstRTPBuffer helper functions makes it easy to parse and create regular 
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
 'application/x-rtp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
@@ -221,8 +221,8 @@ The supported RTP version 2.
 <a name="gst-rtp-buffer-allocate-data"></a><h3>gst_rtp_buffer_allocate_data ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_allocate_data        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>
 Allocate enough data in <em class="parameter"><code>buffer</code></em> to hold an RTP packet with <em class="parameter"><code>csrc_count</code></em> CSRCs,
 a payload length of <em class="parameter"><code>payload_len</code></em> and padding of <em class="parameter"><code>pad_len</code></em>.
@@ -312,8 +312,8 @@ is freed.
 <div class="refsect2">
 <a name="gst-rtp-buffer-new-allocate"></a><h3>gst_rtp_buffer_new_allocate ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_rtp_buffer_new_allocate         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>
 Allocate a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with enough data to hold an RTP packet with
 <em class="parameter"><code>csrc_count</code></em> CSRCs, a payload length of <em class="parameter"><code>payload_len</code></em> and padding of <em class="parameter"><code>pad_len</code></em>.
@@ -346,8 +346,8 @@ parameters.</td>
 <div class="refsect2">
 <a name="gst-rtp-buffer-new-allocate-len"></a><h3>gst_rtp_buffer_new_allocate_len ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_rtp_buffer_new_allocate_len     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>
 Create a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> that can hold an RTP packet that is exactly
 <em class="parameter"><code>packet_len</code></em> long. The length of the payload depends on <em class="parameter"><code>pad_len</code></em> and
@@ -402,7 +402,7 @@ buffers for the header and data sections.
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-header-len"></a><h3>gst_rtp_buffer_calc_header_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_rtp_buffer_calc_header_len      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_rtp_buffer_calc_header_len      (<em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>
 Calculate the header length of an RTP packet with <em class="parameter"><code>csrc_count</code></em> CSRC entries.
 An RTP packet can have at most 15 CSRC entries.
@@ -425,8 +425,8 @@ An RTP packet can have at most 15 CSRC entries.
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-packet-len"></a><h3>gst_rtp_buffer_calc_packet_len ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_rtp_buffer_calc_packet_len      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>
 Calculate the total length of an RTP packet with a payload size of <em class="parameter"><code>payload_len</code></em>,
 a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="parameter"><code>csrc_count</code></em> CSRC entries.
@@ -457,8 +457,8 @@ a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="pa
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-payload-len"></a><h3>gst_rtp_buffer_calc_payload_len ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_rtp_buffer_calc_payload_len     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>
 Calculate the length of the payload of an RTP packet with size <em class="parameter"><code>packet_len</code></em>,
 a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="parameter"><code>csrc_count</code></em> CSRC entries.
@@ -491,7 +491,7 @@ a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="pa
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_validate             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Check if the data pointed to by <em class="parameter"><code>buffer</code></em> is a valid RTP packet using
-<code class="function">validate_data()</code>.
+<a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()"><code class="function">gst_rtp_buffer_validate_data()</code></a>.
 Use this function to validate a packet before using the other functions in
 this module.
 </p>
@@ -512,7 +512,7 @@ this module.
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-validate-data"></a><h3>gst_rtp_buffer_validate_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_validate_data        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_validate_data        (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>
 Check if the <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> point to the data of a valid RTP packet.
@@ -607,7 +607,7 @@ the fixed header, the CSRC list and the extension header.
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-version"></a><h3>gst_rtp_buffer_get_version ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_rtp_buffer_get_version          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_rtp_buffer_get_version          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Get the version number of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -629,7 +629,7 @@ Get the version number of the RTP packet in <em class="parameter"><code>buffer</
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-version"></a><h3>gst_rtp_buffer_set_version ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_set_version          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> version</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> version</code></em>);</pre>
 <p>
 Set the version of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>version</code></em>.
 </p>
@@ -763,7 +763,7 @@ Set the extension bit on the RTP packet in <em class="parameter"><code>buffer</c
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-extension-data"></a><h3>gst_rtp_buffer_get_extension_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_get_extension_data   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *bits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *bits</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *wordlen</code></em>);</pre>
 <p>
@@ -805,7 +805,7 @@ with <em class="parameter"><code>bits</code></em>, <em class="parameter"><code>d
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-ssrc"></a><h3>gst_rtp_buffer_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtp_buffer_get_ssrc             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtp_buffer_get_ssrc             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Get the SSRC of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -827,7 +827,7 @@ Get the SSRC of the RTP packet in <em class="parameter"><code>buffer</code></em>
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-ssrc"></a><h3>gst_rtp_buffer_set_ssrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_set_ssrc             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Set the SSRC on the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>ssrc</code></em>.
 </p>
@@ -848,7 +848,7 @@ Set the SSRC on the RTP packet in <em class="parameter"><code>buffer</code></em>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-csrc-count"></a><h3>gst_rtp_buffer_get_csrc_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_rtp_buffer_get_csrc_count       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_rtp_buffer_get_csrc_count       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Get the CSRC count of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -869,8 +869,8 @@ Get the CSRC count of the RTP packet in <em class="parameter"><code>buffer</code
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-csrc"></a><h3>gst_rtp_buffer_get_csrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtp_buffer_get_csrc             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtp_buffer_get_csrc             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> idx</code></em>);</pre>
 <p>
 Get the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -896,8 +896,8 @@ Get the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-csrc"></a><h3>gst_rtp_buffer_set_csrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_set_csrc             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> csrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> idx</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> csrc</code></em>);</pre>
 <p>
 Modify the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>csrc</code></em>.
 </p>
@@ -966,7 +966,7 @@ Set the marker bit on the RTP packet in <em class="parameter"><code>buffer</code
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-type"></a><h3>gst_rtp_buffer_get_payload_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_rtp_buffer_get_payload_type     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_rtp_buffer_get_payload_type     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Get the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -988,7 +988,7 @@ Get the payload type of the RTP packet in <em class="parameter"><code>buffer</co
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-payload-type"></a><h3>gst_rtp_buffer_set_payload_type ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_set_payload_type     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
 <p>
 Set the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>payload_type</code></em>.
 </p>
@@ -1009,7 +1009,7 @@ Set the payload type of the RTP packet in <em class="parameter"><code>buffer</co
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-seq"></a><h3>gst_rtp_buffer_get_seq ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_rtp_buffer_get_seq              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_rtp_buffer_get_seq              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Get the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -1031,7 +1031,7 @@ Get the sequence number of the RTP packet in <em class="parameter"><code>buffer<
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-seq"></a><h3>gst_rtp_buffer_set_seq ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_set_seq              (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);</pre>
 <p>
 Set the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>seq</code></em>.
 </p>
@@ -1052,7 +1052,7 @@ Set the sequence number of the RTP packet in <em class="parameter"><code>buffer<
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-timestamp"></a><h3>gst_rtp_buffer_get_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtp_buffer_get_timestamp        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtp_buffer_get_timestamp        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Get the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
@@ -1074,7 +1074,7 @@ Get the timestamp of the RTP packet in <em class="parameter"><code>buffer</code>
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-timestamp"></a><h3>gst_rtp_buffer_set_timestamp ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_set_timestamp        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);</pre>
 <p>
 Set the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>timestamp</code></em>.
 </p>
@@ -1095,7 +1095,7 @@ Set the timestamp of the RTP packet in <em class="parameter"><code>buffer</code>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-buffer"></a><h3>gst_rtp_buffer_get_payload_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *             gst_rtp_buffer_get_payload_buffer   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_rtp_buffer_get_payload_buffer   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Create a buffer of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>. This function
 will internally create a subbuffer of <em class="parameter"><code>buffer</code></em> so that a memcpy can be
@@ -1118,7 +1118,7 @@ avoided.
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-subbuffer"></a><h3>gst_rtp_buffer_get_payload_subbuffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *             gst_rtp_buffer_get_payload_subbuffer
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_rtp_buffer_get_payload_subbuffer
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
@@ -1196,7 +1196,7 @@ as a reference to <em class="parameter"><code>buffer</code></em> is held.
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-default-clock-rate"></a><h3>gst_rtp_buffer_default_clock_rate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtp_buffer_default_clock_rate   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtp_buffer_default_clock_rate   (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
 <p>
 Get the default clock-rate for the static payload type <em class="parameter"><code>payload_type</code></em>.
 </p>
@@ -1219,8 +1219,8 @@ the clock-rate is undefined.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-compare-seqnum"></a><h3>gst_rtp_buffer_compare_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_rtp_buffer_compare_seqnum       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum2</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_rtp_buffer_compare_seqnum       (<em class="parameter"><code><span class="type">guint16</span> seqnum1</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> seqnum2</code></em>);</pre>
 <p>
 Compare two sequence numbers, taking care of wraparounds. This function
 returns the difference between <em class="parameter"><code>seqnum1</code></em> and <em class="parameter"><code>seqnum2</code></em>.
@@ -1248,8 +1248,8 @@ are equal or a positive value if <em class="parameter"><code>seqnum1</code></em>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-ext-timestamp"></a><h3>gst_rtp_buffer_ext_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_rtp_buffer_ext_timestamp        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *exttimestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_rtp_buffer_ext_timestamp        (<em class="parameter"><code><span class="type">guint64</span> *exttimestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);</pre>
 <p>
 Update the <em class="parameter"><code>exttimestamp</code></em> field with <em class="parameter"><code>timestamp</code></em>. For the first call of the
 method, <em class="parameter"><code>exttimestamp</code></em> should point to a location with a value of -1.
@@ -1281,8 +1281,8 @@ value even in the case where there is a timestamp wraparound.
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-extension-data"></a><h3>gst_rtp_buffer_set_extension_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_set_extension_data   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> bits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> length</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> bits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> length</code></em>);</pre>
 <p>
 Set the extension bit of the rtp buffer and fill in the <em class="parameter"><code>bits</code></em> and <em class="parameter"><code>length</code></em> of the
 extension header. It will refuse to set the extension data if the buffer is not
@@ -1317,7 +1317,7 @@ the extension, excluding the extension header ( therefore zero is a valid length
 <a name="gst-rtp-buffer-list-validate"></a><h3>gst_rtp_buffer_list_validate ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_list_validate        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
-Check if all RTP packets in the <em class="parameter"><code>list</code></em> are valid using <code class="function">validate_data()</code>.
+Check if all RTP packets in the <em class="parameter"><code>list</code></em> are valid using <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()"><code class="function">gst_rtp_buffer_validate_data()</code></a>.
 Use this function to validate an list before using the other functions in
 this module.
 </p>
@@ -1361,7 +1361,7 @@ Get the length of the payload of the RTP packet in <em class="parameter"><code>l
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-get-payload-type"></a><h3>gst_rtp_buffer_list_get_payload_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_rtp_buffer_list_get_payload_type
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_rtp_buffer_list_get_payload_type
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 Get the payload type of the first RTP packet in <em class="parameter"><code>list</code></em>.
@@ -1387,7 +1387,7 @@ All packets in <em class="parameter"><code>list</code></em> should have the same
 <a name="gst-rtp-buffer-list-set-payload-type"></a><h3>gst_rtp_buffer_list_set_payload_type ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_list_set_payload_type
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
 <p>
 Set the payload type of each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>payload_type</code></em>.
 </p>
@@ -1409,7 +1409,7 @@ Set the payload type of each RTP packet in <em class="parameter"><code>list</cod
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-get-seq"></a><h3>gst_rtp_buffer_list_get_seq ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_rtp_buffer_list_get_seq         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_rtp_buffer_list_get_seq         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 Get the sequence number of the first RTP packet in <em class="parameter"><code>list</code></em>.
 All packets within <em class="parameter"><code>list</code></em> have the same sequence number.
@@ -1432,8 +1432,8 @@ All packets within <em class="parameter"><code>list</code></em> have the same se
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-set-seq"></a><h3>gst_rtp_buffer_list_set_seq ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_rtp_buffer_list_set_seq         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_rtp_buffer_list_set_seq         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);</pre>
 <p>
 Set the sequence number of each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>seq</code></em>.
 </p>
@@ -1459,7 +1459,7 @@ Set the sequence number of each RTP packet in <em class="parameter"><code>list</
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-get-ssrc"></a><h3>gst_rtp_buffer_list_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtp_buffer_list_get_ssrc        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtp_buffer_list_get_ssrc        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 Get the SSRC of the first RTP packet in <em class="parameter"><code>list</code></em>.
 All RTP packets within <em class="parameter"><code>list</code></em> have the same SSRC.
@@ -1483,7 +1483,7 @@ All RTP packets within <em class="parameter"><code>list</code></em> have the sam
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-set-ssrc"></a><h3>gst_rtp_buffer_list_set_ssrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_list_set_ssrc        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>
 Set the SSRC on each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>ssrc</code></em>.
 </p>
@@ -1505,7 +1505,7 @@ Set the SSRC on each RTP packet in <em class="parameter"><code>list</code></em>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-get-timestamp"></a><h3>gst_rtp_buffer_list_get_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_rtp_buffer_list_get_timestamp   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_rtp_buffer_list_get_timestamp   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 Get the timestamp of the first RTP packet in <em class="parameter"><code>list</code></em>.
 All packets within <em class="parameter"><code>list</code></em> have the same timestamp.
@@ -1529,7 +1529,7 @@ All packets within <em class="parameter"><code>list</code></em> have the same ti
 <div class="refsect2">
 <a name="gst-rtp-buffer-list-set-timestamp"></a><h3>gst_rtp_buffer_list_set_timestamp ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtp_buffer_list_set_timestamp   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);</pre>
 <p>
 Set the timestamp of each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>timestamp</code></em>.
 </p>
@@ -1553,7 +1553,7 @@ Set the timestamp of each RTP packet in <em class="parameter"><code>list</code><
 <a name="gst-rtp-buffer-get-extension-onebyte-header"></a><h3>gst_rtp_buffer_get_extension_onebyte_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_get_extension_onebyte_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
@@ -1597,8 +1597,8 @@ return the nth extension with the requested id.
 <a name="gst-rtp-buffer-get-extension-twobytes-header"></a><h3>gst_rtp_buffer_get_extension_twobytes_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_get_extension_twobytes_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
@@ -1646,7 +1646,7 @@ return the nth extension with the requested id.
 <a name="gst-rtp-buffer-add-extension-onebyte-header"></a><h3>gst_rtp_buffer_add_extension_onebyte_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_add_extension_onebyte_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -1691,8 +1691,8 @@ a two bytes header as described in RFC 5285. In that case, use
 <a name="gst-rtp-buffer-add-extension-twobytes-header"></a><h3>gst_rtp_buffer_add_extension_twobytes_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_add_extension_twobytes_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -1742,7 +1742,7 @@ a one byte header as described in RFC 5285. In that case, use
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_list_get_extension_onebyte_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
@@ -1792,8 +1792,8 @@ return the nth extension with the requested id.
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_list_get_extension_twobytes_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
@@ -1846,7 +1846,7 @@ return the nth extension with the requested id.
 <a name="gst-rtp-buffer-list-add-extension-onebyte-header"></a><h3>gst_rtp_buffer_list_add_extension_onebyte_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_list_add_extension_onebyte_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -1896,8 +1896,8 @@ the header extension should be added</td>
 <a name="gst-rtp-buffer-list-add-extension-twobytes-header"></a><h3>gst_rtp_buffer_list_add_extension_twobytes_header ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_buffer_list_add_extension_twobytes_header
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -1954,6 +1954,6 @@ the header extension should be added</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index cf104ba..82b33a8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtppayloads</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
 <link rel="next" href="gstreamer-rtsp.html" title="RTSP Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 enum                <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload" title="enum GstRTPPayload">GstRTPPayload</a>;
 #define             <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS" title="GST_RTP_PAYLOAD_IS_DYNAMIC()">GST_RTP_PAYLOAD_IS_DYNAMIC</a>          (pt)
 struct              <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo">GstRTPPayloadInfo</a>;
-const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *   <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name" title="gst_rtp_payload_info_for_name ()">gst_rtp_payload_info_for_name</a>
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name" title="gst_rtp_payload_info_for_name ()">gst_rtp_payload_info_for_name</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *   <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt" title="gst_rtp_payload_info_for_pt ()">gst_rtp_payload_info_for_pt</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt" title="gst_rtp_payload_info_for_pt ()">gst_rtp_payload_info_for_pt</a>   (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -54,7 +53,7 @@ const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayl
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17281392"></a><p>
+<a name="idp8311104"></a><p>
 The GstRTPPayloads helper functions makes it easy to deal with static and dynamic
 payloads. Its main purpose is to retrieve properties such as the default clock-rate 
 and get session bandwidth information.
@@ -70,8 +69,7 @@ Last reviewed on 2007-10-01 (0.10.15)
 <a name="gst-plugins-base-libs-gstrtppayloads.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstRTPPayload"></a><h3>enum GstRTPPayload</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   /* Audio: */
   GST_RTP_PAYLOAD_PCMU = 0,
   GST_RTP_PAYLOAD_1016 = 1, /* RFC 3551 says reserved */
@@ -294,7 +292,7 @@ Structure holding default payload type information.
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.payload-type"></a>payload_type</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstRTPPayloadInfo.payload-type"></a>payload_type</code></em>;</span></p></td>
 <td>payload type, -1 means dynamic</td>
 </tr>
 <tr>
@@ -326,8 +324,7 @@ channels. NULL = not applicable.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-payload-info-for-name"></a><h3>gst_rtp_payload_info_for_name ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *   gst_rtp_payload_info_for_name
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * gst_rtp_payload_info_for_name (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>);</pre>
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>media</code></em> and <em class="parameter"><code>encoding_name</code></em>. This function is
@@ -358,7 +355,7 @@ The search for <em class="parameter"><code>encoding_name</code></em> will be per
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-payload-info-for-pt"></a><h3>gst_rtp_payload_info_for_pt ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *   gst_rtp_payload_info_for_pt (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * gst_rtp_payload_info_for_pt   (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>payload_type</code></em>. This function is
 mostly used to get the default clock-rate and bandwidth for static payload
@@ -386,6 +383,6 @@ gstrtpbuffer
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a231e91..4bececb 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspbase64</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="next" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -41,9 +41,9 @@
 #include &lt;gst/rtsp/gstrtspbase64.h&gt;
 
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-encode" title="gst_rtsp_base64_encode ()">gst_rtsp_base64_encode</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> len</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-decode-ip" title="gst_rtsp_base64_decode_ip ()">gst_rtsp_base64_decode_ip</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *len</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> *len</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -57,7 +57,7 @@ Last reviewed on 2007-07-24 (0.10.14)
 <div class="refsect2">
 <a name="gst-rtsp-base64-encode"></a><h3>gst_rtsp_base64_encode ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_rtsp_base64_encode              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> len</code></em>);</pre>
 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
 <h3 class="title">Warning</h3>
 <p><code class="literal">gst_rtsp_base64_encode</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/glib/unstable/glib-Base64-Encoding.html#g-base64-encode"><code class="function">g_base64_encode()</code></a></p>
@@ -89,7 +89,7 @@ representing <em class="parameter"><code>data</code></em>.</td>
 <div class="refsect2">
 <a name="gst-rtsp-base64-decode-ip"></a><h3>gst_rtsp_base64_decode_ip ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtsp_base64_decode_ip           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *len</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> *len</code></em>);</pre>
 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
 <h3 class="title">Warning</h3>
 <p><code class="literal">gst_rtsp_base64_decode_ip</code> is deprecated and should not be used in newly-written code. use <a href="http://library.gnome.org/devel/glib/unstable/glib-Base64-Encoding.html#g-base64-decode-inplace"><code class="function">g_base64_decode_inplace()</code></a> instead.</p>
@@ -116,6 +116,6 @@ it will contain the length of the decoded data.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index fc2c377..a2c58dd 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspconnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspbase64.html" title="gstrtspbase64">
 <link rel="next" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -45,7 +45,7 @@
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-fd" title="gst_rtsp_connection_create_from_fd ()">gst_rtsp_connection_create_from_fd</a>  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *initial_buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-accept" title="gst_rtsp_connection_accept ()">gst_rtsp_connection_accept</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sock</code></em>,
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close" title="gst_rtsp_connection_close ()">gst_rtsp_connection_close</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free" title="gst_rtsp_connection_free ()">gst_rtsp_connection_free</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-read" title="gst_rtsp_connection_read ()">gst_rtsp_connection_read</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-write" title="gst_rtsp_connection_write ()">gst_rtsp_connection_write</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-poll" title="gst_rtsp_connection_poll ()">gst_rtsp_connection_poll</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
@@ -118,13 +118,13 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-message" title="gst_rtsp_watch_queue_message ()">gst_rtsp_watch_queue_message</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-data" title="gst_rtsp_watch_queue_data ()">gst_rtsp_watch_queue_data</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message" title="gst_rtsp_watch_send_message ()">gst_rtsp_watch_send_message</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" title="gst_rtsp_watch_write_data ()">gst_rtsp_watch_write_data</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);
 </pre>
@@ -186,7 +186,7 @@ A copy of <em class="parameter"><code>url</code></em> will be made.
 <a name="gst-rtsp-connection-create-from-fd"></a><h3>gst_rtsp_connection_create_from_fd ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_connection_create_from_fd  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *initial_buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);</pre>
 <p>
@@ -343,7 +343,7 @@ Close and free <em class="parameter"><code>conn</code></em>.
 <div class="refsect2">
 <a name="gst-rtsp-connection-read"></a><h3>gst_rtsp_connection_read ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_connection_read            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>
@@ -388,7 +388,7 @@ This function can be cancelled with <a class="link" href="gst-plugins-base-libs-
 <div class="refsect2">
 <a name="gst-rtsp-connection-write"></a><h3>gst_rtsp_connection_write ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_connection_write           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>
@@ -1276,7 +1276,7 @@ message_sent callback.
 <div class="refsect2">
 <a name="gst-rtsp-watch-queue-data"></a><h3>gst_rtsp_watch_queue_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_rtsp_watch_queue_data           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
 <h3 class="title">Warning</h3>
@@ -1363,7 +1363,7 @@ callback.
 <div class="refsect2">
 <a name="gst-rtsp-watch-write-data"></a><h3>gst_rtsp_watch_write_data ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_watch_write_data           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
 <p>
@@ -1416,6 +1416,6 @@ gstrtspurl
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 375053f..cf1fcc1 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspdefs</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
 <link rel="next" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -42,6 +42,7 @@
 
 #define             <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS" title="GST_RTSP_CHECK()">GST_RTSP_CHECK</a>                      (stmt,
                                                          label)
+#define             <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS" title="GST_RTSP_AUTH_MAX">GST_RTSP_AUTH_MAX</a>
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent">GstRTSPEvent</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult">GstRTSPResult</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily" title="enum GstRTSPFamily">GstRTSPFamily</a>;
@@ -49,16 +50,15 @@ enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion">GstRTSPVersion</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod">GstRTSPMethod</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod" title="enum GstRTSPAuthMethod">GstRTSPAuthMethod</a>;
-#define             <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS" title="GST_RTSP_AUTH_MAX">GST_RTSP_AUTH_MAX</a>
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField">GstRTSPHeaderField</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode">GstRTSPStatusCode</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult" title="gst_rtsp_strresult ()">gst_rtsp_strresult</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text" title="gst_rtsp_method_as_text ()">gst_rtsp_method_as_text</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text" title="gst_rtsp_version_as_text ()">gst_rtsp_version_as_text</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text" title="gst_rtsp_header_as_text ()">gst_rtsp_header_as_text</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult" title="gst_rtsp_strresult ()">gst_rtsp_strresult</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text" title="gst_rtsp_method_as_text ()">gst_rtsp_method_as_text</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text" title="gst_rtsp_version_as_text ()">gst_rtsp_version_as_text</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text" title="gst_rtsp_header_as_text ()">gst_rtsp_header_as_text</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple" title="gst_rtsp_header_allow_multiple ()">gst_rtsp_header_allow_multiple</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text" title="gst_rtsp_status_as_text ()">gst_rtsp_status_as_text</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()">gst_rtsp_options_as_text</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text" title="gst_rtsp_status_as_text ()">gst_rtsp_status_as_text</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()">gst_rtsp_options_as_text</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="returnvalue">GstRTSPHeaderField</span></a>  <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field" title="gst_rtsp_find_header_field ()">gst_rtsp_find_header_field</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method" title="gst_rtsp_find_method ()">gst_rtsp_find_method</a>                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method</code></em>);
 </pre>
@@ -96,6 +96,15 @@ not equal <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-RTSP-AUTH-MAX:CAPS"></a><h3>GST_RTSP_AUTH_MAX</h3>
+<pre class="programlisting">#define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
+</pre>
+<p>
+Strongest available authentication method
+</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstRTSPEvent"></a><h3>enum GstRTSPEvent</h3>
 <pre class="programlisting">typedef enum {
   GST_RTSP_EV_READ  = (1 &lt;&lt; 0),
@@ -497,178 +506,28 @@ Authentication methods, ordered by strength
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-RTSP-AUTH-MAX:CAPS"></a><h3>GST_RTSP_AUTH_MAX</h3>
-<pre class="programlisting">#define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
-</pre>
-<p>
-Strongest available authentication method
-</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstRTSPHeaderField"></a><h3>enum GstRTSPHeaderField</h3>
 <pre class="programlisting">typedef enum {
-  GST_RTSP_HDR_INVALID,
-
-  /*
-   * R = Request
-   * r = response
-   * g = general
-   * e = entity
-   */
-  GST_RTSP_HDR_ACCEPT,              /* Accept               R      opt.      entity */
-  GST_RTSP_HDR_ACCEPT_ENCODING,     /* Accept-Encoding      R      opt.      entity */
-  GST_RTSP_HDR_ACCEPT_LANGUAGE,     /* Accept-Language      R      opt.      all */
-  GST_RTSP_HDR_ALLOW,               /* Allow                r      opt.      all */
-  GST_RTSP_HDR_AUTHORIZATION,       /* Authorization        R      opt.      all */
-  GST_RTSP_HDR_BANDWIDTH,           /* Bandwidth            R      opt.      all */
-  GST_RTSP_HDR_BLOCKSIZE,           /* Blocksize            R      opt.      all but OPTIONS, TEARDOWN */
-  GST_RTSP_HDR_CACHE_CONTROL,       /* Cache-Control        g      opt.      SETUP */
-  GST_RTSP_HDR_CONFERENCE,          /* Conference           R      opt.      SETUP */
-  GST_RTSP_HDR_CONNECTION,          /* Connection           g      req.      all */
-  GST_RTSP_HDR_CONTENT_BASE,        /* Content-Base         e      opt.      entity */
-  GST_RTSP_HDR_CONTENT_ENCODING,    /* Content-Encoding     e      req.      SET_PARAMETER, DESCRIBE, ANNOUNCE */
-  GST_RTSP_HDR_CONTENT_LANGUAGE,    /* Content-Language     e      req.      DESCRIBE, ANNOUNCE */
-  GST_RTSP_HDR_CONTENT_LENGTH,      /* Content-Length       e      req.      SET_PARAMETER, ANNOUNCE, entity */
-  GST_RTSP_HDR_CONTENT_LOCATION,    /* Content-Location     e      opt.      entity */
-  GST_RTSP_HDR_CONTENT_TYPE,        /* Content-Type         e      req.      SET_PARAMETER, ANNOUNCE, entity */
-  GST_RTSP_HDR_CSEQ,                /* CSeq                 g      req.      all */
-  GST_RTSP_HDR_DATE,                /* Date                 g      opt.      all */
-  GST_RTSP_HDR_EXPIRES,             /* Expires              e      opt.      DESCRIBE, ANNOUNCE */
-  GST_RTSP_HDR_FROM,                /* From                 R      opt.      all */
-  GST_RTSP_HDR_IF_MODIFIED_SINCE,   /* If-Modified-Since    R      opt.      DESCRIBE, SETUP */
-  GST_RTSP_HDR_LAST_MODIFIED,       /* Last-Modified        e      opt.      entity */
-  GST_RTSP_HDR_PROXY_AUTHENTICATE,  /* Proxy-Authenticate */
-  GST_RTSP_HDR_PROXY_REQUIRE,       /* Proxy-Require        R      req.      all */
-  GST_RTSP_HDR_PUBLIC,              /* Public               r      opt.      all */
-  GST_RTSP_HDR_RANGE,               /* Range                Rr     opt.      PLAY, PAUSE, RECORD */
-  GST_RTSP_HDR_REFERER,             /* Referer              R      opt.      all */
-  GST_RTSP_HDR_REQUIRE,             /* Require              R      req.      all */
-  GST_RTSP_HDR_RETRY_AFTER,         /* Retry-After          r      opt.      all */
-  GST_RTSP_HDR_RTP_INFO,            /* RTP-Info             r      req.      PLAY */
-  GST_RTSP_HDR_SCALE,               /* Scale                Rr     opt.      PLAY, RECORD */
-  GST_RTSP_HDR_SESSION,             /* Session              Rr     req.      all but SETUP, OPTIONS */
-  GST_RTSP_HDR_SERVER,              /* Server               r      opt.      all */
-  GST_RTSP_HDR_SPEED,               /* Speed                Rr     opt.      PLAY */
-  GST_RTSP_HDR_TRANSPORT,           /* Transport            Rr     req.      SETUP */
-  GST_RTSP_HDR_UNSUPPORTED,         /* Unsupported          r      req.      all */
-  GST_RTSP_HDR_USER_AGENT,          /* User-Agent           R      opt.      all */
-  GST_RTSP_HDR_VIA,                 /* Via                  g      opt.      all */
-  GST_RTSP_HDR_WWW_AUTHENTICATE,    /* WWW-Authenticate     r      opt.      all */
-
-  /* Real extensions */
-  GST_RTSP_HDR_CLIENT_CHALLENGE,    /* ClientChallenge */
-  GST_RTSP_HDR_REAL_CHALLENGE1,     /* RealChallenge1 */
-  GST_RTSP_HDR_REAL_CHALLENGE2,     /* RealChallenge2 */
-  GST_RTSP_HDR_REAL_CHALLENGE3,     /* RealChallenge3 */
-  GST_RTSP_HDR_SUBSCRIBE,           /* Subscribe */
-  GST_RTSP_HDR_ALERT,               /* Alert */
-  GST_RTSP_HDR_CLIENT_ID,           /* ClientID */
-  GST_RTSP_HDR_COMPANY_ID,          /* CompanyID */
-  GST_RTSP_HDR_GUID,                /* GUID */
-  GST_RTSP_HDR_REGION_DATA,         /* RegionData */
-  GST_RTSP_HDR_MAX_ASM_WIDTH,       /* SupportsMaximumASMBandwidth */
-  GST_RTSP_HDR_LANGUAGE,            /* Language */
-  GST_RTSP_HDR_PLAYER_START_TIME,   /* PlayerStarttime */
-
-  /* Since 0.10.16 */
-  GST_RTSP_HDR_LOCATION,            /* Location */
-
-  /* Since 0.10.23 */
-  GST_RTSP_HDR_ETAG,                /* ETag */
-  GST_RTSP_HDR_IF_MATCH,            /* If-Match */
-
-  /* WM extensions [MS-RTSP] Since 0.10.23 */
-  GST_RTSP_HDR_ACCEPT_CHARSET,      /* Accept-Charset */
-  GST_RTSP_HDR_SUPPORTED,           /* Supported */
-  GST_RTSP_HDR_VARY,                /* Vary */
-  GST_RTSP_HDR_X_ACCELERATE_STREAMING,    /* X-Accelerate-Streaming */
-  GST_RTSP_HDR_X_ACCEPT_AUTHENT,    /* X-Accept-Authentication */
-  GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT,    /* X-Accept-Proxy-Authentication */
-  GST_RTSP_HDR_X_BROADCAST_ID,      /* X-Broadcast-Id */
-  GST_RTSP_HDR_X_BURST_STREAMING,   /* X-Burst-Streaming */
-  GST_RTSP_HDR_X_NOTICE,            /* X-Notice */
-  GST_RTSP_HDR_X_PLAYER_LAG_TIME,   /* X-Player-Lag-Time */
-  GST_RTSP_HDR_X_PLAYLIST,          /* X-Playlist */
-  GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE,  /* X-Playlist-Change-Notice */
-  GST_RTSP_HDR_X_PLAYLIST_GEN_ID,   /* X-Playlist-Gen-Id */
-  GST_RTSP_HDR_X_PLAYLIST_SEEK_ID,  /* X-Playlist-Seek-Id */
-  GST_RTSP_HDR_X_PROXY_CLIENT_AGENT,      /* X-Proxy-Client-Agent */
-  GST_RTSP_HDR_X_PROXY_CLIENT_VERB, /* X-Proxy-Client-Verb */
-  GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE, /* X-Receding-PlaylistChange */
-  GST_RTSP_HDR_X_RTP_INFO,          /* X-RTP-Info */
-  GST_RTSP_HDR_X_STARTUPPROFILE,    /* X-StartupProfile */
-
-  /* Since 0.10.24 */
-  GST_RTSP_HDR_TIMESTAMP,           /* Timestamp */
-
-  /* Since 0.10.25 */
-  GST_RTSP_HDR_AUTHENTICATION_INFO, /* Authentication-Info */
-  GST_RTSP_HDR_HOST,                /* Host */
-  GST_RTSP_HDR_PRAGMA,              /* Pragma */
-  GST_RTSP_HDR_X_SERVER_IP_ADDRESS, /* X-Server-IP-Address */
-  GST_RTSP_HDR_X_SESSIONCOOKIE,     /* X-Sessioncookie */
-
-  GST_RTSP_HDR_LAST
 } GstRTSPHeaderField;
 </pre>
+<p>
+Enumeration of rtsp header fields.
+</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTSPStatusCode"></a><h3>enum GstRTSPStatusCode</h3>
 <pre class="programlisting">typedef enum {
-  GST_RTSP_STS_INVALID                              = 0, 
-  GST_RTSP_STS_CONTINUE                             = 100, 
-  GST_RTSP_STS_OK                                   = 200, 
-  GST_RTSP_STS_CREATED                              = 201, 
-  GST_RTSP_STS_LOW_ON_STORAGE                       = 250, 
-  GST_RTSP_STS_MULTIPLE_CHOICES                     = 300, 
-  GST_RTSP_STS_MOVED_PERMANENTLY                    = 301, 
-  GST_RTSP_STS_MOVE_TEMPORARILY                     = 302, 
-  GST_RTSP_STS_SEE_OTHER                            = 303, 
-  GST_RTSP_STS_NOT_MODIFIED                         = 304, 
-  GST_RTSP_STS_USE_PROXY                            = 305, 
-  GST_RTSP_STS_BAD_REQUEST                          = 400, 
-  GST_RTSP_STS_UNAUTHORIZED                         = 401, 
-  GST_RTSP_STS_PAYMENT_REQUIRED                     = 402, 
-  GST_RTSP_STS_FORBIDDEN                            = 403, 
-  GST_RTSP_STS_NOT_FOUND                            = 404, 
-  GST_RTSP_STS_METHOD_NOT_ALLOWED                   = 405, 
-  GST_RTSP_STS_NOT_ACCEPTABLE                       = 406, 
-  GST_RTSP_STS_PROXY_AUTH_REQUIRED                  = 407, 
-  GST_RTSP_STS_REQUEST_TIMEOUT                      = 408, 
-  GST_RTSP_STS_GONE                                 = 410, 
-  GST_RTSP_STS_LENGTH_REQUIRED                      = 411, 
-  GST_RTSP_STS_PRECONDITION_FAILED                  = 412, 
-  GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE             = 413, 
-  GST_RTSP_STS_REQUEST_URI_TOO_LARGE                = 414, 
-  GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE               = 415, 
-  GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD             = 451, 
-  GST_RTSP_STS_CONFERENCE_NOT_FOUND                 = 452, 
-  GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH                 = 453, 
-  GST_RTSP_STS_SESSION_NOT_FOUND                    = 454, 
-  GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE       = 455, 
-  GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE  = 456, 
-  GST_RTSP_STS_INVALID_RANGE                        = 457, 
-  GST_RTSP_STS_PARAMETER_IS_READONLY                = 458, 
-  GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED      = 459, 
-  GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED     = 460, 
-  GST_RTSP_STS_UNSUPPORTED_TRANSPORT                = 461, 
-  GST_RTSP_STS_DESTINATION_UNREACHABLE              = 462, 
-  GST_RTSP_STS_INTERNAL_SERVER_ERROR                = 500, 
-  GST_RTSP_STS_NOT_IMPLEMENTED                      = 501, 
-  GST_RTSP_STS_BAD_GATEWAY                          = 502, 
-  GST_RTSP_STS_SERVICE_UNAVAILABLE                  = 503, 
-  GST_RTSP_STS_GATEWAY_TIMEOUT                      = 504, 
-  GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED           = 505, 
-  GST_RTSP_STS_OPTION_NOT_SUPPORTED                 = 551
 } GstRTSPStatusCode;
 </pre>
+<p>
+Enumeration of rtsp status codes.
+</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-strresult"></a><h3>gst_rtsp_strresult ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              gst_rtsp_strresult                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_rtsp_strresult                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>result</code></em> in a human readable string.
 </p>
@@ -690,7 +549,7 @@ Convert <em class="parameter"><code>result</code></em> in a human readable strin
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-method-as-text"></a><h3>gst_rtsp_method_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        gst_rtsp_method_as_text            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_rtsp_method_as_text             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>method</code></em> to a string.
 </p>
@@ -712,7 +571,7 @@ Convert <em class="parameter"><code>method</code></em> to a string.
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-version-as-text"></a><h3>gst_rtsp_version_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        gst_rtsp_version_as_text           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_rtsp_version_as_text            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>version</code></em> to a string.
 </p>
@@ -734,7 +593,7 @@ Convert <em class="parameter"><code>version</code></em> to a string.
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-header-as-text"></a><h3>gst_rtsp_header_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        gst_rtsp_header_as_text            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_rtsp_header_as_text             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>field</code></em> to a string.
 </p>
@@ -780,7 +639,7 @@ Check whether <em class="parameter"><code>field</code></em> may appear multiple
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-status-as-text"></a><h3>gst_rtsp_status_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *        gst_rtsp_status_as_text            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_rtsp_status_as_text             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>code</code></em> to a string.
 </p>
@@ -802,7 +661,7 @@ Convert <em class="parameter"><code>code</code></em> to a string.
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-options-as-text"></a><h3>gst_rtsp_options_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              gst_rtsp_options_as_text           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_rtsp_options_as_text            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>options</code></em> to a string.
 </p>
@@ -874,6 +733,6 @@ gstrtspurl, gstrtspconnection
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b93fcc6..bb07c82 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspextension</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
 <link rel="next" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstrtspextension
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11962528"></a><p>
+<a name="idp11883136"></a><p>
  This interface is implemented e.g. by the Windows Media Streaming RTSP
  exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
 </p>
@@ -99,6 +99,6 @@ Last reviewed on 2007-07-25 (0.10.14)
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b3db136..6ed8e25 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspmessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
 <link rel="next" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,11 +70,11 @@ struct              <a class="link" href="gst-plugins-base-libs-gstrtspmessage.h
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **reason</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> *version</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-data" title="gst_rtsp_message_new_data ()">gst_rtsp_message_new_data</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data" title="gst_rtsp_message_init_data ()">gst_rtsp_message_init_data</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-data" title="gst_rtsp_message_parse_data ()">gst_rtsp_message_parse_data</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> *channel</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header" title="gst_rtsp_message_add_header ()">gst_rtsp_message_add_header</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
@@ -91,16 +91,16 @@ struct              <a class="link" href="gst-plugins-base-libs-gstrtspmessage.h
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers" title="gst_rtsp_message_append_headers ()">gst_rtsp_message_append_headers</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *str</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body" title="gst_rtsp_message_set_body ()">gst_rtsp_message_set_body</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body" title="gst_rtsp_message_take_body ()">gst_rtsp_message_take_body</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-body" title="gst_rtsp_message_get_body ()">gst_rtsp_message_get_body</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-steal-body" title="gst_rtsp_message_steal_body ()">gst_rtsp_message_steal_body</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-dump" title="gst_rtsp_message_dump ()">gst_rtsp_message_dump</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);
 </pre>
@@ -117,8 +117,7 @@ Last reviewed on 2007-07-25 (0.10.14)
 <a name="gst-plugins-base-libs-gstrtspmessage.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstRTSPMsgType"></a><h3>enum GstRTSPMsgType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_RTSP_MESSAGE_INVALID,
   GST_RTSP_MESSAGE_REQUEST,
   GST_RTSP_MESSAGE_RESPONSE,
@@ -186,6 +185,7 @@ The type of a message.
     struct {
       guint8             channel;
     } data;
+  } type_data;
 };
 </pre>
 <p>
@@ -562,7 +562,7 @@ value.
 <div class="refsect2">
 <a name="gst-rtsp-message-new-data"></a><h3>gst_rtsp_message_new_data ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_new_data           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);</pre>
 <p>
 Create a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>channel</code></em> and store the
 result message in <em class="parameter"><code>msg</code></em>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.
@@ -590,7 +590,7 @@ result message in <em class="parameter"><code>msg</code></em>. Free with <a clas
 <div class="refsect2">
 <a name="gst-rtsp-message-init-data"></a><h3>gst_rtsp_message_init_data ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_init_data          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);</pre>
 <p>
 Initialize a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> for <em class="parameter"><code>channel</code></em>.
 </p>
@@ -617,7 +617,7 @@ Initialize a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage
 <div class="refsect2">
 <a name="gst-rtsp-message-parse-data"></a><h3>gst_rtsp_message_parse_data ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_parse_data         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> *channel</code></em>);</pre>
 <p>
 Parse the data message <em class="parameter"><code>msg</code></em> and store the channel in <em class="parameter"><code>channel</code></em>.
 </p>
@@ -817,7 +817,7 @@ for transmission.
 <div class="refsect2">
 <a name="gst-rtsp-message-set-body"></a><h3>gst_rtsp_message_set_body ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_set_body           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Set the body of <em class="parameter"><code>msg</code></em> to a copy of <em class="parameter"><code>data</code></em>.
@@ -851,7 +851,7 @@ Set the body of <em class="parameter"><code>msg</code></em> to a copy of <em cla
 <div class="refsect2">
 <a name="gst-rtsp-message-take-body"></a><h3>gst_rtsp_message_take_body ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_take_body          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Set the body of <em class="parameter"><code>msg</code></em> to <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>. This method takes ownership of
@@ -886,7 +886,7 @@ Set the body of <em class="parameter"><code>msg</code></em> to <em class="parame
 <div class="refsect2">
 <a name="gst-rtsp-message-get-body"></a><h3>gst_rtsp_message_get_body ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_get_body           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
 <p>
 Get the body of <em class="parameter"><code>msg</code></em>. <em class="parameter"><code>data</code></em> remains valid for as long as <em class="parameter"><code>msg</code></em> is valid and
@@ -921,7 +921,7 @@ unchanged.
 <div class="refsect2">
 <a name="gst-rtsp-message-steal-body"></a><h3>gst_rtsp_message_steal_body ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_message_steal_body         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
 <p>
 Take the body of <em class="parameter"><code>msg</code></em> and store it in <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>. After this method,
@@ -983,6 +983,6 @@ gstrtspconnection
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 2561b6b..9cf828b 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtsprange</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
 <link rel="next" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,8 +62,7 @@ Last reviewed on 2007-07-25 (0.10.14)
 <a name="gst-plugins-base-libs-gstrtsprange.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstRTSPRangeUnit"></a><h3>enum GstRTSPRangeUnit</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_RTSP_RANGE_SMPTE,
   GST_RTSP_RANGE_SMPTE_30_DROP,
   GST_RTSP_RANGE_SMPTE_25,
@@ -249,7 +248,7 @@ Convert <em class="parameter"><code>range</code></em> into a string representati
 <a name="gst-rtsp-range-free"></a><h3>gst_rtsp_range_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtsp_range_free                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
 <p>
-Free the memory alocated by <em class="parameter"><code>range</code></em>.
+Free the memory allocated by <em class="parameter"><code>range</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -264,6 +263,6 @@ Free the memory alocated by <em class="parameter"><code>range</code></em>.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index faf38d8..10213ca 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtsptransport</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
 <link rel="next" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,7 +49,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstrtsptransport
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init" title="gst_rtsp_transport_init ()">gst_rtsp_transport_init</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-parse" title="gst_rtsp_transport_parse ()">gst_rtsp_transport_parse</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text" title="gst_rtsp_transport_as_text ()">gst_rtsp_transport_as_text</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text" title="gst_rtsp_transport_as_text ()">gst_rtsp_transport_as_text</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime" title="gst_rtsp_transport_get_mime ()">gst_rtsp_transport_get_mime</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **mime</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-manager" title="gst_rtsp_transport_get_manager ()">gst_rtsp_transport_get_manager</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</code></em>,
@@ -375,7 +375,7 @@ Parse the RTSP transport string <em class="parameter"><code>str</code></em> into
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-transport-as-text"></a><h3>gst_rtsp_transport_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              gst_rtsp_transport_as_text         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_rtsp_transport_as_text          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>transport</code></em> into a string that can be used to signal the transport in
 an RTSP SETUP response.
@@ -432,8 +432,7 @@ used to generate <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/he
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **manager</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> option</code></em>);</pre>
 <p>
-Get the <span class="type">GStreamer</span> element that can handle the buffers transported over
-<em class="parameter"><code>trans</code></em>.
+Get the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> that can handle the buffers transported over <em class="parameter"><code>trans</code></em>.
 </p>
 <p>
 It is possible that there are several managers available, use <em class="parameter"><code>option</code></em> to
@@ -494,6 +493,6 @@ Free the memory used by <em class="parameter"><code>transport</code></em>.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index fc2e5d2..6f4a114 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspurl</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
 <link rel="next" href="gstreamer-sdp.html" title="SDP Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 struct              <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl">GstRTSPUrl</a>;
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-parse" title="gst_rtsp_url_parse ()">gst_rtsp_url_parse</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *urlstr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> **url</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *         <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-copy" title="gst_rtsp_url_copy ()">gst_rtsp_url_copy</a>                  (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *        <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-copy" title="gst_rtsp_url_copy ()">gst_rtsp_url_copy</a>                   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()">gst_rtsp_url_free</a>                   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri" title="gst_rtsp_url_get_request_uri ()">gst_rtsp_url_get_request_uri</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri" title="gst_rtsp_url_get_request_uri ()">gst_rtsp_url_get_request_uri</a>        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port" title="gst_rtsp_url_set_port ()">gst_rtsp_url_set_port</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port" title="gst_rtsp_url_get_port ()">gst_rtsp_url_get_port</a>               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components" title="gst_rtsp_url_decode_path_components ()">gst_rtsp_url_decode_path_components</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
 </pre>
 </div>
@@ -113,7 +113,7 @@ This structure contains the result of a parsed RTSP URL
 <td>the host</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstRTSPUrl.port"></a>port</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstRTSPUrl.port"></a>port</code></em>;</span></p></td>
 <td>the port</td>
 </tr>
 <tr>
@@ -157,7 +157,7 @@ with <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-fr
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-copy"></a><h3>gst_rtsp_url_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *         gst_rtsp_url_copy                  (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *        gst_rtsp_url_copy                   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
 <p>
 Make a copy of <em class="parameter"><code>url</code></em>.
 </p>
@@ -196,7 +196,7 @@ Free the memory used by <em class="parameter"><code>url</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-get-request-uri"></a><h3>gst_rtsp_url_get_request_uri ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *              gst_rtsp_url_get_request_uri       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_rtsp_url_get_request_uri        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
 <p>
 Get a newly allocated string describing the request URI for <em class="parameter"><code>url</code></em>.
 </p>
@@ -219,7 +219,7 @@ Get a newly allocated string describing the request URI for <em class="parameter
 <div class="refsect2">
 <a name="gst-rtsp-url-set-port"></a><h3>gst_rtsp_url_set_port ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_url_set_port               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
 <p>
 Set the port number in <em class="parameter"><code>url</code></em> to <em class="parameter"><code>port</code></em>.
 </p>
@@ -247,7 +247,7 @@ Set the port number in <em class="parameter"><code>url</code></em> to <em class=
 <div class="refsect2">
 <a name="gst-rtsp-url-get-port"></a><h3>gst_rtsp_url_get_port ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       gst_rtsp_url_get_port               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
 <p>
 Get the port number of <em class="parameter"><code>url</code></em>.
 </p>
@@ -280,10 +280,10 @@ Splits the path of <em class="parameter"><code>url</code></em> on '/' boundaries
 </p>
 <p>
 The decoding performed by this routine is "URI decoding", as defined in RFC
-3986, commonly known as percent-decoding. For example, a string "foo<code class="literal">2fbar</code>"
-will decode to "foo/bar" -- the <code class="literal">2f</code> being replaced by the corresponding byte
+3986, commonly known as percent-decoding. For example, a string "foo%2fbar"
+will decode to "foo/bar" -- the %2f being replaced by the corresponding byte
 with hex value 0x2f. Note that there is no guarantee that the resulting byte
-sequence is valid in any given encoding. As a special case, <code class="literal">00</code> is not
+sequence is valid in any given encoding. As a special case, %00 is not
 unescaped to NUL, as that would prematurely terminate the string.
 </p>
 <p>
@@ -310,6 +310,6 @@ will usually be the empty string.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a125425..be56c39 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstsdpmessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-sdp.html" title="SDP Library">
 <link rel="prev" href="gstreamer-sdp.html" title="SDP Library">
 <link rel="next" href="gstreamer-tag.html" title="Tag Support Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,21 +60,21 @@ enum                <a class="link" href="gst-plugins-base-libs-gstsdpmessage.ht
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init" title="gst_sdp_message_init ()">gst_sdp_message_init</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-uninit" title="gst_sdp_message_uninit ()">gst_sdp_message_uninit</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-free" title="gst_sdp_message_free ()">gst_sdp_message_free</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-buffer" title="gst_sdp_message_parse_buffer ()">gst_sdp_message_parse_buffer</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-buffer" title="gst_sdp_message_parse_buffer ()">gst_sdp_message_parse_buffer</a>        (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *                   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text" title="gst_sdp_message_as_text ()">gst_sdp_message_as_text</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text" title="gst_sdp_message_as_text ()">gst_sdp_message_as_text</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-uri" title="gst_sdp_message_parse_uri ()">gst_sdp_message_parse_uri</a>           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *                   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri" title="gst_sdp_message_as_uri ()">gst_sdp_message_as_uri</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri" title="gst_sdp_message_as_uri ()">gst_sdp_message_as_uri</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-address-is-multicast" title="gst_sdp_address_is_multicast ()">gst_sdp_address_is_multicast</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version" title="gst_sdp_message_get_version ()">gst_sdp_message_get_version</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version" title="gst_sdp_message_get_version ()">gst_sdp_message_get_version</a>         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-version" title="gst_sdp_message_set_version ()">gst_sdp_message_set_version</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *version</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> *      <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-origin" title="gst_sdp_message_get_origin ()">gst_sdp_message_get_origin</a>    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-origin" title="gst_sdp_message_get_origin ()">gst_sdp_message_get_origin</a>         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-origin" title="gst_sdp_message_set_origin ()">gst_sdp_message_set_origin</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *sess_id</code></em>,
@@ -82,29 +82,26 @@ const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigi
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name" title="gst_sdp_message_get_session_name ()">gst_sdp_message_get_session_name</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name" title="gst_sdp_message_get_session_name ()">gst_sdp_message_get_session_name</a>    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-session-name" title="gst_sdp_message_set_session_name ()">gst_sdp_message_set_session_name</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *session_name</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information" title="gst_sdp_message_get_information ()">gst_sdp_message_get_information</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information" title="gst_sdp_message_get_information ()">gst_sdp_message_get_information</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-information" title="gst_sdp_message_set_information ()">gst_sdp_message_set_information</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri" title="gst_sdp_message_get_uri ()">gst_sdp_message_get_uri</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri" title="gst_sdp_message_get_uri ()">gst_sdp_message_get_uri</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri" title="gst_sdp_message_set_uri ()">gst_sdp_message_set_uri</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len" title="gst_sdp_message_emails_len ()">gst_sdp_message_emails_len</a>          (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email" title="gst_sdp_message_get_email ()">gst_sdp_message_get_email</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email" title="gst_sdp_message_get_email ()">gst_sdp_message_get_email</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email" title="gst_sdp_message_add_email ()">gst_sdp_message_add_email</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len" title="gst_sdp_message_phones_len ()">gst_sdp_message_phones_len</a>          (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone" title="gst_sdp_message_get_phone ()">gst_sdp_message_get_phone</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone" title="gst_sdp_message_get_phone ()">gst_sdp_message_get_phone</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone" title="gst_sdp_message_add_phone ()">gst_sdp_message_add_phone</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection" title="gst_sdp_message_get_connection ()">gst_sdp_message_get_connection</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection" title="gst_sdp_message_get_connection ()">gst_sdp_message_get_connection</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection" title="gst_sdp_message_set_connection ()">gst_sdp_message_set_connection</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
@@ -112,43 +109,41 @@ const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConne
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len" title="gst_sdp_message_bandwidths_len ()">gst_sdp_message_bandwidths_len</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth" title="gst_sdp_message_get_bandwidth ()">gst_sdp_message_get_bandwidth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth" title="gst_sdp_message_get_bandwidth ()">gst_sdp_message_get_bandwidth</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth" title="gst_sdp_message_add_bandwidth ()">gst_sdp_message_add_bandwidth</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len" title="gst_sdp_message_times_len ()">gst_sdp_message_times_len</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time" title="gst_sdp_message_get_time ()">gst_sdp_message_get_time</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time" title="gst_sdp_message_get_time ()">gst_sdp_message_get_time</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time" title="gst_sdp_message_add_time ()">gst_sdp_message_add_time</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len" title="gst_sdp_message_zones_len ()">gst_sdp_message_zones_len</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone" title="gst_sdp_message_get_zone ()">gst_sdp_message_get_zone</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone" title="gst_sdp_message_get_zone ()">gst_sdp_message_get_zone</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone" title="gst_sdp_message_add_zone ()">gst_sdp_message_add_zone</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *         <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key" title="gst_sdp_message_get_key ()">gst_sdp_message_get_key</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key" title="gst_sdp_message_get_key ()">gst_sdp_message_get_key</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key" title="gst_sdp_message_set_key ()">gst_sdp_message_set_key</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-len" title="gst_sdp_message_attributes_len ()">gst_sdp_message_attributes_len</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute" title="gst_sdp_message_get_attribute ()">gst_sdp_message_get_attribute</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute" title="gst_sdp_message_get_attribute ()">gst_sdp_message_get_attribute</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val" title="gst_sdp_message_get_attribute_val ()">gst_sdp_message_get_attribute_val</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val" title="gst_sdp_message_get_attribute_val ()">gst_sdp_message_get_attribute_val</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n" title="gst_sdp_message_get_attribute_val_n ()">gst_sdp_message_get_attribute_val_n</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n" title="gst_sdp_message_get_attribute_val_n ()">gst_sdp_message_get_attribute_val_n</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute" title="gst_sdp_message_add_attribute ()">gst_sdp_message_add_attribute</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len" title="gst_sdp_message_medias_len ()">gst_sdp_message_medias_len</a>          (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media" title="gst_sdp_message_get_media ()">gst_sdp_message_get_media</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media" title="gst_sdp_message_get_media ()">gst_sdp_message_get_media</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-media" title="gst_sdp_message_add_media ()">gst_sdp_message_add_media</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
@@ -157,7 +152,7 @@ const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()">gst_sdp_media_init</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit" title="gst_sdp_media_uninit ()">gst_sdp_media_uninit</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free" title="gst_sdp_media_free ()">gst_sdp_media_free</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media" title="gst_sdp_media_get_media ()">gst_sdp_media_get_media</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media" title="gst_sdp_media_get_media ()">gst_sdp_media_get_media</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media" title="gst_sdp_media_set_media ()">gst_sdp_media_set_media</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *med</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port" title="gst_sdp_media_get_port ()">gst_sdp_media_get_port</a>              (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
@@ -165,19 +160,19 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-port-info" title="gst_sdp_media_set_port_info ()">gst_sdp_media_set_port_info</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_ports</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto" title="gst_sdp_media_get_proto ()">gst_sdp_media_get_proto</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto" title="gst_sdp_media_get_proto ()">gst_sdp_media_get_proto</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto" title="gst_sdp_media_set_proto ()">gst_sdp_media_set_proto</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *proto</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len" title="gst_sdp_media_formats_len ()">gst_sdp_media_formats_len</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format" title="gst_sdp_media_get_format ()">gst_sdp_media_get_format</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format" title="gst_sdp_media_get_format ()">gst_sdp_media_get_format</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format" title="gst_sdp_media_add_format ()">gst_sdp_media_add_format</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information" title="gst_sdp_media_get_information ()">gst_sdp_media_get_information</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information" title="gst_sdp_media_get_information ()">gst_sdp_media_get_information</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information" title="gst_sdp_media_set_information ()">gst_sdp_media_set_information</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len" title="gst_sdp_media_connections_len ()">gst_sdp_media_connections_len</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection" title="gst_sdp_media_get_connection ()">gst_sdp_media_get_connection</a>  (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection" title="gst_sdp_media_get_connection ()">gst_sdp_media_get_connection</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection" title="gst_sdp_media_add_connection ()">gst_sdp_media_add_connection</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
@@ -186,29 +181,27 @@ const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConne
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len" title="gst_sdp_media_bandwidths_len ()">gst_sdp_media_bandwidths_len</a>        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth" title="gst_sdp_media_get_bandwidth ()">gst_sdp_media_get_bandwidth</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth" title="gst_sdp_media_get_bandwidth ()">gst_sdp_media_get_bandwidth</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth" title="gst_sdp_media_add_bandwidth ()">gst_sdp_media_add_bandwidth</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *         <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key" title="gst_sdp_media_get_key ()">gst_sdp_media_get_key</a>         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key" title="gst_sdp_media_get_key ()">gst_sdp_media_get_key</a>               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key" title="gst_sdp_media_set_key ()">gst_sdp_media_set_key</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-len" title="gst_sdp_media_attributes_len ()">gst_sdp_media_attributes_len</a>        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute" title="gst_sdp_media_get_attribute ()">gst_sdp_media_get_attribute</a>    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute" title="gst_sdp_media_get_attribute ()">gst_sdp_media_get_attribute</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val" title="gst_sdp_media_get_attribute_val ()">gst_sdp_media_get_attribute_val</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val" title="gst_sdp_media_get_attribute_val ()">gst_sdp_media_get_attribute_val</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n" title="gst_sdp_media_get_attribute_val_n ()">gst_sdp_media_get_attribute_val_n</a>
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n" title="gst_sdp_media_get_attribute_val_n ()">gst_sdp_media_get_attribute_val_n</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute" title="gst_sdp_media_add_attribute ()">gst_sdp_media_add_attribute</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *                   <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a>         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a>               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -216,7 +209,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25276480"></a><p>
+<a name="idp26359712"></a><p>
 The GstSDPMessage helper functions makes it easy to parse and create SDP
 messages.
 </p>
@@ -793,7 +786,7 @@ allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gs
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-parse-buffer"></a><h3>gst_sdp_message_parse_buffer ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_parse_buffer        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_parse_buffer        (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
@@ -827,7 +820,7 @@ Parse the contents of <em class="parameter"><code>size</code></em> bytes pointed
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-as-text"></a><h3>gst_sdp_message_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *                   gst_sdp_message_as_text       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_as_text             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Convert the contents of <em class="parameter"><code>msg</code></em> to a text string.
 </p>
@@ -889,7 +882,7 @@ The uri should be of the form:
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-as-uri"></a><h3>gst_sdp_message_as_uri ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *                   gst_sdp_message_as_uri        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_as_uri              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Creates a uri from <em class="parameter"><code>msg</code></em> with the given <em class="parameter"><code>scheme</code></em>. The uri has the format:
@@ -955,7 +948,7 @@ Check if the given <em class="parameter"><code>addr</code></em> is a multicast a
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-version"></a><h3>gst_sdp_message_get_version ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_version   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_version         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the version in <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1004,7 +997,7 @@ Set the version in <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-origin"></a><h3>gst_sdp_message_get_origin ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> *      gst_sdp_message_get_origin    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> * gst_sdp_message_get_origin         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the origin of <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1079,8 +1072,7 @@ Configure the SDP origin in <em class="parameter"><code>msg</code></em> with the
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-session-name"></a><h3>gst_sdp_message_get_session_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_session_name
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_session_name    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the session name in <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1129,8 +1121,7 @@ Set the session name in <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-information"></a><h3>gst_sdp_message_get_information ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_information
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_information     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the information in <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1179,7 +1170,7 @@ Set the information in <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-uri"></a><h3>gst_sdp_message_get_uri ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_uri       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_uri             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the URI in <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1250,7 +1241,7 @@ Get the number of emails in <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-email"></a><h3>gst_sdp_message_get_email ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_email     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_email           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the email with number <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
@@ -1326,7 +1317,7 @@ Get the number of phones in <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-phone"></a><h3>gst_sdp_message_get_phone ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_phone     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_phone           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the phone with number <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
@@ -1380,8 +1371,7 @@ Add <em class="parameter"><code>phone</code></em> to the list of phones in <em c
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-connection"></a><h3>gst_sdp_message_get_connection ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *  gst_sdp_message_get_connection
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * gst_sdp_message_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the connection of <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1473,7 +1463,7 @@ Get the number of bandwidth information in <em class="parameter"><code>msg</code
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-bandwidth"></a><h3>gst_sdp_message_get_bandwidth ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *   gst_sdp_message_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * gst_sdp_message_get_bandwidth   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the bandwidth at index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
@@ -1554,7 +1544,7 @@ Get the number of time information entries in <em class="parameter"><code>msg</c
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-time"></a><h3>gst_sdp_message_get_time ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *        gst_sdp_message_get_time      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *  gst_sdp_message_get_time            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get time information with index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
@@ -1640,7 +1630,7 @@ Get the number of time zone information entries in <em class="parameter"><code>m
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-zone"></a><h3>gst_sdp_message_get_zone ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *        gst_sdp_message_get_zone      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *  gst_sdp_message_get_zone            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get time zone information with index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
@@ -1699,7 +1689,7 @@ Add time zone information to <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-key"></a><h3>gst_sdp_message_get_key ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *         gst_sdp_message_get_key       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *   gst_sdp_message_get_key             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>
 Get the encryption information from <em class="parameter"><code>msg</code></em>.
 </p>
@@ -1775,7 +1765,7 @@ Get the number of attributes in <em class="parameter"><code>msg</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-attribute"></a><h3>gst_sdp_message_get_attribute ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *   gst_sdp_message_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * gst_sdp_message_get_attribute   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the attribute at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>msg</code></em>.
@@ -1802,8 +1792,7 @@ Get the attribute at position <em class="parameter"><code>idx</code></em> in <em
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-attribute-val"></a><h3>gst_sdp_message_get_attribute_val ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_attribute_val
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_attribute_val   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
 <p>
 Get the first attribute with key <em class="parameter"><code>key</code></em> in <em class="parameter"><code>msg</code></em>.
@@ -1830,8 +1819,7 @@ Get the first attribute with key <em class="parameter"><code>key</code></em> in
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-attribute-val-n"></a><h3>gst_sdp_message_get_attribute_val_n ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_message_get_attribute_val_n
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_message_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>
@@ -1918,7 +1906,7 @@ Get the number of media descriptions in <em class="parameter"><code>msg</code></
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-media"></a><h3>gst_sdp_message_get_media ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> *       gst_sdp_message_get_media     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> * gst_sdp_message_get_media           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the media description at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>msg</code></em>.
@@ -1950,7 +1938,7 @@ Get the media description at index <em class="parameter"><code>idx</code></em> i
 <p>
 Adds <em class="parameter"><code>media</code></em> to the array of medias in <em class="parameter"><code>msg</code></em>. This function takes ownership of
 the contents of <em class="parameter"><code>media</code></em> so that <em class="parameter"><code>media</code></em> will have to be reinitialized with
-<code class="function">gst_media_init()</code> before it can be used again.
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a> before it can be used again.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2094,7 +2082,7 @@ allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gs
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-media"></a><h3>gst_sdp_media_get_media ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_get_media       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_media_get_media             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>
 Get the media description of <em class="parameter"><code>media</code></em>.
 </p>
@@ -2221,7 +2209,7 @@ Set the port information in <em class="parameter"><code>media</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-proto"></a><h3>gst_sdp_media_get_proto ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_get_proto       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_media_get_proto             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>
 Get the transport protocol of <em class="parameter"><code>media</code></em>
 </p>
@@ -2293,7 +2281,7 @@ Get the number of formats in <em class="parameter"><code>media</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-format"></a><h3>gst_sdp_media_get_format ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_get_format      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_media_get_format            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the format information at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
@@ -2348,7 +2336,7 @@ Add the format information to <em class="parameter"><code>media</code></em>.
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-information"></a><h3>gst_sdp_media_get_information ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_media_get_information       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>
 Get the information of <em class="parameter"><code>media</code></em>
 </p>
@@ -2420,7 +2408,7 @@ Get the number of connection fields in <em class="parameter"><code>media</code><
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-connection"></a><h3>gst_sdp_media_get_connection ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *  gst_sdp_media_get_connection  (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * gst_sdp_media_get_connection   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the connection at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
@@ -2517,7 +2505,7 @@ Get the number of bandwidth fields in <em class="parameter"><code>media</code></
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-bandwidth"></a><h3>gst_sdp_media_get_bandwidth ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *   gst_sdp_media_get_bandwidth   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * gst_sdp_media_get_bandwidth     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the bandwidth at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
@@ -2577,7 +2565,7 @@ Add the bandwidth information with <em class="parameter"><code>bwtype</code></em
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-key"></a><h3>gst_sdp_media_get_key ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *         gst_sdp_media_get_key         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *   gst_sdp_media_get_key               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>
 Get the encryption information from <em class="parameter"><code>media</code></em>.
 </p>
@@ -2653,7 +2641,7 @@ Get the number of attribute fields in <em class="parameter"><code>media</code></
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-attribute"></a><h3>gst_sdp_media_get_attribute ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *  gst_sdp_media_get_attribute    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * gst_sdp_media_get_attribute     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Get the attribute at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
@@ -2680,8 +2668,7 @@ Get the attribute at position <em class="parameter"><code>idx</code></em> in <em
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-attribute-val"></a><h3>gst_sdp_media_get_attribute_val ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_get_attribute_val
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_media_get_attribute_val     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
 <p>
 Get the first attribute value for <em class="parameter"><code>key</code></em> in <em class="parameter"><code>media</code></em>.
@@ -2708,8 +2695,7 @@ Get the first attribute value for <em class="parameter"><code>key</code></em> in
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-attribute-val-n"></a><h3>gst_sdp_media_get_attribute_val_n ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_get_attribute_val_n
-                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_sdp_media_get_attribute_val_n   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>
@@ -2774,7 +2760,7 @@ Add the attribute with <em class="parameter"><code>key</code></em> and <em class
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-as-text"></a><h3>gst_sdp_media_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *                   gst_sdp_media_as_text         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_sdp_media_as_text               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>
 Convert the contents of <em class="parameter"><code>media</code></em> to a text string.
 </p>
@@ -2797,6 +2783,6 @@ Convert the contents of <em class="parameter"><code>media</code></em> to a text
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4e7edc0..8761229 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gststreamvolume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">
 <link rel="next" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,7 +86,7 @@ GstStreamVolume requires
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13350128"></a><p>
+<a name="idp15191264"></a><p>
 This interface is implemented by elements that provide a stream volume. Examples for
 such elements are <span class="type">volume</span> and <span class="type">playbin2</span>.
 </p>
@@ -127,7 +127,7 @@ The volume property is defined to be a linear volume factor.
 } GstStreamVolumeFormat;
 </pre>
 <p>
-Different representations of a stream volume. <code class="function">gst_stream_volume_convert()</code>
+Different representations of a stream volume. <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>
 allows to convert between the different representations.
 </p>
 <p>
@@ -303,6 +303,6 @@ cbrt(val) and 20 * log10 (val).
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 61371ab..46eac17 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="next" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 #define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS" title="GST_TAG_CAPTURING_FLASH_MODE">GST_TAG_CAPTURING_FLASH_MODE</a>
 #define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS" title="GST_TAG_CAPTURING_METERING_MODE">GST_TAG_CAPTURING_METERING_MODE</a>
 #define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS" title="GST_TAG_CAPTURING_SOURCE">GST_TAG_CAPTURING_SOURCE</a>
+#define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" title="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION">GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</a>
 #define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS" title="GST_TAG_IMAGE_HORIZONTAL_PPI">GST_TAG_IMAGE_HORIZONTAL_PPI</a>
 #define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS" title="GST_TAG_IMAGE_VERTICAL_PPI">GST_TAG_IMAGE_VERTICAL_PPI</a>
+#define             <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE">GST_TAG_ID3V2_HEADER_SIZE</a>
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags" title="gst_tag_register_musicbrainz_tags ()">gst_tag_register_musicbrainz_tags</a>   (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8" title="gst_tag_freeform_string_to_utf8 ()">gst_tag_freeform_string_to_utf8</a>     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
@@ -82,7 +84,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **lang</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fail_if_no_key</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer" title="gst_tag_image_data_to_image_buffer ()">gst_tag_image_data_to_image_buffer</a>  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer" title="gst_tag_image_data_to_image_buffer ()">gst_tag_image_data_to_image_buffer</a>  (<em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType"><span class="type">GstTagImageType</span></a> image_type</code></em>);
 enum                <a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType">GstTagImageType</a>;
@@ -93,7 +95,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gsttag.html#GstT
 <p>
 </p>
 <div class="refsect2">
-<a name="idp24834784"></a><p>
+<a name="idp26027584"></a><p>
 Contains additional standardized GStreamer tag definitions for plugins
 and applications, and functions to register them with the GStreamer
 tag system.
@@ -500,6 +502,16 @@ Allowed values are:
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS"></a><h3>GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</h3>
+<pre class="programlisting">#define GST_TAG_CAPTURING_EXPOSURE_COMPENSATION "capturing-exposure-compensation"
+</pre>
+<p>
+Exposure compensation using when capturing an image in EV. (double)
+</p>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS"></a><h3>GST_TAG_IMAGE_HORIZONTAL_PPI</h3>
 <pre class="programlisting">#define GST_TAG_IMAGE_HORIZONTAL_PPI         "image-horizontal-ppi"
 </pre>
@@ -520,6 +532,17 @@ Media (image/video) intended vertical pixel density in ppi. (double)
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-TAG-ID3V2-HEADER-SIZE:CAPS"></a><h3>GST_TAG_ID3V2_HEADER_SIZE</h3>
+<pre class="programlisting">#define GST_TAG_ID3V2_HEADER_SIZE            10
+</pre>
+<p>
+ID3V2 header size considered minimum input for some functions such as
+<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()"><code class="function">gst_tag_list_from_id3v2_tag()</code></a> and <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()"><code class="function">gst_tag_get_id3v2_tag_size()</code></a> for example.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-tag-register-musicbrainz-tags"></a><h3>gst_tag_register_musicbrainz_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_register_musicbrainz_tags   (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
@@ -621,7 +644,7 @@ code in the extended comment string.
 <hr>
 <div class="refsect2">
 <a name="gst-tag-image-data-to-image-buffer"></a><h3>gst_tag_image_data_to_image_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_image_data_to_image_buffer  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_image_data_to_image_buffer  (<em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType"><span class="type">GstTagImageType</span></a> image_type</code></em>);</pre>
 <p>
@@ -824,6 +847,6 @@ the image buffer's caps structure)
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b37dbb6..88891d7 100644 (file)
@@ -3,22 +3,22 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
-<link rel="next" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="prev" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
+<link rel="next" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttagxmp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagxmpwriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gsttagdemux.synopsis" class="shortcut">Top</a>
@@ -51,7 +51,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gsttagdemux.html
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10464912"></a><h3>Deriving from GstTagDemux</h3>
+<a name="idp17345968"></a><h3>Deriving from GstTagDemux</h3>
 <p>
 Provides a base class for demuxing tags at the beginning or end of a
 stream and handles things like typefinding, querying, seeking, and
@@ -243,6 +243,6 @@ GstApeDemux, GstID3Demux
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
new file mode 100644 (file)
index 0000000..7cefe07
--- /dev/null
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttagexif</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
+<link rel="next" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagid3.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagxmp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttagexif.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gsttagexif.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttagexif"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagexif.top_of_page"></a>gsttagexif</span></h2>
+<p>gsttagexif — tag mappings and support functions for plugins
+                    dealing with exif tags</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttagexif.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/tag/tag.h&gt;
+
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" title="gst_tag_list_to_exif_buffer ()">gst_tag_list_to_exif_buffer</a>         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" title="gst_tag_list_to_exif_buffer_with_tiff_header ()">gst_tag_list_to_exif_buffer_with_tiff_header</a>
+                                                        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" title="gst_tag_list_from_exif_buffer ()">gst_tag_list_from_exif_buffer</a>       (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" title="gst_tag_list_from_exif_buffer_with_tiff_header ()">gst_tag_list_from_exif_buffer_with_tiff_header</a>
+                                                        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagexif.description"></a><h2>Description</h2>
+<p>
+Contains utility function to parse <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s from exif
+buffers and to create exif buffers from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s
+</p>
+<p>
+Note that next IFD fields on the created exif buffers are set to 0.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagexif.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-tag-list-to-exif-buffer"></a><h3>gst_tag_list_to_exif_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_list_to_exif_buffer         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);</pre>
+<p>
+Formats the tags in taglist on exif format. The resulting buffer contains
+the tags IFD and is followed by the data pointed by the tag entries.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>The taglist</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>byte_order</code></em> :</span></p></td>
+<td>byte order used in writing (G_LITTLE_ENDIAN or G_BIG_ENDIAN)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>base_offset</code></em> :</span></p></td>
+<td>Offset from the tiff header first byte</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A GstBuffer containing the tag entries followed by the tag data</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-to-exif-buffer-with-tiff-header"></a><h3>gst_tag_list_to_exif_buffer_with_tiff_header ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_list_to_exif_buffer_with_tiff_header
+                                                        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<p>
+Formats the tags in taglist into exif structure, a tiff header
+is put in the beginning of the buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>The taglist</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A GstBuffer containing the data</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-from-exif-buffer"></a><h3>gst_tag_list_from_exif_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_from_exif_buffer       (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);</pre>
+<p>
+Parses the IFD and IFD tags data contained in the buffer and puts it
+on a taglist. The base_offset is used to subtract from the offset in
+the tag entries and be able to get the offset relative to the buffer
+start
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>The exif buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>byte_order</code></em> :</span></p></td>
+<td>byte order of the data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>base_offset</code></em> :</span></p></td>
+<td>Offset from the tiff header to this buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The parsed taglist</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-from-exif-buffer-with-tiff-header"></a><h3>gst_tag_list_from_exif_buffer_with_tiff_header ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_from_exif_buffer_with_tiff_header
+                                                        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>
+Parses the exif tags starting with a tiff header structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>The exif buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The taglist</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagexif.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index 99dc1e7..948b055 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagid3</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
-<link rel="next" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttagxmp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagexif.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gsttagid3.synopsis" class="shortcut">Top</a>
 
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count" title="gst_tag_id3_genre_count ()">gst_tag_id3_genre_count</a>             (<em class="parameter"><code><span class="type">void</span></code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get" title="gst_tag_id3_genre_get ()">gst_tag_id3_genre_get</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *             <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1" title="gst_tag_list_new_from_id3v1 ()">gst_tag_list_new_from_id3v1</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1" title="gst_tag_list_new_from_id3v1 ()">gst_tag_list_new_from_id3v1</a>         (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-tag" title="gst_tag_from_id3_tag ()">gst_tag_from_id3_tag</a>                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_tag</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag" title="gst_tag_from_id3_user_tag ()">gst_tag_from_id3_user_tag</a>           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_user_tag</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag" title="gst_tag_to_id3_tag ()">gst_tag_to_id3_tag</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gst_tag</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image" title="gst_tag_list_add_id3_image ()">gst_tag_list_add_id3_image</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id3_picture_type</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()">gst_tag_get_id3v2_tag_size</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()">gst_tag_list_from_id3v2_tag</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -59,7 +61,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25099152"></a><p>
+<a name="idp24766688"></a><p>
 Contains various utility functions for plugins to parse or create
 ID3 tags and map ID3v2 identifiers to and from GStreamer identifiers.
 </p>
@@ -108,7 +110,7 @@ Gets the ID3v1 genre name for a given ID.
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new-from-id3v1"></a><h3>gst_tag_list_new_from_id3v1 ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *             gst_tag_list_new_from_id3v1    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_from_id3v1         (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>
 Parses the data containing an ID3v1 tag and returns a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> from the
 parsed data.
@@ -200,7 +202,7 @@ Looks up the ID3v2 tag for a GStreamer tag.
 <div class="refsect2">
 <a name="gst-tag-list-add-id3-image"></a><h3>gst_tag_list_add_id3_image ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_add_id3_image          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id3_picture_type</code></em>);</pre>
 <p>
@@ -239,6 +241,53 @@ the APIC frame (0 = unknown/other)</td>
 </table></div>
 <p class="since">Since 0.10.20</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-id3v2-tag-size"></a><h3>gst_tag_get_id3v2_tag_size ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_tag_get_id3v2_tag_size          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>
+Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
+i.e. at least <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE"><span class="type">GST_TAG_ID3V2_HEADER_SIZE</span></a> (10) bytes;
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>buffer holding ID3v2 tag (or at least the start of one)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Size of tag, or 0 if header is invalid or too small.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-from-id3v2-tag"></a><h3>gst_tag_list_from_id3v2_tag ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_from_id3v2_tag         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>
+Creates a new tag list that contains the information parsed out of a
+ID3 tag.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>buffer to convert</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
+given vorbiscomment buffer or NULL on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.see-also"></a><h2>See Also</h2>
@@ -247,6 +296,6 @@ the APIC frame (0 = unknown/other)</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b325e15..d87151a 100644 (file)
@@ -3,22 +3,22 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttaglanguagecodes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
-<link rel="next" href="gstreamer-base-utils.html" title="Base Utils Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="prev" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
+<link rel="next" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttagdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-base-utils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttaglicenses.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gsttaglanguagecodes.synopsis" class="shortcut">Top</a>
@@ -55,7 +55,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp24771488"></a><p>
+<a name="idp25117840"></a><p>
 Provides helper functions to convert between the various ISO-639 language
 codes, and to map language codes to language names.
 </p>
@@ -238,6 +238,6 @@ modified or freed.</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
new file mode 100644 (file)
index 0000000..d4ef116
--- /dev/null
@@ -0,0 +1,367 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttaglicenses</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
+<link rel="next" href="gstreamer-base-utils.html" title="Base Utils Library">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-base-utils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttaglicenses.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gsttaglicenses.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttaglicenses"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttaglicenses.top_of_page"></a>gsttaglicenses</span></h2>
+<p>gsttaglicenses — utility functions for Creative Commons licenses</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttaglicenses.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/tag/tag.h&gt;
+
+enum                <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags">GstTagLicenseFlags</a>;
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags"><span class="returnvalue">GstTagLicenseFlags</span></a>  <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags" title="gst_tag_get_license_flags ()">gst_tag_get_license_flags</a>           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" title="gst_tag_get_license_nick ()">gst_tag_get_license_nick</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" title="gst_tag_get_license_title ()">gst_tag_get_license_title</a>           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" title="gst_tag_get_license_description ()">gst_tag_get_license_description</a>     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" title="gst_tag_get_license_jurisdiction ()">gst_tag_get_license_jurisdiction</a>    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" title="gst_tag_get_license_version ()">gst_tag_get_license_version</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" title="gst_tag_get_licenses ()">gst_tag_get_licenses</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttaglicenses.description"></a><h2>Description</h2>
+<p>
+Provides information about Creative Commons media licenses, which are
+often expressed in media files as a license URI in tags. Also useful
+for applications creating media files, in case the user wants to license
+the content under a Creative Commons license.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttaglicenses.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTagLicenseFlags"></a><h3>enum GstTagLicenseFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_TAG_LICENSE_PERMITS_REPRODUCTION             = (1 &lt;&lt; 0),
+  GST_TAG_LICENSE_PERMITS_DISTRIBUTION             = (1 &lt;&lt; 1),
+  GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS         = (1 &lt;&lt; 2),
+  GST_TAG_LICENSE_PERMITS_SHARING                  = (1 &lt;&lt; 3),
+
+  GST_TAG_LICENSE_REQUIRES_NOTICE                  = (1 &lt;&lt; 8),
+  GST_TAG_LICENSE_REQUIRES_ATTRIBUTION             = (1 &lt;&lt; 9),
+  GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE             = (1 &lt;&lt; 10),
+  GST_TAG_LICENSE_REQUIRES_SOURCE_CODE             = (1 &lt;&lt; 11),
+  GST_TAG_LICENSE_REQUIRES_COPYLEFT                = (1 &lt;&lt; 12),
+  GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT         = (1 &lt;&lt; 13),
+
+  GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE         = (1 &lt;&lt; 16),
+  GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE = (1 &lt;&lt; 17),
+
+  GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE         = (1 &lt;&lt; 24),
+  GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE = (1 &lt;&lt; 25)
+} GstTagLicenseFlags;
+</pre>
+<p>
+See http://creativecommons.org/ns for more information.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_REPRODUCTION</code></span></p></td>
+<td>making multiple copies
+    is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_DISTRIBUTION</code></span></p></td>
+<td>distribution, public display
+    and public performance are allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS</code></span></p></td>
+<td>distribution of derivative
+    works is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-SHARING:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_SHARING</code></span></p></td>
+<td>commercial derivatives are allowed,
+    but only non-commercial distribution is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_NOTICE</code></span></p></td>
+<td>copyright and license notices
+    must be kept intact
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_ATTRIBUTION</code></span></p></td>
+<td>credit must be given to
+    copyright holder and/or author
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE</code></span></p></td>
+<td>derivative works must be
+    licensed under the same terms or compatible terms as the original work
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_SOURCE_CODE</code></span></p></td>
+<td>source code (the preferred
+    form for making modifications) must be provided when exercising some
+    rights granted by the license
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_COPYLEFT</code></span></p></td>
+<td>derivative and combined works
+    must be licensed under specified terms, similar to those of the original
+    work
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT</code></span></p></td>
+<td>derivative works must be
+    licensed under specified terms, with at least the same conditions as
+    the original work; combinations with the work may be licensed under
+    different terms
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE</code></span></p></td>
+<td>exercising rights for
+    commercial purposes is prohibited
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE</code></span></p></td>
+<td>use in a
+    non-developing country is prohibited
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE</code></span></p></td>
+<td>this license was created
+    by the Creative Commons project
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE</code></span></p></td>
+<td>this license was
+    created by the Free Software Foundation (FSF)
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-flags"></a><h3>gst_tag_get_license_flags ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags"><span class="returnvalue">GstTagLicenseFlags</span></a>  gst_tag_get_license_flags           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the flags of a license, which describe most of the features of
+a license in their most general form.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the flags of the license, or 0 if the license is unknown</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-nick"></a><h3>gst_tag_get_license_nick ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_get_license_nick            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the nick name of a license, which is a short (untranslated) string
+such as e.g. "CC BY-NC-ND 2.0 UK".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the nick name of the license, or NULL if the license is unknown</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-title"></a><h3>gst_tag_get_license_title ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_get_license_title           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the title of a license, which is a short translated description
+of the license's features (generally not very pretty though).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the title of the license, or NULL if the license is unknown or
+no title is available.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-description"></a><h3>gst_tag_get_license_description ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_get_license_description     (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the description of a license, which is a translated description
+of the license's main features.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the description of the license, or NULL if the license is unknown
+or a description is not available.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-jurisdiction"></a><h3>gst_tag_get_license_jurisdiction ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_get_license_jurisdiction    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the jurisdiction code of a license. This is usually a two-letter
+ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
+for which no code exists and which is thus represented as "scotland".
+</p>
+<p>
+Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de,
+dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
+pt, scotland, se, si, tw, uk, us, za.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the jurisdiction code of the license, or NULL if the license is
+unknown or is not specific to a particular jurisdiction.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-version"></a><h3>gst_tag_get_license_version ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_get_license_version         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the version of a license.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the version of the license, or NULL if the license is not known or
+has no version</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-licenses"></a><h3>gst_tag_get_licenses ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            gst_tag_get_licenses                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Returns a list of known license references (in form of URIs). This is
+useful for UIs to build a list of available licenses for tagging purposes
+(e.g. to tag an audio track appropriately in a video or audio editor, or
+an image in a camera application).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>NULL-terminated array of license strings. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>
+when no longer needed.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttaglicenses.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
new file mode 100644 (file)
index 0000000..acfb73d
--- /dev/null
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttagmux</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
+<link rel="next" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttagmux.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gsttagmux.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttagmux"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagmux.top_of_page"></a>gsttagmux</span></h2>
+<p>gsttagmux — Base class for adding tags that are in one single chunk
+                    directly at the beginning or at the end of a file</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttagmux.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/tag/gsttagmux.h&gt;
+
+struct              <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux">GstTagMux</a>;
+struct              <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass">GstTagMuxClass</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagmux.description"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp15390752"></a><h3>Deriving from GstTagMux</h3>
+<p>
+Provides a base class for adding tags at the beginning or end of a
+stream.
+</p>
+<p>
+Subclasses have to do the following things:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ In their base init function, they must add pad templates for the sink
+ pad and the source pad to the element class, describing the media type
+ they accept and output in the caps of the pad template.
+ </p></li>
+<li class="listitem"><p>
+ In their class init function, they must override the
+ GST_TAG_MUX_CLASS(mux_klass)-&gt;render_start_tag and/or
+ GST_TAG_MUX_CLASS(mux_klass)-&gt;render_end_tag vfuncs and set up a render
+ function.
+ </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<p>
+</p>
+<p>
+Since 0.10.36
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagmux.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTagMux"></a><h3>struct GstTagMux</h3>
+<pre class="programlisting">struct GstTagMux {
+  GstElement    element;
+};
+</pre>
+<p>
+Opaque <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux"><span class="type">GstTagMux</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstTagMux.element"></a>element</code></em>;</span></p></td>
+<td>parent element</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTagMuxClass"></a><h3>struct GstTagMuxClass</h3>
+<pre class="programlisting">struct GstTagMuxClass {
+  GstElementClass parent_class;
+
+  /* vfuncs */
+  GstBuffer  * (*render_start_tag) (GstTagMux * mux, const GstTagList * tag_list);
+  GstBuffer  * (*render_end_tag)   (GstTagMux * mux, const GstTagList * tag_list);
+};
+</pre>
+<p>
+The <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass"><span class="type">GstTagMuxClass</span></a> structure. Subclasses need to override at least one
+of the two render vfuncs.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstTagMuxClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTagMuxClass.render-start-tag"></a>render_start_tag</code></em> ()</span></p></td>
+<td>create a tag buffer to add to the beginning of the
+input stream given a tag list, or NULL</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTagMuxClass.render-end-tag"></a>render_end_tag</code></em> ()</span></p></td>
+<td>create a tag buffer to add to the end of the
+input stream given a tag list, or NULL</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagmux.see-also"></a><h2>See Also</h2>
+GstApeMux, GstId3Mux
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index 1d81766..292c631 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagvorbis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
 <link rel="next" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -46,17 +46,17 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add" title="gst_vorbis_tag_add ()">gst_vorbis_tag_add</a>                  (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                  <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments" title="gst_tag_to_vorbis_comments ()">gst_tag_to_vorbis_comments</a>     (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments" title="gst_tag_to_vorbis_comments ()">gst_tag_to_vorbis_comments</a>          (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *             <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer" title="gst_tag_list_from_vorbiscomment_buffer ()">gst_tag_list_from_vorbiscomment_buffer</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer" title="gst_tag_list_from_vorbiscomment_buffer ()">gst_tag_list_from_vorbiscomment_buffer</a>
                                                         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *              <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer" title="gst_tag_list_to_vorbiscomment_buffer ()">gst_tag_list_to_vorbiscomment_buffer</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer" title="gst_tag_list_to_vorbiscomment_buffer ()">gst_tag_list_to_vorbiscomment_buffer</a>
                                                         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vendor_string</code></em>);
 </pre>
@@ -66,7 +66,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp24832896"></a><p>
+<a name="idp24787424"></a><p>
 Contains various utility functions for plugins to parse or create
 vorbiscomments and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s.
 </p>
@@ -154,7 +154,7 @@ of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer
 <hr>
 <div class="refsect2">
 <a name="gst-tag-to-vorbis-comments"></a><h3>gst_tag_to_vorbis_comments ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *                  gst_tag_to_vorbis_comments     (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_tag_to_vorbis_comments          (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>
 Creates a new tag list that contains the information parsed out of a
@@ -175,7 +175,7 @@ vorbiscomment packet.
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allowcated key=value strings. Free with
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated key=value strings. Free with
 g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)</td>
 </tr>
 </tbody>
@@ -184,9 +184,9 @@ g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)</td>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-vorbiscomment-buffer"></a><h3>gst_tag_list_from_vorbiscomment_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *             gst_tag_list_from_vorbiscomment_buffer
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_from_vorbiscomment_buffer
                                                         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);</pre>
 <p>
@@ -224,9 +224,9 @@ given vorbiscomment buffer or NULL on error.</td>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-to-vorbiscomment-buffer"></a><h3>gst_tag_list_to_vorbiscomment_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *              gst_tag_list_to_vorbiscomment_buffer
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_list_to_vorbiscomment_buffer
                                                         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vendor_string</code></em>);</pre>
 <p>
@@ -267,6 +267,6 @@ that could be converted from the given tag list.</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index fd05e38..40defe0 100644 (file)
@@ -3,22 +3,22 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagxmp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
-<link rel="next" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="prev" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
+<link rel="next" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttagid3.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagexif.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttagdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagxmpwriter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gsttagxmp.synopsis" class="shortcut">Top</a>
 <pre class="synopsis">
 #include &lt;gst/tag/tag.h&gt;
 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *             <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" title="gst_tag_list_from_xmp_buffer ()">gst_tag_list_from_xmp_buffer</a>   (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *              <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" title="gst_tag_list_to_xmp_buffer ()">gst_tag_list_to_xmp_buffer</a>     (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" title="gst_tag_list_from_xmp_buffer ()">gst_tag_list_from_xmp_buffer</a>        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" title="gst_tag_list_to_xmp_buffer ()">gst_tag_list_to_xmp_buffer</a>          (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" title="gst_tag_list_to_xmp_buffer_full ()">gst_tag_list_to_xmp_buffer_full</a>     (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **schemas</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **      <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()">gst_tag_xmp_list_schemas</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -60,7 +64,7 @@ Please note that the xmp parser is very lightweight and not strict at all.
 <a name="gst-plugins-base-libs-gsttagxmp.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="gst-tag-list-from-xmp-buffer"></a><h3>gst_tag_list_from_xmp_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *             gst_tag_list_from_xmp_buffer   (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_from_xmp_buffer        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Parse a xmp packet into a taglist.
 </p>
@@ -82,7 +86,7 @@ Parse a xmp packet into a taglist.
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-to-xmp-buffer"></a><h3>gst_tag_list_to_xmp_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *              gst_tag_list_to_xmp_buffer     (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_list_to_xmp_buffer          (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);</pre>
 <p>
 Formats a taglist as a xmp packet.
@@ -106,6 +110,57 @@ Formats a taglist as a xmp packet.
 </table></div>
 <p class="since">Since 0.10.29</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-to-xmp-buffer-full"></a><h3>gst_tag_list_to_xmp_buffer_full ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_list_to_xmp_buffer_full     (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **schemas</code></em>);</pre>
+<p>
+Formats a taglist as a xmp packet using only the selected
+schemas. An empty list (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) means that all schemas should
+be used
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>tags</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>read_only</code></em> :</span></p></td>
+<td>does the container forbid inplace editing</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schemas</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of schemas to be used on serialization</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>new buffer or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, unref the buffer when done</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-list-schemas"></a><h3>gst_tag_xmp_list_schemas ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **      gst_tag_xmp_list_schemas            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Gets the list of supported schemas in the xmp lib
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the schema names</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.see-also"></a><h2>See Also</h2>
@@ -114,6 +169,6 @@ Formats a taglist as a xmp packet.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
new file mode 100644 (file)
index 0000000..ced48d0
--- /dev/null
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttagxmpwriter</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
+<link rel="next" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagxmp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttagxmpwriter.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gsttagxmpwriter.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttagxmpwriter"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagxmpwriter.top_of_page"></a>gsttagxmpwriter</span></h2>
+<p>gsttagxmpwriter — Interface for elements that provide XMP serialization</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttagxmpwriter.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"><span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" title="gst_tag_xmp_writer_add_all_schemas ()">gst_tag_xmp_writer_add_all_schemas</a>  (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" title="gst_tag_xmp_writer_add_schema ()">gst_tag_xmp_writer_add_schema</a>       (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" title="gst_tag_xmp_writer_has_schema ()">gst_tag_xmp_writer_has_schema</a>       (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" title="gst_tag_xmp_writer_remove_schema ()">gst_tag_xmp_writer_remove_schema</a>    (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" title="gst_tag_xmp_writer_remove_all_schemas ()">gst_tag_xmp_writer_remove_all_schemas</a>
+                                                        (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer" title="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()">gst_tag_xmp_writer_tag_list_to_xmp_buffer</a>
+                                                        (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagxmpwriter.description"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp24958400"></a><p>
+This interface is implemented by elements that are able to do XMP serialization. Examples for
+such elements are <span class="type">jifmux</span> and <span class="type">qtmux</span>.
+</p>
+<p>
+Applications can use this interface to configure which XMP schemas should be used when serializing
+tags into XMP. Schemas are represented by their names, a full list of the supported schemas can be
+obtained from <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()"><code class="function">gst_tag_xmp_list_schemas()</code></a>. By default, all schemas are used.
+</p>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagxmpwriter.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-add-all-schemas"></a><h3>gst_tag_xmp_writer_add_all_schemas ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_xmp_writer_add_all_schemas  (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);</pre>
+<p>
+Adds all available XMP schemas to the configuration. Meaning that
+all will be used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-add-schema"></a><h3>gst_tag_xmp_writer_add_schema ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_xmp_writer_add_schema       (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
+<p>
+Adds <em class="parameter"><code>schema</code></em> to the list schemas
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schema</code></em> :</span></p></td>
+<td>the schema to be added</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-has-schema"></a><h3>gst_tag_xmp_writer_has_schema ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_xmp_writer_has_schema       (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
+<p>
+Checks if <em class="parameter"><code>schema</code></em> is going to be used
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schema</code></em> :</span></p></td>
+<td>the schema to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is going to be used</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-remove-schema"></a><h3>gst_tag_xmp_writer_remove_schema ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_xmp_writer_remove_schema    (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
+<p>
+Removes a schema from the list of schemas to use. Nothing is done if
+the schema wasn't in the list
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schema</code></em> :</span></p></td>
+<td>the schema to remove</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-remove-all-schemas"></a><h3>gst_tag_xmp_writer_remove_all_schemas ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_xmp_writer_remove_all_schemas
+                                                        (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);</pre>
+<p>
+Removes all schemas from the list of schemas to use. Meaning that no
+XMP will be generated.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-tag-list-to-xmp-buffer"></a><h3>gst_tag_xmp_writer_tag_list_to_xmp_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_tag_xmp_writer_tag_list_to_xmp_buffer
+                                                        (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index 6aa6879..31c370c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttuner</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
 <link rel="next" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -106,7 +106,7 @@ GstTuner requires
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15075664"></a><p>
+<a name="idp17049216"></a><p>
 The GstTuner interface is provided by elements that have the ability to
 tune into multiple input signals, for example TV or radio capture cards.
 </p>
@@ -191,10 +191,72 @@ via a signal.
   void (*signal_changed)    (GstTuner        *tuner,
                              GstTunerChannel *channel,
                              gint             signal);
-
-  gpointer _gst_reserved[GST_PADDING];
 };
 </pre>
+<p>
+Tuner interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTunerClass.klass"></a>klass</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.list-channels"></a>list_channels</code></em> ()</span></p></td>
+<td>list available channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.set-channel"></a>set_channel</code></em> ()</span></p></td>
+<td>set to a channel</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.get-channel"></a>get_channel</code></em> ()</span></p></td>
+<td>return the current channel</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.list-norms"></a>list_norms</code></em> ()</span></p></td>
+<td>list available norms</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.set-norm"></a>set_norm</code></em> ()</span></p></td>
+<td>set a norm</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.get-norm"></a>get_norm</code></em> ()</span></p></td>
+<td>return the current norm</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.set-frequency"></a>set_frequency</code></em> ()</span></p></td>
+<td>set the frequency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.get-frequency"></a>get_frequency</code></em> ()</span></p></td>
+<td>return the current frequency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.signal-strength"></a>signal_strength</code></em> ()</span></p></td>
+<td>get the signal strength</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.channel-changed"></a>channel_changed</code></em> ()</span></p></td>
+<td>default handler for channel changed notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.norm-changed"></a>norm_changed</code></em> ()</span></p></td>
+<td>default handler for norm changed notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.frequency-changed"></a>frequency_changed</code></em> ()</span></p></td>
+<td>default handler for frequency changed notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.signal-changed"></a>signal_changed</code></em> ()</span></p></td>
+<td>default handler for signal-strength changed notification</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -718,6 +780,6 @@ See Also: <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-si
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 8fb2f89..f5c77c7 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttunerchannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">
 <link rel="next" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ enum                <a class="link" href="gst-plugins-base-libs-gsttunerchannel.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10457584"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> object is provided by an element implementing
+<a name="idp7342944"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> object is provided by an element implementing
 the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface.
 </p>
 <p>
@@ -259,6 +259,6 @@ See Also: <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-si
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a109a7f..bbeada5 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttunernorm</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">
 <link rel="next" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,7 +58,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gsttunernorm.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9600144"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> object is created by an element implementing the
+<a name="idp6264048"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> object is created by an element implementing the
 <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface and encapsulates the selection of a capture/output format
 for a selected <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.
 </p>
@@ -94,6 +94,6 @@ if any. (May be unset).</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 7c06eb6..d0e2fcd 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gstreamer-video.html" title="Video Library">
-<link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstvideofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gstvideo.synopsis" class="shortcut">Top</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS" title="GST_VIDEO_CAPS_RGB8_PALETTED">GST_VIDEO_CAPS_RGB8_PALETTED</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS" title="GST_VIDEO_CAPS_GRAY8">GST_VIDEO_CAPS_GRAY8</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS" title="GST_VIDEO_CAPS_GRAY16()">GST_VIDEO_CAPS_GRAY16</a>               (endianness)
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS" title="GST_VIDEO_CAPS_ARGB_64">GST_VIDEO_CAPS_ARGB_64</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210" title="GST_VIDEO_CAPS_r210">GST_VIDEO_CAPS_r210</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS" title="GST_VIDEO_COMP1_MASK_15">GST_VIDEO_COMP1_MASK_15</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS" title="GST_VIDEO_COMP1_MASK_15_INT">GST_VIDEO_COMP1_MASK_15_INT</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS" title="GST_VIDEO_COMP1_MASK_16">GST_VIDEO_COMP1_MASK_16</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS" title="GST_VIDEO_COMP1_MASK_16_INT">GST_VIDEO_COMP1_MASK_16_INT</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS" title="GST_VIDEO_COMP2_MASK_15">GST_VIDEO_COMP2_MASK_15</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS" title="GST_VIDEO_COMP2_MASK_15_INT">GST_VIDEO_COMP2_MASK_15_INT</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS" title="GST_VIDEO_COMP2_MASK_16">GST_VIDEO_COMP2_MASK_16</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS" title="GST_VIDEO_COMP2_MASK_16_INT">GST_VIDEO_COMP2_MASK_16_INT</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS" title="GST_VIDEO_COMP3_MASK_15">GST_VIDEO_COMP3_MASK_15</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS" title="GST_VIDEO_COMP3_MASK_15_INT">GST_VIDEO_COMP3_MASK_15_INT</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS" title="GST_VIDEO_COMP3_MASK_16">GST_VIDEO_COMP3_MASK_16</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS" title="GST_VIDEO_COMP3_MASK_16_INT">GST_VIDEO_COMP3_MASK_16_INT</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS" title="GST_VIDEO_FPS_RANGE">GST_VIDEO_FPS_RANGE</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS" title="GST_VIDEO_GREEN_MASK_15">GST_VIDEO_GREEN_MASK_15</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS" title="GST_VIDEO_GREEN_MASK_15_INT">GST_VIDEO_GREEN_MASK_15_INT</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS" title="GST_VIDEO_BUFFER_TFF">GST_VIDEO_BUFFER_TFF</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS" title="GST_VIDEO_BUFFER_RFF">GST_VIDEO_BUFFER_RFF</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS" title="GST_VIDEO_BUFFER_ONEFIELD">GST_VIDEO_BUFFER_ONEFIELD</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" title="GST_VIDEO_BUFFER_PROGRESSIVE">GST_VIDEO_BUFFER_PROGRESSIVE</a>
 enum                <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat">GstVideoFormat</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" title="gst_video_calculate_display_ratio ()">gst_video_calculate_display_ratio</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_n</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_d</code></em>,
@@ -104,15 +119,17 @@ const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-v
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-get-size" title="gst_video_get_size ()">gst_video_get_size</a>                  (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *width</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *height</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps" title="gst_video_get_size_from_caps ()">gst_video_get_size_from_caps</a>        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert" title="gst_video_format_convert ()">gst_video_format_convert</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> width</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> height</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> fps_n</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> fps_d</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps" title="gst_video_format_new_caps ()">gst_video_format_new_caps</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> width</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> height</code></em>,
@@ -129,6 +146,7 @@ const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-v
                                                          <em class="parameter"><code><span class="type">int</span> par_n</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> par_d</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> interlaced</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps" title="gst_video_format_new_template_caps ()">gst_video_format_new_template_caps</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
 <span class="returnvalue">int</span>                 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height" title="gst_video_format_get_component_height ()">gst_video_format_get_component_height</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> component</code></em>,
@@ -142,6 +160,9 @@ const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-v
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> component</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> width</code></em>);
+<span class="returnvalue">int</span>                 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth" title="gst_video_format_get_component_depth ()">gst_video_format_get_component_depth</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> component</code></em>);
 <span class="returnvalue">int</span>                 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride" title="gst_video_format_get_pixel_stride ()">gst_video_format_get_pixel_stride</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> component</code></em>);
 <span class="returnvalue">int</span>                 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride" title="gst_video_format_get_row_stride ()">gst_video_format_get_row_stride</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
@@ -154,9 +175,9 @@ const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-v
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-rgb" title="gst_video_format_is_rgb ()">gst_video_format_is_rgb</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-gray" title="gst_video_format_is_gray ()">gst_video_format_is_gray</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-yuv" title="gst_video_format_is_yuv ()">gst_video_format_is_yuv</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" title="gst_video_format_from_fourcc ()">gst_video_format_from_fourcc</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps" title="gst_video_format_parse_caps ()">gst_video_format_parse_caps</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" title="gst_video_format_from_fourcc ()">gst_video_format_from_fourcc</a>        (<em class="parameter"><code><span class="type">guint32</span> fourcc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps" title="gst_video_format_parse_caps ()">gst_video_format_parse_caps</a>         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> *format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> *width</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> *height</code></em>);
@@ -189,6 +210,29 @@ const <span class="returnvalue">char</span> *        <a class="link" href="gst-p
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()">gst_video_event_new_still_frame</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> in_still</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()">gst_video_event_parse_still_frame</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *in_still</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()">gst_video_event_new_upstream_force_key_unit</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()">gst_video_event_new_downstream_force_key_unit</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> streamtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> runningtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" title="gst_video_event_is_force_key_unit ()">gst_video_event_is_force_key_unit</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" title="gst_video_event_parse_upstream_force_key_unit ()">gst_video_event_parse_upstream_force_key_unit</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()">gst_video_event_parse_downstream_force_key_unit</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *streamtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *runningtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -196,8 +240,8 @@ const <span class="returnvalue">char</span> *        <a class="link" href="gst-p
 <p>
 </p>
 <div class="refsect2">
-<a name="idp28861408"></a><p>
-This library contains some helper functions and includes the 
+<a name="idp29566608"></a><p>
+This library contains some helper functions and includes the
 videosink and videofilter base classes.
 </p>
 </div>
@@ -462,6 +506,88 @@ or "LITTLE_ENDIAN"</td>
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-VIDEO-CAPS-ARGB-64:CAPS"></a><h3>GST_VIDEO_CAPS_ARGB_64</h3>
+<pre class="programlisting">#define             GST_VIDEO_CAPS_ARGB_64</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CAPS-r210"></a><h3>GST_VIDEO_CAPS_r210</h3>
+<pre class="programlisting">#define             GST_VIDEO_CAPS_r210</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-15:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_15</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_15 "0x7c00"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-15-INT:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_15_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_15_INT 0x7c00
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-16:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_16</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_16 "0xf800"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-16-INT:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_16_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_16_INT 0xf800
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-15:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_15</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_15 "0x03e0"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-15-INT:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_15_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_15_INT 0x03e0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-16:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_16</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_16 "0x07e0"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-16-INT:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_16_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_16_INT 0x07e0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-15:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_15</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_15 "0x001f"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-15-INT:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_15_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_15_INT 0x001f
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-16:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_16</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_16 "0x001f"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-16-INT:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_16_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_16_INT 0x001f
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-VIDEO-FPS-RANGE:CAPS"></a><h3>GST_VIDEO_FPS_RANGE</h3>
 <pre class="programlisting">#define GST_VIDEO_FPS_RANGE "(fraction) [ 0, max ]"
 </pre>
@@ -587,6 +713,17 @@ If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstream
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-VIDEO-BUFFER-PROGRESSIVE:CAPS"></a><h3>GST_VIDEO_BUFFER_PROGRESSIVE</h3>
+<pre class="programlisting">#define GST_VIDEO_BUFFER_PROGRESSIVE GST_BUFFER_FLAG_MEDIA4
+</pre>
+<p>
+If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is telecined, then the buffer is progressive if the
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" title="GST_VIDEO_BUFFER_PROGRESSIVE"><code class="literal">GST_VIDEO_BUFFER_PROGRESSIVE</code></a> flag is set, else it is telecine mixed.
+</p>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstVideoFormat"></a><h3>enum GstVideoFormat</h3>
 <pre class="programlisting">typedef enum {
   GST_VIDEO_FORMAT_UNKNOWN,
@@ -870,8 +1007,8 @@ Enum value describing the most common video formats.
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_n</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_d</code></em>);</pre>
 <p>
-Given the Pixel Aspect Ratio and size of an input video frame, and the 
-pixel aspect ratio of the intended display device, calculates the actual 
+Given the Pixel Aspect Ratio and size of an input video frame, and the
+pixel aspect ratio of the intended display device, calculates the actual
 display ratio the video will be rendered with.
 </p>
 <div class="variablelist"><table border="0">
@@ -984,6 +1121,36 @@ The pad needs to have negotiated caps containing width and height properties.
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-video-get-size-from-caps"></a><h3>gst_video_get_size_from_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_get_size_from_caps        (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *size</code></em>);</pre>
+<p>
+Calculates the total number of bytes in the raw video format for the given
+caps.  This number should be used when allocating a buffer for raw video.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a pointer to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>a pointer to a gint that will be assigned the size (in bytes) of a video frame with the given caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the size could be calculated from the caps</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-format-convert"></a><h3>gst_video_format_convert ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_format_convert            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> width</code></em>,
@@ -991,9 +1158,9 @@ The pad needs to have negotiated caps containing width and height properties.
                                                          <em class="parameter"><code><span class="type">int</span> fps_n</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> fps_d</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
 <p>
 Converts among various <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> types.  This function handles
 GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
@@ -1165,6 +1332,30 @@ Creates a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-video-format-new-template-caps"></a><h3>gst_video_format_new_template_caps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_video_format_new_template_caps  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
+<p>
+Creates a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> object based on the parameters provided.
+Size, frame rate, and pixel aspect ratio are set to the full
+range.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> describing the raw video format</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> object, or NULL if there was an error</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-format-get-component-height"></a><h3>gst_video_format_get_component_height ()</h3>
 <pre class="programlisting"><span class="returnvalue">int</span>                 gst_video_format_get_component_height
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
@@ -1284,6 +1475,37 @@ of the component index.
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-video-format-get-component-depth"></a><h3>gst_video_format_get_component_depth ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>                 gst_video_format_get_component_depth
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> component</code></em>);</pre>
+<p>
+Returns the number of bits used to encode an individual pixel of
+a given <em class="parameter"><code>component</code></em>.  Typically this is 8, although higher and lower
+values are possible for some formats.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>the video component (e.g. 0 for 'R' in RGB)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>depth of component</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-format-get-pixel-stride"></a><h3>gst_video_format_get_pixel_stride ()</h3>
 <pre class="programlisting"><span class="returnvalue">int</span>                 gst_video_format_get_pixel_stride   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> component</code></em>);</pre>
@@ -1484,7 +1706,7 @@ Determine whether the video format is a YUV format.
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-to-fourcc"></a><h3>gst_video_format_to_fourcc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_video_format_to_fourcc          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_video_format_to_fourcc          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
 <p>
 Converts a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> value into the corresponding FOURCC.  Only
 a few YUV formats have corresponding FOURCC values.  If <em class="parameter"><code>format</code></em> has
@@ -1509,7 +1731,7 @@ no corresponding FOURCC value, 0 is returned.
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-from-fourcc"></a><h3>gst_video_format_from_fourcc ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      gst_video_format_from_fourcc        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      gst_video_format_from_fourcc        (<em class="parameter"><code><span class="type">guint32</span> fourcc</code></em>);</pre>
 <p>
 Converts a FOURCC value into the corresponding <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>.
 If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>,
@@ -1533,7 +1755,7 @@ If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-li
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-parse-caps"></a><h3>gst_video_format_parse_caps ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_format_parse_caps         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_format_parse_caps         (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> *format</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> *width</code></em>,
                                                          <em class="parameter"><code><span class="type">int</span> *height</code></em>);</pre>
@@ -1541,8 +1763,10 @@ If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-li
 Determines the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> of <em class="parameter"><code>caps</code></em> and places it in the location
 pointed to by <em class="parameter"><code>format</code></em>.  Extracts the size of the video and places it
 in the location pointed to by <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>.  If <em class="parameter"><code>caps</code></em> does not
-represent one of the raw video formats listed in <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>, the
-function will fail and return FALSE.
+represent a video format or does not contain height and width, the
+function will fail and return FALSE. If <em class="parameter"><code>caps</code></em> does not represent a raw
+video format listed in <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>, but still contains video caps,
+this function will return TRUE and set <em class="parameter"><code>format</code></em> to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS"><span class="type">GST_VIDEO_FORMAT_UNKNOWN</span></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1740,7 +1964,7 @@ determined.</td>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_video_parse_caps_palette        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 Returns the palette data from the caps as a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. For
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-RGB8-PALETTED:CAPS"><span class="type">GST_VIDEO_FORMAT_RGB8_PALETTED</span></a> this is containing 256 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-RGB8-PALETTED:CAPS"><span class="type">GST_VIDEO_FORMAT_RGB8_PALETTED</span></a> this is containing 256 <span class="type">guint32</span>
 values, each containing ARGB colors in native endianness.
 </p>
 <div class="variablelist"><table border="0">
@@ -1799,7 +2023,7 @@ The width, height and pixel-aspect-ratio can also be specified in the output cap
 <td>the maximum amount of time allowed for the processing.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
 <td>pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
 <tr>
@@ -1861,6 +2085,11 @@ anymore.
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertFrameCallback" title="GstVideoConvertFrameCallback ()"><code class="literal">GstVideoConvertFrameCallback</code></a> that will be called after conversion.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>extra data that will be passed to the <em class="parameter"><code>callback</code></em>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>destroy_notify</code></em> :</span></p></td>
 <td>
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><code class="literal">GDestroyNotify</code></a> to be called after <em class="parameter"><code>user_data</code></em> is not needed anymore</td>
@@ -1933,10 +2162,233 @@ Create a still frame event using <a class="link" href="gst-plugins-base-libs-gst
 </table></div>
 <p class="since">Since 0.10.26</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-new-upstream-force-key-unit"></a><h3>gst_video_event_new_upstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_video_event_new_upstream_force_key_unit
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
+<p>
+Creates a new upstream force key unit event. An upstream force key unit event
+can be sent to request upstream elements to produce a key unit. 
+</p>
+<p>
+<em class="parameter"><code>running_time</code></em> can be set to request a new key unit at a specific
+running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
+new key unit as soon as possible.
+</p>
+<p>
+To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>the running_time at which a new key unit should be produced</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>integer that can be used to number key units</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new GstEvent</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-new-downstream-force-key-unit"></a><h3>gst_video_event_new_downstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_video_event_new_downstream_force_key_unit
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> streamtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> runningtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
+<p>
+Creates a new downstream force key unit event. A downstream force key unit
+event can be sent down the pipeline to request downstream elements to produce
+a key unit. A downstream force key unit event must also be sent when handling
+an upstream force key unit event to notify downstream that the latter has been
+handled.
+</p>
+<p>
+To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the timestamp of the buffer that starts a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_time</code></em> :</span></p></td>
+<td>the stream_time of the buffer that starts a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>the running_time of the buffer that starts a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>integer that can be used to number key units</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new GstEvent</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-is-force-key-unit"></a><h3>gst_video_event_is_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_event_is_force_key_unit   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
+<p>
+Checks if an event is a force key unit event. Returns true for both upstream
+and downstream force key unit events.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to check</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid force key unit event</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-parse-upstream-force-key-unit"></a><h3>gst_video_event_parse_upstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_event_parse_upstream_force_key_unit
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
+<p>
+Get running-time, all-headers and count in the force key unit event. See
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a> for a full description of the
+upstream force key unit event.
+</p>
+<p>
+Create an upstream force key unit event using  <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>A pointer to the running_time in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>A pointer to the all_headers flag in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>A pointer to the count field in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid upstream force-key-unit event. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-parse-downstream-force-key-unit"></a><h3>gst_video_event_parse_downstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_event_parse_downstream_force_key_unit
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *streamtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *runningtime</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
+<p>
+Get timestamp, stream-time, running-time, all-headers and count in the force
+key unit event. See <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> for a
+full description of the downstream force key unit event.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>A pointer to the timestamp in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_time</code></em> :</span></p></td>
+<td>A pointer to the stream-time in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>A pointer to the running-time in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>A pointer to the all_headers flag in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>A pointer to the count field of the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid downstream force key unit event.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index c2936c6..f481f8f 100644 (file)
@@ -3,18 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
-<link rel="prev" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
+<link rel="prev" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
 <link rel="next" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstvideo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
@@ -61,7 +61,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstvideofilter.h
 <p>
 </p>
 <div class="refsect2">
-<a name="idp23911216"></a><p>
+<a name="idp8581264"></a><p>
 Provides useful functions and a base class for video filters.
 </p>
 <p>
@@ -85,11 +85,21 @@ to implement frame dropping.
   GstBaseTransformClass parent_class;
 };
 </pre>
+<p>
+The video filter class structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html#GstBaseTransformClass"><span class="type">GstBaseTransformClass</span></a> <em class="structfield"><code><a name="GstVideoFilterClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class structure</td>
+</tr></tbody>
+</table></div>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index bc5f97a..1d73850 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideoorientation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">
 <link rel="next" href="gst-plugins-base-libs-gstxoverlay.html" title="gstxoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -401,6 +401,6 @@ Set the vertical flipping state (<a href="http://library.gnome.org/devel/glib/un
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
new file mode 100644 (file)
index 0000000..f6587f7
--- /dev/null
@@ -0,0 +1,923 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstvideooverlaycomposition</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
+<link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstvideooverlaycomposition.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstvideooverlaycomposition.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideooverlaycomposition.top_of_page"></a>gstvideooverlaycomposition</span></h2>
+<p>gstvideooverlaycomposition — Video Buffer Overlay Compositions (Subtitles, Logos)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/video/video-overlay-composition.h&gt;
+
+                    <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition">GstVideoOverlayComposition</a>;
+                    <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass" title="GstVideoOverlayCompositionClass">GstVideoOverlayCompositionClass</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" title="gst_video_overlay_composition_new ()">gst_video_overlay_composition_new</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" title="gst_video_overlay_composition_ref ()">gst_video_overlay_composition_ref</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()">gst_video_overlay_composition_unref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle" title="gst_video_overlay_composition_add_rectangle ()">gst_video_overlay_composition_add_rectangle</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" title="gst_video_overlay_composition_n_rectangles ()">gst_video_overlay_composition_n_rectangles</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle" title="gst_video_overlay_composition_get_rectangle ()">gst_video_overlay_composition_get_rectangle</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" title="gst_video_overlay_composition_get_seqnum ()">gst_video_overlay_composition_get_seqnum</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()">gst_video_overlay_composition_copy</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()">gst_video_overlay_composition_make_writable</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()">gst_video_overlay_composition_blend</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *video_buf</code></em>);
+
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()">gst_video_buffer_get_overlay_composition</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" title="gst_video_buffer_set_overlay_composition ()">gst_video_buffer_set_overlay_composition</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+
+enum                <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>;
+                    <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle">GstVideoOverlayRectangle</a>;
+                    <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass" title="GstVideoOverlayRectangleClass">GstVideoOverlayRectangleClass</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb" title="gst_video_overlay_rectangle_new_argb ()">gst_video_overlay_rectangle_new_argb</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *pixels</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> stride</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()">gst_video_overlay_rectangle_ref</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()">gst_video_overlay_rectangle_unref</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" title="gst_video_overlay_rectangle_get_pixels_argb ()">gst_video_overlay_rectangle_get_pixels_argb</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" title="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()">gst_video_overlay_rectangle_get_pixels_unscaled_argb</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *height</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()">gst_video_overlay_rectangle_get_render_rectangle</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_height</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" title="gst_video_overlay_rectangle_get_seqnum ()">gst_video_overlay_rectangle_get_seqnum</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" title="gst_video_overlay_rectangle_set_render_rectangle ()">gst_video_overlay_rectangle_set_render_rectangle</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()">gst_video_overlay_rectangle_copy</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition.description"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp30461952"></a><p>
+Functions to create and handle overlay compositions on video buffers.
+</p>
+<p>
+An overlay composition describes one or more overlay rectangles to be
+blended on top of a video buffer.
+</p>
+<p>
+This API serves two main purposes:
+</p>
+<div class="itemizedlist">
+<span class="type">GstOverlayComposition</span><ul class="itemizedlist" type="disc">
+<li class="listitem">
+it can be used to attach overlay information (subtitles or logos)
+to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
+blending of the overlay can then be done by e.g. the video sink that
+processes these non-raw buffers.
+</li>
+<li class="listitem">
+it can also be used to blend overlay rectangles on top of raw video
+buffers, thus consolidating blending functionality for raw video in
+one place.
+</li>
+</ul>
+</div>
+<p>
+</p>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstVideoOverlayComposition"></a><h3>GstVideoOverlayComposition</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayComposition GstVideoOverlayComposition;</pre>
+<p>
+An opaque video overlay composition object. A composition contains
+multiple overlay rectangles.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayCompositionClass"></a><h3>GstVideoOverlayCompositionClass</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayCompositionClass GstVideoOverlayCompositionClass;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-new"></a><h3>gst_video_overlay_composition_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_new
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Creates a new video overlay composition object to hold one or more
+overlay rectangles.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to add to the
+composition. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. Unref with
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()"><code class="function">gst_video_overlay_composition_unref()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-ref"></a><h3>gst_video_overlay_composition_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_ref
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Increases the refcount of the given composition by one.
+</p>
+<p>
+Note that the refcount affects the writeability
+of <em class="parameter"><code>comp</code></em>, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> to ensure
+a composition and its rectangles can be modified.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-unref"></a><h3>gst_video_overlay_composition_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_video_overlay_composition_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Decreases the refcount of the composition. If the refcount reaches 0, the
+composition will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-add-rectangle"></a><h3>gst_video_overlay_composition_add_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_video_overlay_composition_add_rectangle
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Adds an overlay rectangle to an existing overlay composition object. This
+must be done right after creating the overlay composition.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to add to the
+composition. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-n-rectangles"></a><h3>gst_video_overlay_composition_n_rectangles ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_video_overlay_composition_n_rectangles
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Returns the number of <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>s contained in <em class="parameter"><code>comp</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of rectangles</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-get-rectangle"></a><h3>gst_video_overlay_composition_get_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_composition_get_rectangle
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n</code></em>);</pre>
+<p>
+Returns the <em class="parameter"><code>n</code></em>-th <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> contained in <em class="parameter"><code>comp</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
+<td>number of the rectangle to get</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <em class="parameter"><code>n</code></em>-th rectangle, or NULL if <em class="parameter"><code>n</code></em> is out of
+bounds. Will not return a new reference, the caller will need to
+obtain her own reference using <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()"><code class="function">gst_video_overlay_rectangle_ref()</code></a>
+if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-get-seqnum"></a><h3>gst_video_overlay_composition_get_seqnum ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_video_overlay_composition_get_seqnum
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Returns the sequence number of this composition. Sequence numbers are
+monotonically increasing and unique for overlay compositions and rectangles
+(meaning there will never be a rectangle with the same sequence number as
+a composition).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sequence number of <em class="parameter"><code>comp</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-copy"></a><h3>gst_video_overlay_composition_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_copy
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Makes a copy of <em class="parameter"><code>comp</code></em> and all contained rectangles, so that it is possible
+to modify the composition and contained rectangles (e.g. add additional
+rectangles or change the render co-ordinates or render dimension). The
+actual overlay pixel data buffers contained in the rectangles are not
+copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> to copy. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> equivalent
+to <em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-make-writable"></a><h3>gst_video_overlay_composition_make_writable ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_make_writable
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Takes ownership of <em class="parameter"><code>comp</code></em> and returns a version of <em class="parameter"><code>comp</code></em> that is writable
+(i.e. can be modified). Will either return <em class="parameter"><code>comp</code></em> right away, or create a
+new writable copy of <em class="parameter"><code>comp</code></em> and unref <em class="parameter"><code>comp</code></em> itself. All the contained
+rectangles will also be copied, but the actual overlay pixel data buffers
+contained in the rectangles are not copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> to copy. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a writable <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+equivalent to <em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-blend"></a><h3>gst_video_overlay_composition_blend ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_overlay_composition_blend (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *video_buf</code></em>);</pre>
+<p>
+Blends the overlay rectangles in <em class="parameter"><code>comp</code></em> on top of the raw video data
+contained in <em class="parameter"><code>video_buf</code></em>. The data in <em class="parameter"><code>video_buf</code></em> must be writable. If
+needed, use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-make-writable"><code class="function">gst_buffer_make_writable()</code></a> before calling this function to
+ensure a buffer is writable. <em class="parameter"><code>video_buf</code></em> must also have valid raw video
+caps set on it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>video_buf</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing raw video data in a supported format</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-buffer-get-overlay-composition"></a><h3>gst_video_buffer_get_overlay_composition ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_buffer_get_overlay_composition
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>
+Get the overlay composition that has previously been attached to a buffer
+with <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()"><code class="function">gst_video_buffer_get_overlay_composition()</code></a>, usually by another element
+upstream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> attached to
+this buffer, or NULL. Does not return a reference to the composition,
+caller must obtain her own ref via <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" title="gst_video_overlay_composition_ref ()"><code class="function">gst_video_overlay_composition_ref()</code></a>
+if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-buffer-set-overlay-composition"></a><h3>gst_video_buffer_set_overlay_composition ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_video_buffer_set_overlay_composition
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Sets an overlay composition on a buffer. The buffer will obtain its own
+reference to the composition, meaning this function does not take ownership
+of <em class="parameter"><code>comp</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>, or NULL to clear a
+previously-set composition. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayFormatFlags"></a><h3>enum GstVideoOverlayFormatFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE = 0
+} GstVideoOverlayFormatFlags;
+</pre>
+<p>
+Overlay format flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><a name="GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE</code></span></p></td>
+<td>no flags
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayRectangle"></a><h3>GstVideoOverlayRectangle</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayRectangle GstVideoOverlayRectangle;</pre>
+<p>
+An opaque video overlay rectangle object. A rectangle contains a single
+overlay rectangle which can be added to a composition.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayRectangleClass"></a><h3>GstVideoOverlayRectangleClass</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayRectangleClass GstVideoOverlayRectangleClass;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-new-argb"></a><h3>gst_video_overlay_rectangle_new_argb ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_rectangle_new_argb
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *pixels</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> stride</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
+<p>
+Creates a new video overlay rectangle with ARGB pixel data. The layout
+of the components in memory is B-G-R-A on little-endian platforms
+(corresponding to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-BGRA:CAPS"><span class="type">GST_VIDEO_FORMAT_BGRA</span></a>) and A-R-G-B on big-endian
+platforms (corresponding to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB:CAPS"><span class="type">GST_VIDEO_FORMAT_ARGB</span></a>). In other words,
+pixels are treated as 32-bit words and the lowest 8 bits then contain
+the blue component value and the highest 8 bits contain the alpha
+component value. The RGB values are non-premultiplied. This is the
+format that is used by most hardware, and also many rendering libraries
+such as Cairo, for example.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pixels</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> pointing to the pixel memory. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>the width of the rectangle in <em class="parameter"><code>pixels</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>the height of the rectangle in <em class="parameter"><code>pixels</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>the stride of the rectangle in <em class="parameter"><code>pixels</code></em> in bytes (&gt;= 4*width)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>the X co-ordinate on the video where the top-left corner of this
+overlay rectangle should be rendered to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>the Y co-ordinate on the video where the top-left corner of this
+overlay rectangle should be rendered to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_width</code></em> :</span></p></td>
+<td>the render width of this rectangle on the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_height</code></em> :</span></p></td>
+<td>the render height of this rectangle on the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags (currently unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Unref with
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()"><code class="function">gst_video_overlay_rectangle_unref()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-ref"></a><h3>gst_video_overlay_rectangle_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_rectangle_ref
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);</pre>
+<p>
+Increases the refcount of the given rectangle by one.
+</p>
+<p>
+Note that the refcount affects the writeability
+of <em class="parameter"><code>comp</code></em>, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()"><code class="function">gst_video_overlay_rectangle_copy()</code></a> to ensure a rectangle can
+be modified (there is no <code class="function">gst_video_overlay_rectangle_make_writable()</code> because
+it is unlikely that someone will hold the single reference to the rectangle
+and not know that that's the case).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-unref"></a><h3>gst_video_overlay_rectangle_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_video_overlay_rectangle_unref   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);</pre>
+<p>
+Decreases the refcount of the rectangle. If the refcount reaches 0, the
+rectangle will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-pixels-argb"></a><h3>gst_video_overlay_rectangle_get_pixels_argb ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_video_overlay_rectangle_get_pixels_argb
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>address of guint variable where to store the
+row stride of the ARGB pixel data in the buffer. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags (unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
+row stride <em class="parameter"><code>stride</code></em> and width and height of the render dimensions as per
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
+not return a reference, the caller should obtain a reference of her own
+with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-pixels-unscaled-argb"></a><h3>gst_video_overlay_rectangle_get_pixels_unscaled_argb ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_video_overlay_rectangle_get_pixels_unscaled_argb
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *height</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
+<p>
+Retrieves the pixel data as it is. This is useful if the caller can
+do the scaling itself when handling the overlaying. The rectangle will
+need to be scaled to the render dimensions, which can be retrieved using
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>address where to store the width of the unscaled
+rectangle in pixels. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>address where to store the height of the unscaled
+rectangle in pixels. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>address of guint variable where to store the row
+stride of the ARGB pixel data in the buffer. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags for future use (unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
+row stride <em class="parameter"><code>stride</code></em>. This function does not return a reference, the caller
+should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-render-rectangle"></a><h3>gst_video_overlay_rectangle_get_render_rectangle ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_overlay_rectangle_get_render_rectangle
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_height</code></em>);</pre>
+<p>
+Retrieves the render position and render dimension of the overlay
+rectangle on the video.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_x</code></em> :</span></p></td>
+<td>address where to store the X render offset. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_y</code></em> :</span></p></td>
+<td>address where to store the Y render offset. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_width</code></em> :</span></p></td>
+<td>address where to store the render width. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_height</code></em> :</span></p></td>
+<td>address where to store the render height. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if valid render dimensions were retrieved.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-seqnum"></a><h3>gst_video_overlay_rectangle_get_seqnum ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_video_overlay_rectangle_get_seqnum
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Returns the sequence number of this rectangle. Sequence numbers are
+monotonically increasing and unique for overlay compositions and rectangles
+(meaning there will never be a rectangle with the same sequence number as
+a composition).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sequence number of <em class="parameter"><code>rectangle</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-set-render-rectangle"></a><h3>gst_video_overlay_rectangle_set_render_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_video_overlay_rectangle_set_render_rectangle
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>);</pre>
+<p>
+Sets the render position and dimensions of the rectangle on the video.
+This function is mainly for elements that modify the size of the video
+in some way (e.g. through scaling or cropping) and need to adjust the
+details of any overlays to match the operation that changed the size.
+</p>
+<p>
+<em class="parameter"><code>rectangle</code></em> must be writable, meaning its refcount must be 1. You can
+make the rectangles inside a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> writable using
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_x</code></em> :</span></p></td>
+<td>render X position of rectangle on video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_y</code></em> :</span></p></td>
+<td>render Y position of rectangle on video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_width</code></em> :</span></p></td>
+<td>render width of rectangle</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_height</code></em> :</span></p></td>
+<td>render height of rectangle</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-copy"></a><h3>gst_video_overlay_rectangle_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_rectangle_copy
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Makes a copy of <em class="parameter"><code>rectangle</code></em>, so that it is possible to modify it
+(e.g. to change the render co-ordinates or render dimension). The
+actual overlay pixel data buffers contained in the rectangle are not
+copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to copy. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> equivalent
+to <em class="parameter"><code>rectangle</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
index e80b094..6982d99 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
 <link rel="next" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,7 +77,7 @@ struct              <a class="link" href="gst-plugins-base-libs-gstvideosink.htm
 <p>
 </p>
 <div class="refsect2">
-<a name="idp27834272"></a><p>
+<a name="idp29609152"></a><p>
 Provides useful functions and a base class for video sinks. 
 </p>
 <p>
@@ -93,14 +93,26 @@ observing out-of-sync frames.
 <a name="gst-plugins-base-libs-gstvideosink.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstVideoSink-struct"></a><h3>struct GstVideoSink</h3>
-<pre class="programlisting">struct GstVideoSink;</pre>
+<pre class="programlisting">struct GstVideoSink {
+  gint width, height;
+};
+</pre>
 <p>
 The video sink instance structure. Derived video sinks should set the
 <em class="parameter"><code>height</code></em> and <em class="parameter"><code>width</code></em> members.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody></tbody>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.width"></a>width</code></em>;</span></p></td>
+<td>video width (derived class needs to set this)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.height"></a>height</code></em>;</span></p></td>
+<td>video height (derived class needs to set this)</td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <hr>
@@ -125,10 +137,10 @@ The video sink class structure. Derived classes should override the
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoSinkClass.show-frame"></a>show_frame</code></em> ()</span></p></td>
-<td>render a video frame. Maps to <span class="type">"render"</span> and
-<span class="type">"preroll"</span> vfuncs. Rendering during preroll will be
-suppressed if the 'show-preroll-frame' property is set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.
-Since: 0.10.25</td>
+<td>render a video frame. Maps to <code class="function">GstBaseSinkClass.render()</code> and
+<code class="function">GstBaseSinkClass.preroll()</code> vfuncs. Rendering during preroll will be
+suppressed if the <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title='The "show-preroll-frame" property'><span class="type">"show-preroll-frame"</span></a> property is set to
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. Since: 0.10.25</td>
 </tr>
 </tbody>
 </table></div>
@@ -248,6 +260,6 @@ frames will only be rendered in PLAYING state.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 86d32e4..f47481c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstxoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
 <link rel="next" href="gstreamer-netbuffer.html" title="Network Buffer Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -52,9 +52,9 @@ struct              <a class="link" href="gst-plugins-base-libs-gstxoverlay.html
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-xwindow-id" title="gst_x_overlay_got_xwindow_id ()">gst_x_overlay_got_xwindow_id</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> xwindow_id</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-window-handle" title="gst_x_overlay_got_window_handle ()">gst_x_overlay_got_window_handle</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);
+                                                         <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle" title="gst_x_overlay_set_window_handle ()">gst_x_overlay_set_window_handle</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);
+                                                         <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-prepare-xwindow-id" title="gst_x_overlay_prepare_xwindow_id ()">gst_x_overlay_prepare_xwindow_id</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-expose" title="gst_x_overlay_expose ()">gst_x_overlay_expose</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-handle-events" title="gst_x_overlay_handle_events ()">gst_x_overlay_handle_events</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
@@ -84,7 +84,7 @@ GstXOverlay requires
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15827040"></a><p>
+<a name="idp17754944"></a><p>
 The XOverlay interface is used for 2 main purposes :
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -162,23 +162,23 @@ immediately. Here is an example on how to do that correctly:
  <span class="gtkdoc slc">// ignore anything but 'prepare-xwindow-id' element messages</span>
  <span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">) !=</span> GST_MESSAGE_ELEMENT<span class="gtkdoc opt">)</span>
    <span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
+
  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-has-name">gst_structure_has_name</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">-&gt;</span>structure<span class="gtkdoc opt">,</span> <span class="string">&quot;prepare-xwindow-id&quot;</span><span class="gtkdoc opt">))</span>
    <span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
+
  win <span class="gtkdoc opt">=</span> <span class="function">XCreateSimpleWindow</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> root<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">320</span><span class="gtkdoc opt">,</span> <span class="number">240</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+
  <span class="function">XSetWindowBackgroundPixmap</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> win<span class="gtkdoc opt">,</span> None<span class="gtkdoc opt">);</span>
+
  <span class="function">XMapRaised</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> win<span class="gtkdoc opt">);</span>
+
  <span class="function">XSync</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
-  
+
  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle">gst_x_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_X_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
      win<span class="gtkdoc opt">);</span>
-  
+
  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
-  
+
  <span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">}</span>
 <span class="gtkdoc opt">...</span>
@@ -202,7 +202,7 @@ immediately. Here is an example on how to do that correctly:
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp15836384"></a><h3>Two basic usage scenarios</h3>
+<a name="idp17764272"></a><h3>Two basic usage scenarios</h3>
 <p>
 There are two basic usage scenarios: in the simplest case, the application
 knows exactly what particular element is used for video output, which is
@@ -236,10 +236,10 @@ prepare-xwindow-id message is handled, because most GUI toolkits and
 windowing systems are not thread-safe at all and a lot of care would be
 required to co-ordinate the toolkit and window system calls of the
 different threads (Gtk+ users please note: prior to Gtk+ 2.18
-<a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
+<a href="http://library.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
 within the bus sync handler; this macro was changed to a function call in
 Gtk+ 2.18 and later, which is likely to cause problems when called from a
-sync handler; see below for a better approach without <a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
+sync handler; see below for a better approach without <a href="http://library.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
 used in the callback).
 </p>
 </div>
@@ -247,7 +247,7 @@ used in the callback).
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp15848544"></a><h3>GstXOverlay and Gtk+</h3>
+<a name="idp17776432"></a><h3>GstXOverlay and Gtk+</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -335,8 +335,10 @@ used in the callback).
 79
 80
 81
-82</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gtk/gtk.h&gt;</span>
+82
+83</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/interfaces/xoverlay.h&gt;</span>
+<span class="gtkdoc ppc">#include &lt;gtk/gtk.h&gt;</span>
 <span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
 <span class="gtkdoc ppc">#include &lt;gdk/gdkx.h&gt;</span>  <span class="gtkdoc slc">// for GDK_WINDOW_XID</span>
 <span class="gtkdoc ppc"></span><span class="gtkdoc ppc">#endif</span>
@@ -351,17 +353,17 @@ used in the callback).
    <span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-has-name">gst_structure_has_name</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">-&gt;</span>structure<span class="gtkdoc opt">,</span> <span class="string">&quot;prepare-xwindow-id&quot;</span><span class="gtkdoc opt">))</span>
    <span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
+
  <span class="keyword">if</span> <span class="gtkdoc opt">(</span>video_window_xid <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">) {</span>
    GstXOverlay <span class="gtkdoc opt">*</span>xoverlay<span class="gtkdoc opt">;</span>
-   
+
    <span class="gtkdoc slc">// GST_MESSAGE_SRC (message) will be the video sink element</span>
    xoverlay <span class="gtkdoc opt">=</span> <span class="function">GST_X_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">));</span>
    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle">gst_x_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span>xoverlay<span class="gtkdoc opt">,</span> video_window_xid<span class="gtkdoc opt">);</span>
  <span class="gtkdoc opt">}</span> <span class="keyword">else</span> <span class="gtkdoc opt">{</span>
    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Should have obtained video_window_xid by now!&quot;</span><span class="gtkdoc opt">);</span>
  <span class="gtkdoc opt">}</span>
+
  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
  <span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">}</span>
@@ -372,12 +374,12 @@ used in the callback).
 <span class="gtkdoc ppc">#if GTK_CHECK_VERSION(2,18,0)</span>
   <span class="gtkdoc slc">// This is here just for pedagogical purposes, GDK_WINDOW_XID will call</span>
   <span class="gtkdoc slc">// it as well in newer Gtk versions</span>
-  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
+  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/gdk/gdk3-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Couldn't create native window needed for GstXOverlay!&quot;</span><span class="gtkdoc opt">);</span>
 <span class="gtkdoc ppc">#endif</span>
 
 <span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
-  video_window_xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">);</span>
+  video_window_xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
 <span class="gtkdoc ppc">#endif</span>
 <span class="gtkdoc opt">}</span>
 <span class="gtkdoc opt">...</span>
@@ -387,25 +389,25 @@ used in the callback).
   GtkWidget <span class="gtkdoc opt">*</span>video_window<span class="gtkdoc opt">;</span>
   GtkWidget <span class="gtkdoc opt">*</span>app_window<span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">...</span>
-  app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
+  app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
-  video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
+  video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
   <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> <span class="string">&quot;realize&quot;</span><span class="gtkdoc opt">,</span>
       <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   <span class="gtkdoc slc">// usually the video_window will not be directly embedded into the</span>
   <span class="gtkdoc slc">// application window like this, but there will be many other widgets</span>
   <span class="gtkdoc slc">// and the video window will be embedded in one of them instead</span>
-  <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   <span class="gtkdoc slc">// show the GUI</span>
-  <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc slc">// realize window now so that the video window gets created and we can</span>
   <span class="gtkdoc slc">// obtain its XID before the pipeline is started up and the videosink</span>
   <span class="gtkdoc slc">// asks for the XID of the window to render onto</span>
-  <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>window<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc slc">// we should have the XID now</span>
   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_xid <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
@@ -430,7 +432,7 @@ used in the callback).
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp15853312"></a><h3>GstXOverlay and Qt</h3>
+<a name="idp17781264"></a><h3>GstXOverlay and Qt</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -514,13 +516,13 @@ used in the callback).
   GstElement <span class="gtkdoc opt">*</span>sink <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;xvimagesink&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
   <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html#gst-bin-add-many">gst_bin_add_many</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_BIN</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">),</span> src<span class="gtkdoc opt">,</span> sink<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
   <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-link">gst_element_link</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">,</span> sink<span class="gtkdoc opt">);</span>
-  
+
   <span class="gtkdoc slc">// prepare the ui</span>
 
   QWidget window<span class="gtkdoc opt">;</span>
   window<span class="gtkdoc opt">.</span><span class="function">resize</span><span class="gtkdoc opt">(</span><span class="number">320</span><span class="gtkdoc opt">,</span> <span class="number">240</span><span class="gtkdoc opt">);</span>
   window<span class="gtkdoc opt">.</span><span class="function">show</span><span class="gtkdoc opt">();</span>
-  
+
   WId xwinid <span class="gtkdoc opt">=</span> window<span class="gtkdoc opt">.</span><span class="function">winId</span><span class="gtkdoc opt">();</span>
   <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle">gst_x_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_X_OVERLAY</span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> xwinid<span class="gtkdoc opt">);</span>
 
@@ -536,7 +538,7 @@ used in the callback).
   <span class="gtkdoc opt">}</span>
 
   <span class="gtkdoc kwb">int</span> ret <span class="gtkdoc opt">=</span> app<span class="gtkdoc opt">.</span><span class="function">exec</span><span class="gtkdoc opt">();</span>
-  
+
   window<span class="gtkdoc opt">.</span><span class="function">hide</span><span class="gtkdoc opt">();</span>
   <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-set-state">gst_element_set_state</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> GST_STATE_NULL<span class="gtkdoc opt">);</span>
   <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">);</span>
@@ -574,14 +576,13 @@ Opaque <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"
   void (* set_xwindow_id)      (GstXOverlay *overlay,
                                 gulong       xwindow_id);
 #else
-  void (* set_xwindow_id_disabled) (GstXOverlay *overlay,
-                                gulong       xwindow_id);
+#endif
 #endif /* not GST_DISABLE_DEPRECATED */
 
   void (* expose)              (GstXOverlay *overlay);
-  
+
   void (* handle_events)       (GstXOverlay *overlay,
-                                gboolean     handle_events);  
+                                gboolean     handle_events);
 
   void (* set_render_rectangle) (GstXOverlay *overlay,
                                  gint x, gint y,
@@ -603,11 +604,7 @@ Opaque <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.set-xwindow-id"></a>set_xwindow_id</code></em> ()</span></p></td>
-<td>virtual method to configure the XWindow id</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.set-xwindow-id-disabled"></a>set_xwindow_id_disabled</code></em> ()</span></p></td>
-<td></td>
+<td>(deprecated) virtual method to configure the XWindow handle</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.expose"></a>expose</code></em> ()</span></p></td>
@@ -623,7 +620,7 @@ Opaque <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.set-window-handle"></a>set_window_handle</code></em> ()</span></p></td>
-<td></td>
+<td>virtual method to configure the window handle</td>
 </tr>
 </tbody>
 </table></div>
@@ -640,7 +637,7 @@ Opaque <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"
 <p>
 This will call the video overlay's set_xwindow_id method. You should
 use this method to tell to a XOverlay to display video output to a
-specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
+specific XWindow. Passing 0 as the <em class="parameter"><code>xwindow_id</code></em> will tell the overlay to
 stop using that window and create an internal one.
 </p>
 <div class="variablelist"><table border="0">
@@ -648,11 +645,11 @@ stop using that window and create an internal one.
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the XWindow on.</td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the window on.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>xwindow_id</code></em> :</span></p></td>
-<td>a <span class="type">XID</span> referencing the XWindow.</td>
+<td>a XID referencing the XWindow.</td>
 </tr>
 </tbody>
 </table></div>
@@ -681,7 +678,7 @@ This function should only be used by video overlay plugin developers.
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>xwindow_id</code></em> :</span></p></td>
-<td>a <span class="type">XID</span> referencing the XWindow.</td>
+<td>a XID referencing the XWindow.</td>
 </tr>
 </tbody>
 </table></div>
@@ -690,7 +687,7 @@ This function should only be used by video overlay plugin developers.
 <div class="refsect2">
 <a name="gst-x-overlay-got-window-handle"></a><h3>gst_x_overlay_got_window_handle ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_x_overlay_got_window_handle     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);</pre>
 <p>
 This will post a "have-xwindow-id" element message on the bus.
 </p>
@@ -715,23 +712,23 @@ This function should only be used by video overlay plugin developers.
 <div class="refsect2">
 <a name="gst-x-overlay-set-window-handle"></a><h3>gst_x_overlay_set_window_handle ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_x_overlay_set_window_handle     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);</pre>
 <p>
 This will call the video overlay's set_window_handle method. You
 should use this method to tell to a XOverlay to display video output to a
-specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
-stop using that window and create an internal one.
+specific window (e.g. an XWindow on X11). Passing 0 as the  <em class="parameter"><code>handle</code></em> will
+tell the overlay to stop using that window and create an internal one.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the XWindow on.</td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the window on.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>xwindow_id</code></em> :</span></p></td>
-<td>a <span class="type">XID</span> referencing the XWindow.</td>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>a handle referencing the window.</td>
 </tr>
 </tbody>
 </table></div>
@@ -743,7 +740,7 @@ stop using that window and create an internal one.
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_x_overlay_prepare_xwindow_id    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>);</pre>
 <p>
 This will post a "prepare-xwindow-id" element message on the bus
-to give applications an opportunity to call 
+to give applications an opportunity to call
 <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-xwindow-id" title="gst_x_overlay_set_xwindow_id ()"><code class="function">gst_x_overlay_set_xwindow_id()</code></a> before a plugin creates its own
 window.
 </p>
@@ -781,7 +778,7 @@ in the drawable even if the pipeline is PAUSED.
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> handle_events</code></em>);</pre>
 <p>
 Tell an overlay that it should handle events from the window system. These
-events are forwared upstream as navigation events. In some window system,
+events are forwarded upstream as navigation events. In some window system,
 events are not propagated in the window hierarchy if a client is listening
 for them. This method allows you to disable events handling completely
 from the XOverlay.
@@ -859,6 +856,6 @@ do not support subwindows.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs.devhelp b/docs/libs/html/gst-plugins-base-libs.devhelp
deleted file mode 100644 (file)
index dd83942..0000000
+++ /dev/null
@@ -1,1398 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 0.10 Library Reference Manual" link="index.html" author="" name="gst-plugins-base-libs">
-  <chapters>
-    <sub name="GStreamer Base Plugins Libraries" link="gstreamer-plugins-base.html">
-      <sub name="Compiling" link="compiling.html"/>
-      <sub name="App Library" link="gstreamer-app.html">
-        <sub name="appsrc" link="gst-plugins-base-libs-appsrc.html"/>
-        <sub name="appsink" link="gst-plugins-base-libs-appsink.html"/>
-      </sub>
-      <sub name="Audio Library" link="gstreamer-audio.html">
-        <sub name="gstaudio" link="gst-plugins-base-libs-gstaudio.html"/>
-        <sub name="gstaudioclock" link="gst-plugins-base-libs-gstaudioclock.html"/>
-        <sub name="gstaudiofilter" link="gst-plugins-base-libs-gstaudiofilter.html"/>
-        <sub name="gstaudiomixerutils" link="gst-plugins-base-libs-gstaudiomixerutils.html"/>
-        <sub name="gstaudiosink" link="gst-plugins-base-libs-gstaudiosink.html"/>
-        <sub name="gstaudiosrc" link="gst-plugins-base-libs-gstaudiosrc.html"/>
-        <sub name="gstbaseaudiosink" link="gst-plugins-base-libs-gstbaseaudiosink.html"/>
-        <sub name="gstbaseaudiosrc" link="gst-plugins-base-libs-gstbaseaudiosrc.html"/>
-        <sub name="gstmultichannel" link="gst-plugins-base-libs-gstmultichannel.html"/>
-        <sub name="gstringbuffer" link="gst-plugins-base-libs-gstringbuffer.html"/>
-      </sub>
-      <sub name="CDDA Library" link="gstreamer-cdda.html">
-        <sub name="gstcddabasesrc" link="gst-plugins-base-libs-gstcddabasesrc.html"/>
-      </sub>
-      <sub name="FFT Library" link="gstreamer-ffft.html">
-        <sub name="gstfft" link="gst-plugins-base-libs-gstfft.html"/>
-        <sub name="gstffts16" link="gst-plugins-base-libs-gstffts16.html"/>
-        <sub name="gstffts32" link="gst-plugins-base-libs-gstffts32.html"/>
-        <sub name="gstfftf32" link="gst-plugins-base-libs-gstfftf32.html"/>
-        <sub name="gstfftf64" link="gst-plugins-base-libs-gstfftf64.html"/>
-      </sub>
-      <sub name="FloatCast Library" link="gstreamer-floatcast.html">
-        <sub name="gstfloatcast" link="gst-plugins-base-libs-gstfloatcast.html"/>
-      </sub>
-      <sub name="Interfaces Library" link="gstreamer-interfaces.html">
-        <sub name="gstcolorbalance" link="gst-plugins-base-libs-gstcolorbalance.html"/>
-        <sub name="gstcolorbalancechannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html"/>
-        <sub name="gstmixer" link="gst-plugins-base-libs-gstmixer.html"/>
-        <sub name="gstmixeroptions" link="gst-plugins-base-libs-gstmixeroptions.html"/>
-        <sub name="gstmixertrack" link="gst-plugins-base-libs-gstmixertrack.html"/>
-        <sub name="gstnavigation" link="gst-plugins-base-libs-gstnavigation.html"/>
-        <sub name="gstpropertyprobe" link="gst-plugins-base-libs-gstpropertyprobe.html"/>
-        <sub name="gststreamvolume" link="gst-plugins-base-libs-gststreamvolume.html"/>
-        <sub name="gsttuner" link="gst-plugins-base-libs-gsttuner.html"/>
-        <sub name="gsttunerchannel" link="gst-plugins-base-libs-gsttunerchannel.html"/>
-        <sub name="gsttunernorm" link="gst-plugins-base-libs-gsttunernorm.html"/>
-        <sub name="gstvideoorientation" link="gst-plugins-base-libs-gstvideoorientation.html"/>
-        <sub name="gstxoverlay" link="gst-plugins-base-libs-gstxoverlay.html"/>
-      </sub>
-      <sub name="Network Buffer Library" link="gstreamer-netbuffer.html">
-        <sub name="gstnetbuffer" link="gst-plugins-base-libs-gstnetbuffer.html"/>
-      </sub>
-      <sub name="Riff Media Library" link="gstreamer-riff.html">
-        <sub name="gstriff" link="gst-plugins-base-libs-gstriff.html"/>
-      </sub>
-      <sub name="RTP Library" link="gstreamer-rtp.html">
-        <sub name="gstbasertpaudiopayload" link="gst-plugins-base-libs-gstbasertpaudiopayload.html"/>
-        <sub name="gstbasertpdepayload" link="gst-plugins-base-libs-gstbasertpdepayload.html"/>
-        <sub name="gstbasertppayload" link="gst-plugins-base-libs-gstbasertppayload.html"/>
-        <sub name="gstrtpbuffer" link="gst-plugins-base-libs-gstrtpbuffer.html"/>
-        <sub name="gstrtcpbuffer" link="gst-plugins-base-libs-gstrtcpbuffer.html"/>
-        <sub name="gstrtppayloads" link="gst-plugins-base-libs-gstrtppayloads.html"/>
-      </sub>
-      <sub name="RTSP Library" link="gstreamer-rtsp.html">
-        <sub name="gstrtspbase64" link="gst-plugins-base-libs-gstrtspbase64.html"/>
-        <sub name="gstrtspconnection" link="gst-plugins-base-libs-gstrtspconnection.html"/>
-        <sub name="gstrtspdefs" link="gst-plugins-base-libs-gstrtspdefs.html"/>
-        <sub name="gstrtspextension" link="gst-plugins-base-libs-gstrtspextension.html"/>
-        <sub name="gstrtspmessage" link="gst-plugins-base-libs-gstrtspmessage.html"/>
-        <sub name="gstrtsprange" link="gst-plugins-base-libs-gstrtsprange.html"/>
-        <sub name="gstrtsptransport" link="gst-plugins-base-libs-gstrtsptransport.html"/>
-        <sub name="gstrtspurl" link="gst-plugins-base-libs-gstrtspurl.html"/>
-      </sub>
-      <sub name="SDP Library" link="gstreamer-sdp.html">
-        <sub name="gstsdpmessage" link="gst-plugins-base-libs-gstsdpmessage.html"/>
-      </sub>
-      <sub name="Tag Support Library" link="gstreamer-tag.html">
-        <sub name="gsttag" link="gst-plugins-base-libs-gsttag.html"/>
-        <sub name="gsttagvorbis" link="gst-plugins-base-libs-gsttagvorbis.html"/>
-        <sub name="gsttagid3" link="gst-plugins-base-libs-gsttagid3.html"/>
-        <sub name="gsttagxmp" link="gst-plugins-base-libs-gsttagxmp.html"/>
-        <sub name="gsttagdemux" link="gst-plugins-base-libs-gsttagdemux.html"/>
-        <sub name="gsttaglanguagecodes" link="gst-plugins-base-libs-gsttaglanguagecodes.html"/>
-      </sub>
-      <sub name="Base Utils Library" link="gstreamer-base-utils.html">
-        <sub name="gstpbutils" link="gst-plugins-base-libs-gstpbutils.html"/>
-        <sub name="gstpbutilscodecutils" link="gst-plugins-base-libs-gstpbutilscodecutils.html"/>
-        <sub name="gstpbutilsdescriptions" link="gst-plugins-base-libs-gstpbutilsdescriptions.html"/>
-        <sub name="gstpbutilsmissingplugins" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html"/>
-        <sub name="gstpbutilsinstallplugins" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html"/>
-        <sub name="gstdiscoverer" link="gst-plugins-base-libs-gstdiscoverer.html"/>
-        <sub name="encoding-profile" link="gst-plugins-base-libs-encoding-profile.html"/>
-      </sub>
-      <sub name="Video Library" link="gstreamer-video.html">
-        <sub name="gstvideo" link="gst-plugins-base-libs-gstvideo.html"/>
-        <sub name="gstvideofilter" link="gst-plugins-base-libs-gstvideofilter.html"/>
-        <sub name="gstvideosink" link="gst-plugins-base-libs-gstvideosink.html"/>
-      </sub>
-    </sub>
-    <sub name="Object Hierarchy" link="gstreamer-libs-hierarchy.html"/>
-    <sub name="Index" link="api-index-full.html"/>
-    <sub name="Index of deprecated API" link="api-index-deprecated.html"/>
-    <sub name="Annotation Glossary" link="annotation-glossary.html"/>
-  </chapters>
-  <functions>
-    <function name="struct GstAppSrc" link="gst-plugins-base-libs-appsrc.html#GstAppSrc"/>
-    <function name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
-    <function name="gst_app_src_set_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps"/>
-    <function name="gst_app_src_get_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps"/>
-    <function name="gst_app_src_get_latency ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency"/>
-    <function name="gst_app_src_set_latency ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency"/>
-    <function name="gst_app_src_set_size ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size"/>
-    <function name="gst_app_src_get_size ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size"/>
-    <function name="gst_app_src_set_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type"/>
-    <function name="gst_app_src_get_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type"/>
-    <function name="gst_app_src_set_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes"/>
-    <function name="gst_app_src_get_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes"/>
-    <function name="gst_app_src_get_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals"/>
-    <function name="gst_app_src_set_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals"/>
-    <function name="GstAppSrcCallbacks" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks"/>
-    <function name="gst_app_src_set_callbacks ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks"/>
-    <function name="gst_app_src_push_buffer ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer"/>
-    <function name="gst_app_src_end_of_stream ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream"/>
-    <function name="struct GstAppSink" link="gst-plugins-base-libs-appsink.html#GstAppSink"/>
-    <function name="gst_app_sink_set_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps"/>
-    <function name="gst_app_sink_get_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps"/>
-    <function name="gst_app_sink_is_eos ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"/>
-    <function name="gst_app_sink_set_emit_signals ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-emit-signals"/>
-    <function name="gst_app_sink_get_emit_signals ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals"/>
-    <function name="gst_app_sink_set_max_buffers ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-max-buffers"/>
-    <function name="gst_app_sink_get_max_buffers ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers"/>
-    <function name="gst_app_sink_set_drop ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop"/>
-    <function name="gst_app_sink_get_drop ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop"/>
-    <function name="gst_app_sink_pull_preroll ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll"/>
-    <function name="gst_app_sink_pull_buffer ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer"/>
-    <function name="gst_app_sink_pull_buffer_list ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list"/>
-    <function name="GstAppSinkCallbacks" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks"/>
-    <function name="gst_app_sink_set_callbacks ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks"/>
-    <function name="enum GstAudioFieldFlag" link="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag"/>
-    <function name="GST_FRAMES_TO_CLOCK_TIME()" link="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS"/>
-    <function name="GST_CLOCK_TIME_TO_FRAMES()" link="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS"/>
-    <function name="GST_AUDIO_DEF_RATE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS"/>
-    <function name="GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-PAD-TEMPLATE-CAPS"/>
-    <function name="GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-STANDARD-PAD-TEMPLATE-CAPS"/>
-    <function name="GST_AUDIO_INT_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-PAD-TEMPLATE-CAPS"/>
-    <function name="GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-STANDARD-PAD-TEMPLATE-CAPS"/>
-    <function name="gst_audio_frame_byte_size ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-byte-size"/>
-    <function name="gst_audio_frame_length ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-length"/>
-    <function name="gst_audio_duration_from_pad_buffer ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-duration-from-pad-buffer"/>
-    <function name="gst_audio_is_buffer_framed ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-is-buffer-framed"/>
-    <function name="gst_audio_structure_set_int ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-structure-set-int"/>
-    <function name="gst_audio_buffer_clip ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip"/>
-    <function name="struct GstAudioClock" link="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock-struct"/>
-    <function name="GstAudioClockGetTimeFunc ()" link="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc"/>
-    <function name="gst_audio_clock_new ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new"/>
-    <function name="gst_audio_clock_new_full ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new-full"/>
-    <function name="gst_audio_clock_adjust ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust"/>
-    <function name="gst_audio_clock_get_time ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time"/>
-    <function name="gst_audio_clock_reset ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset"/>
-    <function name="gst_audio_clock_invalidate ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate"/>
-    <function name="struct GstAudioFilter" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct"/>
-    <function name="struct GstAudioFilterClass" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass"/>
-    <function name="gst_audio_filter_class_add_pad_templates ()" link="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates"/>
-    <function name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp7862112"/>
-    <function name="GstAudioMixerFilterFunc ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc"/>
-    <function name="gst_audio_default_registry_mixer_filter ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter"/>
-    <function name="struct GstAudioSink" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct"/>
-    <function name="struct GstAudioSinkClass" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass"/>
-    <function name="struct GstAudioSrc" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct"/>
-    <function name="struct GstAudioSrcClass" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass"/>
-    <function name="struct GstBaseAudioSink" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink-struct"/>
-    <function name="struct GstBaseAudioSinkClass" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass"/>
-    <function name="enum GstBaseAudioSinkSlaveMethod" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod"/>
-    <function name="GST_BASE_AUDIO_SINK_CLOCK()" link="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-CLOCK:CAPS"/>
-    <function name="GST_BASE_AUDIO_SINK_PAD()" link="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-PAD:CAPS"/>
-    <function name="gst_base_audio_sink_create_ringbuffer ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-create-ringbuffer"/>
-    <function name="gst_base_audio_sink_set_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-provide-clock"/>
-    <function name="gst_base_audio_sink_get_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-provide-clock"/>
-    <function name="gst_base_audio_sink_set_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method"/>
-    <function name="gst_base_audio_sink_get_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method"/>
-    <function name="gst_base_audio_sink_get_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance"/>
-    <function name="gst_base_audio_sink_set_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance"/>
-    <function name="The &quot;buffer-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time"/>
-    <function name="The &quot;can-activate-pull&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull"/>
-    <function name="The &quot;drift-tolerance&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance"/>
-    <function name="The &quot;latency-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time"/>
-    <function name="The &quot;provide-clock&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock"/>
-    <function name="The &quot;slave-method&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method"/>
-    <function name="struct GstBaseAudioSrc" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc-struct"/>
-    <function name="struct GstBaseAudioSrcClass" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcClass"/>
-    <function name="enum GstBaseAudioSrcSlaveMethod" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod"/>
-    <function name="GST_BASE_AUDIO_SRC_CLOCK()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-CLOCK:CAPS"/>
-    <function name="GST_BASE_AUDIO_SRC_PAD()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-PAD:CAPS"/>
-    <function name="gst_base_audio_src_create_ringbuffer ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-create-ringbuffer"/>
-    <function name="gst_base_audio_src_set_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-provide-clock"/>
-    <function name="gst_base_audio_src_get_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock"/>
-    <function name="gst_base_audio_src_get_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method"/>
-    <function name="gst_base_audio_src_set_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method"/>
-    <function name="The &quot;actual-buffer-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time"/>
-    <function name="The &quot;actual-latency-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time"/>
-    <function name="The &quot;buffer-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time"/>
-    <function name="The &quot;latency-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time"/>
-    <function name="The &quot;provide-clock&quot; property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock"/>
-    <function name="The &quot;slave-method&quot; property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method"/>
-    <function name="enum GstAudioChannelPosition" link="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition"/>
-    <function name="gst_audio_fixate_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions"/>
-    <function name="gst_audio_get_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions"/>
-    <function name="gst_audio_set_caps_channel_positions_list ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list"/>
-    <function name="gst_audio_set_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions"/>
-    <function name="gst_audio_set_structure_channel_positions_list ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list"/>
-    <function name="gst_audio_check_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions"/>
-    <function name="" link="gst-plugins-base-libs-gstringbuffer.html#idp11277488"/>
-    <function name="struct GstRingBuffer" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer-struct"/>
-    <function name="struct GstRingBufferClass" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferClass"/>
-    <function name="struct GstRingBufferSpec" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec"/>
-    <function name="GstRingBufferCallback ()" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferCallback"/>
-    <function name="enum GstRingBufferSegState" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSegState"/>
-    <function name="enum GstRingBufferState" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferState"/>
-    <function name="enum GstBufferFormat" link="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat"/>
-    <function name="enum GstBufferFormatType" link="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType"/>
-    <function name="GST_RING_BUFFER_BROADCAST()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-BROADCAST:CAPS"/>
-    <function name="GST_RING_BUFFER_GET_COND()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-GET-COND:CAPS"/>
-    <function name="GST_RING_BUFFER_SIGNAL()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-SIGNAL:CAPS"/>
-    <function name="GST_RING_BUFFER_WAIT()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-WAIT:CAPS"/>
-    <function name="gst_ring_buffer_set_callback ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-callback"/>
-    <function name="gst_ring_buffer_acquire ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-acquire"/>
-    <function name="gst_ring_buffer_release ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-release"/>
-    <function name="gst_ring_buffer_is_acquired ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-is-acquired"/>
-    <function name="gst_ring_buffer_activate ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-activate"/>
-    <function name="gst_ring_buffer_is_active ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-is-active"/>
-    <function name="gst_ring_buffer_start ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-start"/>
-    <function name="gst_ring_buffer_pause ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-pause"/>
-    <function name="gst_ring_buffer_stop ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-stop"/>
-    <function name="gst_ring_buffer_delay ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-delay"/>
-    <function name="gst_ring_buffer_samples_done ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-samples-done"/>
-    <function name="gst_ring_buffer_set_sample ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-sample"/>
-    <function name="gst_ring_buffer_commit ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit"/>
-    <function name="gst_ring_buffer_commit_full ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit-full"/>
-    <function name="gst_ring_buffer_convert ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-convert"/>
-    <function name="gst_ring_buffer_prepare_read ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-prepare-read"/>
-    <function name="gst_ring_buffer_read ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-read"/>
-    <function name="gst_ring_buffer_clear ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-clear"/>
-    <function name="gst_ring_buffer_clear_all ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-clear-all"/>
-    <function name="gst_ring_buffer_advance ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-advance"/>
-    <function name="gst_ring_buffer_close_device ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-close-device"/>
-    <function name="gst_ring_buffer_open_device ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-open-device"/>
-    <function name="gst_ring_buffer_device_is_open ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-device-is-open"/>
-    <function name="gst_ring_buffer_may_start ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-may-start"/>
-    <function name="gst_ring_buffer_parse_caps ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-parse-caps"/>
-    <function name="gst_ring_buffer_set_flushing ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-flushing"/>
-    <function name="Using GstCddaBaseSrc-based elements in applications" link="gst-plugins-base-libs-gstcddabasesrc.html#idp11424608"/>
-    <function name="struct GstCddaBaseSrc" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct"/>
-    <function name="struct GstCddaBaseSrcClass" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass"/>
-    <function name="struct GstCddaBaseSrcTrack" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack"/>
-    <function name="enum GstCddaBaseSrcMode" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcMode"/>
-    <function name="gst_cdda_base_src_add_track ()" link="gst-plugins-base-libs-gstcddabasesrc.html#gst-cdda-base-src-add-track"/>
-    <function name="The &quot;device&quot; property" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--device"/>
-    <function name="The &quot;mode&quot; property" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--mode"/>
-    <function name="The &quot;track&quot; property" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--track"/>
-    <function name="enum GstFFTWindow" link="gst-plugins-base-libs-gstfft.html#GstFFTWindow"/>
-    <function name="gst_fft_next_fast_length ()" link="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length"/>
-    <function name="struct GstFFTS16" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16"/>
-    <function name="struct GstFFTS16Complex" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex"/>
-    <function name="gst_fft_s16_new ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new"/>
-    <function name="gst_fft_s16_fft ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft"/>
-    <function name="gst_fft_s16_inverse_fft ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft"/>
-    <function name="gst_fft_s16_window ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window"/>
-    <function name="gst_fft_s16_free ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free"/>
-    <function name="struct GstFFTS32" link="gst-plugins-base-libs-gstffts32.html#GstFFTS32"/>
-    <function name="struct GstFFTS32Complex" link="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex"/>
-    <function name="gst_fft_s32_new ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new"/>
-    <function name="gst_fft_s32_fft ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft"/>
-    <function name="gst_fft_s32_inverse_fft ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft"/>
-    <function name="gst_fft_s32_window ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window"/>
-    <function name="gst_fft_s32_free ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free"/>
-    <function name="struct GstFFTF32" link="gst-plugins-base-libs-gstfftf32.html#GstFFTF32"/>
-    <function name="struct GstFFTF32Complex" link="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex"/>
-    <function name="gst_fft_f32_new ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new"/>
-    <function name="gst_fft_f32_fft ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft"/>
-    <function name="gst_fft_f32_inverse_fft ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft"/>
-    <function name="gst_fft_f32_window ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window"/>
-    <function name="gst_fft_f32_free ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free"/>
-    <function name="struct GstFFTF64" link="gst-plugins-base-libs-gstfftf64.html#GstFFTF64"/>
-    <function name="struct GstFFTF64Complex" link="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex"/>
-    <function name="gst_fft_f64_new ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new"/>
-    <function name="gst_fft_f64_fft ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft"/>
-    <function name="gst_fft_f64_inverse_fft ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft"/>
-    <function name="gst_fft_f64_window ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window"/>
-    <function name="gst_fft_f64_free ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free"/>
-    <function name="gst_cast_double()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double"/>
-    <function name="gst_cast_float()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float"/>
-    <function name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp11606512"/>
-    <function name="GstColorBalance" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct"/>
-    <function name="struct GstColorBalanceClass" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass"/>
-    <function name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
-    <function name="gst_color_balance_list_channels ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels"/>
-    <function name="gst_color_balance_get_value ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value"/>
-    <function name="gst_color_balance_set_value ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value"/>
-    <function name="gst_color_balance_value_changed ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed"/>
-    <function name="gst_color_balance_get_balance_type ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type"/>
-    <function name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
-    <function name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp8229152"/>
-    <function name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
-    <function name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
-    <function name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
-    <function name="GstMixer" link="gst-plugins-base-libs-gstmixer.html#GstMixer-struct"/>
-    <function name="enum GstMixerType" link="gst-plugins-base-libs-gstmixer.html#GstMixerType"/>
-    <function name="enum GstMixerFlags" link="gst-plugins-base-libs-gstmixer.html#GstMixerFlags"/>
-    <function name="enum GstMixerMessageType" link="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType"/>
-    <function name="gst_mixer_list_tracks ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks"/>
-    <function name="gst_mixer_get_volume ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume"/>
-    <function name="gst_mixer_set_volume ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume"/>
-    <function name="gst_mixer_set_mute ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute"/>
-    <function name="gst_mixer_set_record ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record"/>
-    <function name="gst_mixer_set_option ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option"/>
-    <function name="gst_mixer_mute_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled"/>
-    <function name="gst_mixer_record_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled"/>
-    <function name="gst_mixer_volume_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed"/>
-    <function name="gst_mixer_option_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed"/>
-    <function name="gst_mixer_options_list_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed"/>
-    <function name="gst_mixer_get_option ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option"/>
-    <function name="gst_mixer_mixer_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed"/>
-    <function name="gst_mixer_get_mixer_flags ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags"/>
-    <function name="gst_mixer_get_mixer_type ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type"/>
-    <function name="gst_mixer_message_get_type ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type"/>
-    <function name="gst_mixer_message_parse_mute_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled"/>
-    <function name="gst_mixer_message_parse_option_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed"/>
-    <function name="gst_mixer_message_parse_record_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled"/>
-    <function name="gst_mixer_message_parse_volume_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed"/>
-    <function name="gst_mixer_message_parse_options_list_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed"/>
-    <function name="The &quot;mute-toggled&quot; signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-mute-toggled"/>
-    <function name="The &quot;option-changed&quot; signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-option-changed"/>
-    <function name="The &quot;record-toggled&quot; signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-record-toggled"/>
-    <function name="The &quot;volume-changed&quot; signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-volume-changed"/>
-    <function name="struct GstMixerOptions" link="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct"/>
-    <function name="gst_mixer_options_get_values ()" link="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values"/>
-    <function name="struct GstMixerTrack" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct"/>
-    <function name="enum GstMixerTrackFlags" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags"/>
-    <function name="GST_MIXER_TRACK_HAS_FLAG()" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS"/>
-    <function name="The &quot;flags&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags"/>
-    <function name="The &quot;index&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index"/>
-    <function name="The &quot;label&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label"/>
-    <function name="The &quot;max-volume&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume"/>
-    <function name="The &quot;min-volume&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume"/>
-    <function name="The &quot;num-channels&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels"/>
-    <function name="The &quot;untranslated-label&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label"/>
-    <function name="GstNavigation" link="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct"/>
-    <function name="struct GstNavigationInterface" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface"/>
-    <function name="enum GstNavigationCommand" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand"/>
-    <function name="enum GstNavigationEventType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType"/>
-    <function name="enum GstNavigationMessageType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType"/>
-    <function name="enum GstNavigationQueryType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType"/>
-    <function name="gst_navigation_send_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event"/>
-    <function name="gst_navigation_send_key_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event"/>
-    <function name="gst_navigation_send_mouse_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event"/>
-    <function name="gst_navigation_send_command ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command"/>
-    <function name="gst_navigation_event_parse_command ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command"/>
-    <function name="gst_navigation_event_parse_key_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event"/>
-    <function name="gst_navigation_event_parse_mouse_button_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event"/>
-    <function name="gst_navigation_event_parse_mouse_move_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event"/>
-    <function name="gst_navigation_message_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type"/>
-    <function name="gst_navigation_message_new_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed"/>
-    <function name="gst_navigation_message_new_commands_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed"/>
-    <function name="gst_navigation_message_new_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over"/>
-    <function name="gst_navigation_message_parse_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over"/>
-    <function name="gst_navigation_message_parse_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed"/>
-    <function name="gst_navigation_query_new_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles"/>
-    <function name="gst_navigation_query_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type"/>
-    <function name="gst_navigation_query_new_commands ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands"/>
-    <function name="gst_navigation_query_parse_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles"/>
-    <function name="gst_navigation_query_parse_commands_length ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length"/>
-    <function name="gst_navigation_query_parse_commands_nth ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth"/>
-    <function name="gst_navigation_query_set_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles"/>
-    <function name="gst_navigation_query_set_commands ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands"/>
-    <function name="gst_navigation_query_set_commandsv ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS"/>
-    <function name="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS"/>
-    <function name="GstPropertyProbe" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-struct"/>
-    <function name="struct GstPropertyProbeInterface" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbeInterface"/>
-    <function name="gst_property_probe_get_properties ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-properties"/>
-    <function name="gst_property_probe_get_property ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-property"/>
-    <function name="gst_property_probe_get_values ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values"/>
-    <function name="gst_property_probe_get_values_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values-name"/>
-    <function name="gst_property_probe_needs_probe ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe"/>
-    <function name="gst_property_probe_needs_probe_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe-name"/>
-    <function name="gst_property_probe_probe_and_get_values ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values"/>
-    <function name="gst_property_probe_probe_and_get_values_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values-name"/>
-    <function name="gst_property_probe_probe_property ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property"/>
-    <function name="gst_property_probe_probe_property_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name"/>
-    <function name="The &quot;probe-needed&quot; signal" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed"/>
-    <function name="" link="gst-plugins-base-libs-gststreamvolume.html#idp13350128"/>
-    <function name="GstStreamVolume" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct"/>
-    <function name="enum GstStreamVolumeFormat" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat"/>
-    <function name="gst_stream_volume_get_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume"/>
-    <function name="gst_stream_volume_set_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-volume"/>
-    <function name="gst_stream_volume_get_mute ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-mute"/>
-    <function name="gst_stream_volume_set_mute ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-mute"/>
-    <function name="gst_stream_volume_convert_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume"/>
-    <function name="The &quot;mute&quot; property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute"/>
-    <function name="The &quot;volume&quot; property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume"/>
-    <function name="" link="gst-plugins-base-libs-gsttuner.html#idp15075664"/>
-    <function name="GstTuner" link="gst-plugins-base-libs-gsttuner.html#GstTuner-struct"/>
-    <function name="struct GstTunerClass" link="gst-plugins-base-libs-gsttuner.html#GstTunerClass"/>
-    <function name="gst_tuner_list_channels ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels"/>
-    <function name="gst_tuner_get_channel ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-channel"/>
-    <function name="gst_tuner_set_channel ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-channel"/>
-    <function name="gst_tuner_list_norms ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms"/>
-    <function name="gst_tuner_get_norm ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-norm"/>
-    <function name="gst_tuner_set_norm ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-norm"/>
-    <function name="gst_tuner_get_frequency ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency"/>
-    <function name="gst_tuner_set_frequency ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency"/>
-    <function name="gst_tuner_signal_strength ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength"/>
-    <function name="gst_tuner_find_norm_by_name ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-norm-by-name"/>
-    <function name="gst_tuner_find_channel_by_name ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-channel-by-name"/>
-    <function name="gst_tuner_channel_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-channel-changed"/>
-    <function name="gst_tuner_norm_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-norm-changed"/>
-    <function name="gst_tuner_frequency_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-frequency-changed"/>
-    <function name="gst_tuner_signal_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-changed"/>
-    <function name="The &quot;channel-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed"/>
-    <function name="The &quot;frequency-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed"/>
-    <function name="The &quot;norm-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed"/>
-    <function name="The &quot;signal-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed"/>
-    <function name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp10457584"/>
-    <function name="struct GstTunerChannel" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct"/>
-    <function name="enum GstTunerChannelFlags" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags"/>
-    <function name="GST_TUNER_CHANNEL_HAS_FLAG()" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS"/>
-    <function name="The &quot;frequency-changed&quot; signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed"/>
-    <function name="The &quot;signal-changed&quot; signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed"/>
-    <function name="" link="gst-plugins-base-libs-gsttunernorm.html#idp9600144"/>
-    <function name="struct GstTunerNorm" link="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct"/>
-    <function name="GstVideoOrientation" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct"/>
-    <function name="struct GstVideoOrientationInterface" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface"/>
-    <function name="gst_video_orientation_get_hcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hcenter"/>
-    <function name="gst_video_orientation_get_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hflip"/>
-    <function name="gst_video_orientation_get_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-vcenter"/>
-    <function name="gst_video_orientation_get_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-vflip"/>
-    <function name="gst_video_orientation_set_hcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hcenter"/>
-    <function name="gst_video_orientation_set_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip"/>
-    <function name="gst_video_orientation_set_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter"/>
-    <function name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip"/>
-    <function name="" link="gst-plugins-base-libs-gstxoverlay.html#idp15827040"/>
-    <function name="Two basic usage scenarios" link="gst-plugins-base-libs-gstxoverlay.html#idp15836384"/>
-    <function name="GstXOverlay and Gtk+" link="gst-plugins-base-libs-gstxoverlay.html#idp15848544"/>
-    <function name="GstXOverlay and Qt" link="gst-plugins-base-libs-gstxoverlay.html#idp15853312"/>
-    <function name="GstXOverlay" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay-struct"/>
-    <function name="struct GstXOverlayClass" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlayClass"/>
-    <function name="gst_x_overlay_set_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-xwindow-id"/>
-    <function name="gst_x_overlay_got_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-xwindow-id"/>
-    <function name="gst_x_overlay_got_window_handle ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-window-handle"/>
-    <function name="gst_x_overlay_set_window_handle ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle"/>
-    <function name="gst_x_overlay_prepare_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-prepare-xwindow-id"/>
-    <function name="gst_x_overlay_expose ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-expose"/>
-    <function name="gst_x_overlay_handle_events ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-handle-events"/>
-    <function name="gst_x_overlay_set_render_rectangle ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-render-rectangle"/>
-    <function name="struct GstNetBuffer" link="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer"/>
-    <function name="enum GstNetType" link="gst-plugins-base-libs-gstnetbuffer.html#GstNetType"/>
-    <function name="GST_NETADDRESS_MAX_LEN" link="gst-plugins-base-libs-gstnetbuffer.html#GST-NETADDRESS-MAX-LEN:CAPS"/>
-    <function name="struct GstNetAddress" link="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress"/>
-    <function name="gst_netbuffer_new ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new"/>
-    <function name="gst_netaddress_get_net_type ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type"/>
-    <function name="gst_netaddress_set_ip4_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address"/>
-    <function name="gst_netaddress_get_ip4_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address"/>
-    <function name="gst_netaddress_set_ip6_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address"/>
-    <function name="gst_netaddress_get_ip6_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address"/>
-    <function name="gst_netaddress_get_address_bytes ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes"/>
-    <function name="gst_netaddress_set_address_bytes ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes"/>
-    <function name="gst_netaddress_equal ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal"/>
-    <function name="gst_netaddress_to_string ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string"/>
-    <function name="GST_RIFF_00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS"/>
-    <function name="GST_RIFF_0021" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS"/>
-    <function name="GST_RIFF_0031" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS"/>
-    <function name="GST_RIFF_0032" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS"/>
-    <function name="GST_RIFF_00AM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS"/>
-    <function name="GST_RIFF_00__" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS"/>
-    <function name="GST_RIFF_00db" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db"/>
-    <function name="GST_RIFF_00dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc"/>
-    <function name="GST_RIFF_00dx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx"/>
-    <function name="GST_RIFF_00id" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id"/>
-    <function name="GST_RIFF_00iv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv"/>
-    <function name="GST_RIFF_00pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc"/>
-    <function name="GST_RIFF_00rt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt"/>
-    <function name="GST_RIFF_00vc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc"/>
-    <function name="GST_RIFF_00xm" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm"/>
-    <function name="GST_RIFF_00xx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx"/>
-    <function name="GST_RIFF_01" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS"/>
-    <function name="GST_RIFF_01dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc"/>
-    <function name="GST_RIFF_01pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc"/>
-    <function name="GST_RIFF_01wb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb"/>
-    <function name="GST_RIFF_02" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS"/>
-    <function name="GST_RIFF_03" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS"/>
-    <function name="GST_RIFF_04" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS"/>
-    <function name="GST_RIFF_05" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS"/>
-    <function name="GST_RIFF_06" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS"/>
-    <function name="GST_RIFF_07" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS"/>
-    <function name="GST_RIFF_AURA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS"/>
-    <function name="GST_RIFF_BW10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS"/>
-    <function name="GST_RIFF_CCC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS"/>
-    <function name="GST_RIFF_CRAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS"/>
-    <function name="GST_RIFF_CVID" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS"/>
-    <function name="GST_RIFF_CYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS"/>
-    <function name="GST_RIFF_DIB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS"/>
-    <function name="GST_RIFF_DISP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS"/>
-    <function name="GST_RIFF_DIV3" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS"/>
-    <function name="GST_RIFF_DMB1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS"/>
-    <function name="GST_RIFF_FCCH_MSVC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS"/>
-    <function name="GST_RIFF_FCCH_RLE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS"/>
-    <function name="GST_RIFF_FCCH_msvc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc"/>
-    <function name="GST_RIFF_FCC_auds" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds"/>
-    <function name="GST_RIFF_FCC_iavs" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs"/>
-    <function name="GST_RIFF_FCC_pads" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads"/>
-    <function name="GST_RIFF_FCC_txts" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts"/>
-    <function name="GST_RIFF_FCC_vidc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc"/>
-    <function name="GST_RIFF_FCC_vids" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids"/>
-    <function name="GST_RIFF_FF00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS"/>
-    <function name="GST_RIFF_H263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS"/>
-    <function name="GST_RIFF_I420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS"/>
-    <function name="GST_RIFF_IDIT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS"/>
-    <function name="GST_RIFF_IJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS"/>
-    <function name="GST_RIFF_INFO_IARL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS"/>
-    <function name="GST_RIFF_INFO_IART" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS"/>
-    <function name="GST_RIFF_INFO_ICMS" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS"/>
-    <function name="GST_RIFF_INFO_ICMT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS"/>
-    <function name="GST_RIFF_INFO_ICOP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS"/>
-    <function name="GST_RIFF_INFO_ICRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS"/>
-    <function name="GST_RIFF_INFO_ICRP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS"/>
-    <function name="GST_RIFF_INFO_IDIM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS"/>
-    <function name="GST_RIFF_INFO_IDPI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS"/>
-    <function name="GST_RIFF_INFO_IENG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS"/>
-    <function name="GST_RIFF_INFO_IGNR" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS"/>
-    <function name="GST_RIFF_INFO_IKEY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS"/>
-    <function name="GST_RIFF_INFO_ILGT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS"/>
-    <function name="GST_RIFF_INFO_IMED" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS"/>
-    <function name="GST_RIFF_INFO_INAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS"/>
-    <function name="GST_RIFF_INFO_IPLT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS"/>
-    <function name="GST_RIFF_INFO_IPRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS"/>
-    <function name="GST_RIFF_INFO_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS"/>
-    <function name="GST_RIFF_INFO_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS"/>
-    <function name="GST_RIFF_INFO_ISHP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS"/>
-    <function name="GST_RIFF_INFO_ISRC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS"/>
-    <function name="GST_RIFF_INFO_ISRF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS"/>
-    <function name="GST_RIFF_INFO_ITCH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS"/>
-    <function name="GST_RIFF_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS"/>
-    <function name="GST_RIFF_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS"/>
-    <function name="GST_RIFF_IV31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS"/>
-    <function name="GST_RIFF_IV32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS"/>
-    <function name="GST_RIFF_IV41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS"/>
-    <function name="GST_RIFF_IV50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS"/>
-    <function name="GST_RIFF_IYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS"/>
-    <function name="GST_RIFF_JPEG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS"/>
-    <function name="GST_RIFF_L263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS"/>
-    <function name="GST_RIFF_LIST_AVIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS"/>
-    <function name="GST_RIFF_LIST_INFO" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS"/>
-    <function name="GST_RIFF_LIST_adtl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl"/>
-    <function name="GST_RIFF_LIST_hdrl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl"/>
-    <function name="GST_RIFF_LIST_movi" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi"/>
-    <function name="GST_RIFF_LIST_odml" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml"/>
-    <function name="GST_RIFF_LIST_strl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl"/>
-    <function name="GST_RIFF_M263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS"/>
-    <function name="GST_RIFF_MJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS"/>
-    <function name="GST_RIFF_MPIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS"/>
-    <function name="GST_RIFF_MVI1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS"/>
-    <function name="GST_RIFF_NONE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS"/>
-    <function name="GST_RIFF_PACK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS"/>
-    <function name="GST_RIFF_Q1_0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS"/>
-    <function name="GST_RIFF_RAW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS"/>
-    <function name="GST_RIFF_RGB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS"/>
-    <function name="GST_RIFF_RIFF_AVI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS"/>
-    <function name="GST_RIFF_RIFF_CDXA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS"/>
-    <function name="GST_RIFF_RIFF_WAVE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS"/>
-    <function name="GST_RIFF_RLE4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS"/>
-    <function name="GST_RIFF_RLE8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS"/>
-    <function name="GST_RIFF_RT21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS"/>
-    <function name="GST_RIFF_SFMC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS"/>
-    <function name="GST_RIFF_TAG_acid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid"/>
-    <function name="GST_RIFF_TAG_AVF0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS"/>
-    <function name="GST_RIFF_TAG_BEXT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS"/>
-    <function name="GST_RIFF_TAG_JUNK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS"/>
-    <function name="GST_RIFF_TAG_JUNQ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS"/>
-    <function name="GST_RIFF_TAG_LIST" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS"/>
-    <function name="GST_RIFF_TAG_RIFF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS"/>
-    <function name="GST_RIFF_TAG_RIFX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS"/>
-    <function name="GST_RIFF_TAG_avih" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih"/>
-    <function name="GST_RIFF_TAG_bext" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext"/>
-    <function name="GST_RIFF_TAG_cue" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue"/>
-    <function name="GST_RIFF_TAG_data" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data"/>
-    <function name="GST_RIFF_TAG_dmlh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh"/>
-    <function name="GST_RIFF_TAG_fact" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact"/>
-    <function name="GST_RIFF_TAG_fmt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt"/>
-    <function name="GST_RIFF_TAG_idx1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1"/>
-    <function name="GST_RIFF_TAG_plst" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst"/>
-    <function name="GST_RIFF_TAG_strd" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd"/>
-    <function name="GST_RIFF_TAG_strf" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf"/>
-    <function name="GST_RIFF_TAG_strh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh"/>
-    <function name="GST_RIFF_TAG_strn" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn"/>
-    <function name="GST_RIFF_TAG_vedt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt"/>
-    <function name="GST_RIFF_TRAN" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS"/>
-    <function name="GST_RIFF_ULTI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS"/>
-    <function name="GST_RIFF_V422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS"/>
-    <function name="GST_RIFF_VDOW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS"/>
-    <function name="GST_RIFF_VIXL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS"/>
-    <function name="GST_RIFF_VSSH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS"/>
-    <function name="GST_RIFF_VYUY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS"/>
-    <function name="GST_RIFF_WHAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS"/>
-    <function name="GST_RIFF_WINX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS"/>
-    <function name="GST_RIFF_WPY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS"/>
-    <function name="GST_RIFF_XMPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS"/>
-    <function name="GST_RIFF_Y41P" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS"/>
-    <function name="GST_RIFF_YUV8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS"/>
-    <function name="GST_RIFF_YUV9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS"/>
-    <function name="GST_RIFF_YUY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS"/>
-    <function name="GST_RIFF_YV12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS"/>
-    <function name="GST_RIFF_YVU9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS"/>
-    <function name="GST_RIFF_azpr" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr"/>
-    <function name="GST_RIFF_bw10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10"/>
-    <function name="GST_RIFF_ccc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc"/>
-    <function name="GST_RIFF_cram" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram"/>
-    <function name="GST_RIFF_cvid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid"/>
-    <function name="GST_RIFF_cyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv"/>
-    <function name="GST_RIFF_dmb1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1"/>
-    <function name="GST_RIFF_h263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263"/>
-    <function name="GST_RIFF_i263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263"/>
-    <function name="GST_RIFF_i420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420"/>
-    <function name="GST_RIFF_iv31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31"/>
-    <function name="GST_RIFF_iv32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32"/>
-    <function name="GST_RIFF_iv41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41"/>
-    <function name="GST_RIFF_iv50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50"/>
-    <function name="GST_RIFF_iyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv"/>
-    <function name="GST_RIFF_jpeg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg"/>
-    <function name="GST_RIFF_m263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263"/>
-    <function name="GST_RIFF_mJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG"/>
-    <function name="GST_RIFF_mvi1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1"/>
-    <function name="GST_RIFF_none" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-none"/>
-    <function name="GST_RIFF_pack" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack"/>
-    <function name="GST_RIFF_rec" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec"/>
-    <function name="GST_RIFF_rgb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb"/>
-    <function name="GST_RIFF_rle4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4"/>
-    <function name="GST_RIFF_rle8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8"/>
-    <function name="GST_RIFF_rpza" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza"/>
-    <function name="GST_RIFF_rt21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21"/>
-    <function name="GST_RIFF_tran" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran"/>
-    <function name="GST_RIFF_ulti" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti"/>
-    <function name="GST_RIFF_v422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422"/>
-    <function name="GST_RIFF_vixl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl"/>
-    <function name="GST_RIFF_vyuy" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy"/>
-    <function name="GST_RIFF_wham" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham"/>
-    <function name="GST_RIFF_x263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263"/>
-    <function name="GST_RIFF_xmpg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg"/>
-    <function name="GST_RIFF_y41p" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p"/>
-    <function name="GST_RIFF_yuy2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2"/>
-    <function name="GST_RIFF_yv12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12"/>
-    <function name="gst_riff_acid" link="gst-plugins-base-libs-gstriff.html#gst-riff-acid"/>
-    <function name="gst_riff_create_audio_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps"/>
-    <function name="gst_riff_create_audio_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps"/>
-    <function name="gst_riff_create_iavs_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps"/>
-    <function name="gst_riff_create_iavs_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps"/>
-    <function name="gst_riff_create_video_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps"/>
-    <function name="gst_riff_create_video_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps"/>
-    <function name="gst_riff_dmlh" link="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh"/>
-    <function name="gst_riff_index_entry" link="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry"/>
-    <function name="gst_riff_init ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-init"/>
-    <function name="gst_riff_parse_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk"/>
-    <function name="gst_riff_parse_file_header ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header"/>
-    <function name="gst_riff_parse_info ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info"/>
-    <function name="gst_riff_parse_strf_auds ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds"/>
-    <function name="gst_riff_parse_strf_iavs ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs"/>
-    <function name="gst_riff_parse_strf_vids ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids"/>
-    <function name="gst_riff_parse_strh ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh"/>
-    <function name="gst_riff_read_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk"/>
-    <function name="gst_riff_strf_auds" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"/>
-    <function name="gst_riff_strf_iavs" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"/>
-    <function name="gst_riff_strf_vids" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"/>
-    <function name="gst_riff_strh" link="gst-plugins-base-libs-gstriff.html#gst-riff-strh"/>
-    <function name="Usage" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#idp16015920"/>
-    <function name="struct GstBaseRTPAudioPayload" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct"/>
-    <function name="struct GstBaseRTPAudioPayloadClass" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass"/>
-    <function name="gst_base_rtp_audio_payload_set_frame_based ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based"/>
-    <function name="gst_base_rtp_audio_payload_set_frame_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-options"/>
-    <function name="gst_base_rtp_audio_payload_set_sample_based ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based"/>
-    <function name="gst_base_rtp_audio_payload_set_sample_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-options"/>
-    <function name="gst_base_rtp_audio_payload_get_adapter ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter"/>
-    <function name="gst_base_rtp_audio_payload_push ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push"/>
-    <function name="gst_base_rtp_audio_payload_flush ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush"/>
-    <function name="gst_base_rtp_audio_payload_set_samplebits_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options"/>
-    <function name="The &quot;buffer-list&quot; property" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list"/>
-    <function name="" link="gst-plugins-base-libs-gstbasertpdepayload.html#idp15451472"/>
-    <function name="struct GstBaseRTPDepayload" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct"/>
-    <function name="struct GstBaseRTPDepayloadClass" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass"/>
-    <function name="GST_BASE_RTP_DEPAYLOAD_SINKPAD()" link="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS"/>
-    <function name="GST_BASE_RTP_DEPAYLOAD_SRCPAD()" link="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SRCPAD:CAPS"/>
-    <function name="gst_base_rtp_depayload_push ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push"/>
-    <function name="gst_base_rtp_depayload_push_ts ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts"/>
-    <function name="gst_base_rtp_depayload_push_list ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list"/>
-    <function name="The &quot;queue-delay&quot; property" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay"/>
-    <function name="" link="gst-plugins-base-libs-gstbasertppayload.html#idp17358176"/>
-    <function name="struct GstBaseRTPPayload" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct"/>
-    <function name="struct GstBaseRTPPayloadClass" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass"/>
-    <function name="GST_BASE_RTP_PAYLOAD_MTU()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS"/>
-    <function name="GST_BASE_RTP_PAYLOAD_PT()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-PT:CAPS"/>
-    <function name="GST_BASE_RTP_PAYLOAD_SINKPAD()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SINKPAD:CAPS"/>
-    <function name="GST_BASE_RTP_PAYLOAD_SRCPAD()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SRCPAD:CAPS"/>
-    <function name="gst_basertppayload_is_filled ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-is-filled"/>
-    <function name="gst_basertppayload_push ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push"/>
-    <function name="gst_basertppayload_push_list ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push-list"/>
-    <function name="gst_basertppayload_set_options ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-options"/>
-    <function name="gst_basertppayload_set_outcaps ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps"/>
-    <function name="The &quot;max-ptime&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime"/>
-    <function name="The &quot;min-ptime&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime"/>
-    <function name="The &quot;mtu&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu"/>
-    <function name="The &quot;perfect-rtptime&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime"/>
-    <function name="The &quot;pt&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt"/>
-    <function name="The &quot;ptime-multiple&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple"/>
-    <function name="The &quot;seqnum&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum"/>
-    <function name="The &quot;seqnum-offset&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset"/>
-    <function name="The &quot;ssrc&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc"/>
-    <function name="The &quot;timestamp&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp"/>
-    <function name="The &quot;timestamp-offset&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset"/>
-    <function name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp19435168"/>
-    <function name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
-    <function name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
-    <function name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
-    <function name="gst_rtp_buffer_new_copy_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-copy-data"/>
-    <function name="gst_rtp_buffer_new_allocate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate"/>
-    <function name="gst_rtp_buffer_new_allocate_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate-len"/>
-    <function name="gst_rtp_buffer_list_from_buffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-from-buffer"/>
-    <function name="gst_rtp_buffer_calc_header_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len"/>
-    <function name="gst_rtp_buffer_calc_packet_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-packet-len"/>
-    <function name="gst_rtp_buffer_calc_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len"/>
-    <function name="gst_rtp_buffer_validate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate"/>
-    <function name="gst_rtp_buffer_validate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data"/>
-    <function name="gst_rtp_buffer_set_packet_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-packet-len"/>
-    <function name="gst_rtp_buffer_get_packet_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-packet-len"/>
-    <function name="gst_rtp_buffer_get_header_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-header-len"/>
-    <function name="gst_rtp_buffer_get_version ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-version"/>
-    <function name="gst_rtp_buffer_set_version ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-version"/>
-    <function name="gst_rtp_buffer_get_padding ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-padding"/>
-    <function name="gst_rtp_buffer_set_padding ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-padding"/>
-    <function name="gst_rtp_buffer_pad_to ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-pad-to"/>
-    <function name="gst_rtp_buffer_get_extension ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension"/>
-    <function name="gst_rtp_buffer_set_extension ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension"/>
-    <function name="gst_rtp_buffer_get_extension_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-data"/>
-    <function name="gst_rtp_buffer_get_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc"/>
-    <function name="gst_rtp_buffer_set_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-ssrc"/>
-    <function name="gst_rtp_buffer_get_csrc_count ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count"/>
-    <function name="gst_rtp_buffer_get_csrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc"/>
-    <function name="gst_rtp_buffer_set_csrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-csrc"/>
-    <function name="gst_rtp_buffer_get_marker ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-marker"/>
-    <function name="gst_rtp_buffer_set_marker ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-marker"/>
-    <function name="gst_rtp_buffer_get_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-type"/>
-    <function name="gst_rtp_buffer_set_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-payload-type"/>
-    <function name="gst_rtp_buffer_get_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-seq"/>
-    <function name="gst_rtp_buffer_set_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-seq"/>
-    <function name="gst_rtp_buffer_get_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-timestamp"/>
-    <function name="gst_rtp_buffer_set_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-timestamp"/>
-    <function name="gst_rtp_buffer_get_payload_buffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer"/>
-    <function name="gst_rtp_buffer_get_payload_subbuffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer"/>
-    <function name="gst_rtp_buffer_get_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-len"/>
-    <function name="gst_rtp_buffer_get_payload ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload"/>
-    <function name="gst_rtp_buffer_default_clock_rate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate"/>
-    <function name="gst_rtp_buffer_compare_seqnum ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum"/>
-    <function name="gst_rtp_buffer_ext_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-ext-timestamp"/>
-    <function name="gst_rtp_buffer_set_extension_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension-data"/>
-    <function name="gst_rtp_buffer_list_validate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-validate"/>
-    <function name="gst_rtp_buffer_list_get_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-len"/>
-    <function name="gst_rtp_buffer_list_get_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-type"/>
-    <function name="gst_rtp_buffer_list_set_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-payload-type"/>
-    <function name="gst_rtp_buffer_list_get_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-seq"/>
-    <function name="gst_rtp_buffer_list_set_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-seq"/>
-    <function name="gst_rtp_buffer_list_get_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-ssrc"/>
-    <function name="gst_rtp_buffer_list_set_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-ssrc"/>
-    <function name="gst_rtp_buffer_list_get_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-timestamp"/>
-    <function name="gst_rtp_buffer_list_set_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-timestamp"/>
-    <function name="gst_rtp_buffer_get_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-onebyte-header"/>
-    <function name="gst_rtp_buffer_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header"/>
-    <function name="gst_rtp_buffer_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header"/>
-    <function name="gst_rtp_buffer_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header"/>
-    <function name="gst_rtp_buffer_list_get_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-onebyte-header"/>
-    <function name="gst_rtp_buffer_list_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-twobytes-header"/>
-    <function name="gst_rtp_buffer_list_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-onebyte-header"/>
-    <function name="gst_rtp_buffer_list_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-twobytes-header"/>
-    <function name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp18698800"/>
-    <function name="GST_RTCP_VERSION" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS"/>
-    <function name="GST_RTCP_MAX_SDES" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS"/>
-    <function name="GST_RTCP_MAX_BYE_SSRC_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"/>
-    <function name="GST_RTCP_MAX_RB_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-RB-COUNT:CAPS"/>
-    <function name="GST_RTCP_MAX_SDES_ITEM_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES-ITEM-COUNT:CAPS"/>
-    <function name="GST_RTCP_VALID_MASK" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-MASK:CAPS"/>
-    <function name="GST_RTCP_VALID_VALUE" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-VALUE:CAPS"/>
-    <function name="enum GstRTCPType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType"/>
-    <function name="struct GstRTCPPacket" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"/>
-    <function name="enum GstRTCPSDESType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType"/>
-    <function name="enum GstRTCPFBType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType"/>
-    <function name="gst_rtcp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data"/>
-    <function name="gst_rtcp_buffer_new_copy_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data"/>
-    <function name="gst_rtcp_buffer_validate_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data"/>
-    <function name="gst_rtcp_buffer_validate ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate"/>
-    <function name="gst_rtcp_buffer_new ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new"/>
-    <function name="gst_rtcp_buffer_end ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-end"/>
-    <function name="gst_rtcp_buffer_get_packet_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-packet-count"/>
-    <function name="gst_rtcp_buffer_get_first_packet ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet"/>
-    <function name="gst_rtcp_packet_move_to_next ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-move-to-next"/>
-    <function name="gst_rtcp_buffer_add_packet ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-add-packet"/>
-    <function name="gst_rtcp_packet_remove ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-remove"/>
-    <function name="gst_rtcp_packet_get_padding ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-padding"/>
-    <function name="gst_rtcp_packet_get_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count"/>
-    <function name="gst_rtcp_packet_get_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-type"/>
-    <function name="gst_rtcp_packet_get_length ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length"/>
-    <function name="gst_rtcp_packet_sr_get_sender_info ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-get-sender-info"/>
-    <function name="gst_rtcp_packet_sr_set_sender_info ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-set-sender-info"/>
-    <function name="gst_rtcp_packet_rr_get_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc"/>
-    <function name="gst_rtcp_packet_rr_set_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-set-ssrc"/>
-    <function name="gst_rtcp_packet_get_rb_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb-count"/>
-    <function name="gst_rtcp_packet_get_rb ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb"/>
-    <function name="gst_rtcp_packet_add_rb ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-add-rb"/>
-    <function name="gst_rtcp_packet_set_rb ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-set-rb"/>
-    <function name="gst_rtcp_packet_sdes_get_item_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-item-count"/>
-    <function name="gst_rtcp_packet_sdes_first_item ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-item"/>
-    <function name="gst_rtcp_packet_sdes_next_item ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-item"/>
-    <function name="gst_rtcp_packet_sdes_get_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc"/>
-    <function name="gst_rtcp_packet_sdes_first_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-entry"/>
-    <function name="gst_rtcp_packet_sdes_next_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-entry"/>
-    <function name="gst_rtcp_packet_sdes_get_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry"/>
-    <function name="gst_rtcp_packet_sdes_copy_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry"/>
-    <function name="gst_rtcp_packet_sdes_add_item ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-item"/>
-    <function name="gst_rtcp_packet_sdes_add_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-entry"/>
-    <function name="gst_rtcp_packet_bye_get_ssrc_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-ssrc-count"/>
-    <function name="gst_rtcp_packet_bye_get_nth_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc"/>
-    <function name="gst_rtcp_packet_bye_add_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrc"/>
-    <function name="gst_rtcp_packet_bye_add_ssrcs ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrcs"/>
-    <function name="gst_rtcp_packet_bye_get_reason_len ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len"/>
-    <function name="gst_rtcp_packet_bye_get_reason ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason"/>
-    <function name="gst_rtcp_packet_bye_set_reason ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-set-reason"/>
-    <function name="gst_rtcp_packet_fb_get_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-type"/>
-    <function name="gst_rtcp_packet_fb_set_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-type"/>
-    <function name="gst_rtcp_packet_fb_get_sender_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-sender-ssrc"/>
-    <function name="gst_rtcp_packet_fb_set_sender_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-sender-ssrc"/>
-    <function name="gst_rtcp_packet_fb_get_media_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-media-ssrc"/>
-    <function name="gst_rtcp_packet_fb_set_media_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-media-ssrc"/>
-    <function name="gst_rtcp_packet_fb_get_fci_length ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci-length"/>
-    <function name="gst_rtcp_packet_fb_set_fci_length ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-fci-length"/>
-    <function name="gst_rtcp_packet_fb_get_fci ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci"/>
-    <function name="gst_rtcp_ntp_to_unix ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix"/>
-    <function name="gst_rtcp_unix_to_ntp ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp"/>
-    <function name="gst_rtcp_sdes_name_to_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type"/>
-    <function name="gst_rtcp_sdes_type_to_name ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name"/>
-    <function name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp17281392"/>
-    <function name="enum GstRTPPayload" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload"/>
-    <function name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
-    <function name="struct GstRTPPayloadInfo" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo"/>
-    <function name="gst_rtp_payload_info_for_name ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name"/>
-    <function name="gst_rtp_payload_info_for_pt ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt"/>
-    <function name="gst_rtsp_base64_encode ()" link="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-encode"/>
-    <function name="gst_rtsp_base64_decode_ip ()" link="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-decode-ip"/>
-    <function name="GstRTSPConnection" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection"/>
-    <function name="gst_rtsp_connection_create ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create"/>
-    <function name="gst_rtsp_connection_create_from_fd ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-fd"/>
-    <function name="gst_rtsp_connection_accept ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-accept"/>
-    <function name="gst_rtsp_connection_connect ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect"/>
-    <function name="gst_rtsp_connection_close ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close"/>
-    <function name="gst_rtsp_connection_free ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free"/>
-    <function name="gst_rtsp_connection_read ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-read"/>
-    <function name="gst_rtsp_connection_write ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-write"/>
-    <function name="gst_rtsp_connection_poll ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-poll"/>
-    <function name="gst_rtsp_connection_send ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-send"/>
-    <function name="gst_rtsp_connection_receive ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-receive"/>
-    <function name="gst_rtsp_connection_next_timeout ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-next-timeout"/>
-    <function name="gst_rtsp_connection_reset_timeout ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-reset-timeout"/>
-    <function name="gst_rtsp_connection_flush ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush"/>
-    <function name="gst_rtsp_connection_set_auth ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-auth"/>
-    <function name="gst_rtsp_connection_set_auth_param ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-auth-param"/>
-    <function name="gst_rtsp_connection_clear_auth_params ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-clear-auth-params"/>
-    <function name="gst_rtsp_connection_set_qos_dscp ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-qos-dscp"/>
-    <function name="gst_rtsp_connection_set_ip ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-ip"/>
-    <function name="gst_rtsp_connection_get_ip ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-ip"/>
-    <function name="gst_rtsp_connection_get_url ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-url"/>
-    <function name="gst_rtsp_connection_set_tunneled ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tunneled"/>
-    <function name="gst_rtsp_connection_is_tunneled ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-is-tunneled"/>
-    <function name="gst_rtsp_connection_get_tunnelid ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tunnelid"/>
-    <function name="gst_rtsp_connection_do_tunnel ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-do-tunnel"/>
-    <function name="gst_rtsp_connection_get_readfd ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-readfd"/>
-    <function name="gst_rtsp_connection_get_writefd ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-writefd"/>
-    <function name="gst_rtsp_connection_set_http_mode ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-http-mode"/>
-    <function name="gst_rtsp_connection_set_proxy ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-proxy"/>
-    <function name="GstRTSPWatch" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch"/>
-    <function name="GstRTSPWatchFuncs" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs"/>
-    <function name="gst_rtsp_watch_new ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-new"/>
-    <function name="gst_rtsp_watch_unref ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref"/>
-    <function name="gst_rtsp_watch_attach ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-attach"/>
-    <function name="gst_rtsp_watch_reset ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-reset"/>
-    <function name="gst_rtsp_watch_queue_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-message"/>
-    <function name="gst_rtsp_watch_queue_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-data"/>
-    <function name="gst_rtsp_watch_send_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message"/>
-    <function name="gst_rtsp_watch_write_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data"/>
-    <function name="GST_RTSP_CHECK()" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS"/>
-    <function name="enum GstRTSPEvent" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent"/>
-    <function name="enum GstRTSPResult" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult"/>
-    <function name="enum GstRTSPFamily" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily"/>
-    <function name="enum GstRTSPState" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPState"/>
-    <function name="enum GstRTSPVersion" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion"/>
-    <function name="enum GstRTSPMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod"/>
-    <function name="enum GstRTSPAuthMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod"/>
-    <function name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
-    <function name="enum GstRTSPHeaderField" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField"/>
-    <function name="enum GstRTSPStatusCode" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode"/>
-    <function name="gst_rtsp_strresult ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult"/>
-    <function name="gst_rtsp_method_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text"/>
-    <function name="gst_rtsp_version_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text"/>
-    <function name="gst_rtsp_header_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text"/>
-    <function name="gst_rtsp_header_allow_multiple ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple"/>
-    <function name="gst_rtsp_status_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text"/>
-    <function name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text"/>
-    <function name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
-    <function name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
-    <function name="" link="gst-plugins-base-libs-gstrtspextension.html#idp11962528"/>
-    <function name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
-    <function name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
-    <function name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
-    <function name="struct GstRTSPMessage" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"/>
-    <function name="gst_rtsp_message_new ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new"/>
-    <function name="gst_rtsp_message_init ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init"/>
-    <function name="gst_rtsp_message_unset ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset"/>
-    <function name="gst_rtsp_message_free ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free"/>
-    <function name="gst_rtsp_message_get_type ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-type"/>
-    <function name="gst_rtsp_message_new_request ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-request"/>
-    <function name="gst_rtsp_message_init_request ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-request"/>
-    <function name="gst_rtsp_message_parse_request ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-request"/>
-    <function name="gst_rtsp_message_new_response ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-response"/>
-    <function name="gst_rtsp_message_init_response ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-response"/>
-    <function name="gst_rtsp_message_parse_response ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-response"/>
-    <function name="gst_rtsp_message_new_data ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-data"/>
-    <function name="gst_rtsp_message_init_data ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data"/>
-    <function name="gst_rtsp_message_parse_data ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-data"/>
-    <function name="gst_rtsp_message_add_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header"/>
-    <function name="gst_rtsp_message_take_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header"/>
-    <function name="gst_rtsp_message_remove_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header"/>
-    <function name="gst_rtsp_message_get_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header"/>
-    <function name="gst_rtsp_message_append_headers ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers"/>
-    <function name="gst_rtsp_message_set_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body"/>
-    <function name="gst_rtsp_message_take_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body"/>
-    <function name="gst_rtsp_message_get_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-body"/>
-    <function name="gst_rtsp_message_steal_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-steal-body"/>
-    <function name="gst_rtsp_message_dump ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-dump"/>
-    <function name="enum GstRTSPRangeUnit" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit"/>
-    <function name="struct GstRTSPTimeRange" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange"/>
-    <function name="struct GstRTSPTime" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime"/>
-    <function name="enum GstRTSPTimeType" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType"/>
-    <function name="gst_rtsp_range_parse ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse"/>
-    <function name="gst_rtsp_range_to_string ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string"/>
-    <function name="gst_rtsp_range_free ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free"/>
-    <function name="enum GstRTSPTransMode" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode"/>
-    <function name="enum GstRTSPProfile" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPProfile"/>
-    <function name="struct GstRTSPRange" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange"/>
-    <function name="enum GstRTSPLowerTrans" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans"/>
-    <function name="struct GstRTSPTransport" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport"/>
-    <function name="gst_rtsp_transport_new ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-new"/>
-    <function name="gst_rtsp_transport_init ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init"/>
-    <function name="gst_rtsp_transport_parse ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-parse"/>
-    <function name="gst_rtsp_transport_as_text ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text"/>
-    <function name="gst_rtsp_transport_get_mime ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime"/>
-    <function name="gst_rtsp_transport_get_manager ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-manager"/>
-    <function name="gst_rtsp_transport_free ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free"/>
-    <function name="GST_RTSP_DEFAULT_PORT" link="gst-plugins-base-libs-gstrtspurl.html#GST-RTSP-DEFAULT-PORT:CAPS"/>
-    <function name="struct GstRTSPUrl" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl"/>
-    <function name="gst_rtsp_url_parse ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-parse"/>
-    <function name="gst_rtsp_url_copy ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-copy"/>
-    <function name="gst_rtsp_url_free ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free"/>
-    <function name="gst_rtsp_url_get_request_uri ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri"/>
-    <function name="gst_rtsp_url_set_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port"/>
-    <function name="gst_rtsp_url_get_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port"/>
-    <function name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components"/>
-    <function name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp25276480"/>
-    <function name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
-    <function name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
-    <function name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
-    <function name="GST_SDP_BWTYPE_CT" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-CT:CAPS"/>
-    <function name="GST_SDP_BWTYPE_AS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-AS:CAPS"/>
-    <function name="GST_SDP_BWTYPE_EXT_PREFIX" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-EXT-PREFIX:CAPS"/>
-    <function name="GST_SDP_BWTYPE_RR" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RR:CAPS"/>
-    <function name="GST_SDP_BWTYPE_RS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RS:CAPS"/>
-    <function name="GST_SDP_BWTYPE_TIAS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-TIAS:CAPS"/>
-    <function name="GstSDPBandwidth" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth"/>
-    <function name="GstSDPTime" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime"/>
-    <function name="GstSDPZone" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone"/>
-    <function name="GstSDPKey" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey"/>
-    <function name="GstSDPAttribute" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute"/>
-    <function name="GstSDPMedia" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia"/>
-    <function name="GstSDPMessage" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"/>
-    <function name="gst_sdp_message_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new"/>
-    <function name="gst_sdp_message_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init"/>
-    <function name="gst_sdp_message_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-uninit"/>
-    <function name="gst_sdp_message_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-free"/>
-    <function name="gst_sdp_message_parse_buffer ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-buffer"/>
-    <function name="gst_sdp_message_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text"/>
-    <function name="gst_sdp_message_parse_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-uri"/>
-    <function name="gst_sdp_message_as_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri"/>
-    <function name="gst_sdp_address_is_multicast ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-address-is-multicast"/>
-    <function name="gst_sdp_message_get_version ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version"/>
-    <function name="gst_sdp_message_set_version ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-version"/>
-    <function name="gst_sdp_message_get_origin ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-origin"/>
-    <function name="gst_sdp_message_set_origin ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-origin"/>
-    <function name="gst_sdp_message_get_session_name ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name"/>
-    <function name="gst_sdp_message_set_session_name ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-session-name"/>
-    <function name="gst_sdp_message_get_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information"/>
-    <function name="gst_sdp_message_set_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-information"/>
-    <function name="gst_sdp_message_get_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri"/>
-    <function name="gst_sdp_message_set_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri"/>
-    <function name="gst_sdp_message_emails_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len"/>
-    <function name="gst_sdp_message_get_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email"/>
-    <function name="gst_sdp_message_add_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email"/>
-    <function name="gst_sdp_message_phones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len"/>
-    <function name="gst_sdp_message_get_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone"/>
-    <function name="gst_sdp_message_add_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone"/>
-    <function name="gst_sdp_message_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection"/>
-    <function name="gst_sdp_message_set_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection"/>
-    <function name="gst_sdp_message_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len"/>
-    <function name="gst_sdp_message_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth"/>
-    <function name="gst_sdp_message_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth"/>
-    <function name="gst_sdp_message_times_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len"/>
-    <function name="gst_sdp_message_get_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time"/>
-    <function name="gst_sdp_message_add_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time"/>
-    <function name="gst_sdp_message_zones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len"/>
-    <function name="gst_sdp_message_get_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone"/>
-    <function name="gst_sdp_message_add_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone"/>
-    <function name="gst_sdp_message_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key"/>
-    <function name="gst_sdp_message_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key"/>
-    <function name="gst_sdp_message_attributes_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-len"/>
-    <function name="gst_sdp_message_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute"/>
-    <function name="gst_sdp_message_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val"/>
-    <function name="gst_sdp_message_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n"/>
-    <function name="gst_sdp_message_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute"/>
-    <function name="gst_sdp_message_medias_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len"/>
-    <function name="gst_sdp_message_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media"/>
-    <function name="gst_sdp_message_add_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-media"/>
-    <function name="gst_sdp_message_dump ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-dump"/>
-    <function name="gst_sdp_media_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new"/>
-    <function name="gst_sdp_media_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init"/>
-    <function name="gst_sdp_media_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit"/>
-    <function name="gst_sdp_media_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free"/>
-    <function name="gst_sdp_media_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media"/>
-    <function name="gst_sdp_media_set_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media"/>
-    <function name="gst_sdp_media_get_port ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port"/>
-    <function name="gst_sdp_media_get_num_ports ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-num-ports"/>
-    <function name="gst_sdp_media_set_port_info ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-port-info"/>
-    <function name="gst_sdp_media_get_proto ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto"/>
-    <function name="gst_sdp_media_set_proto ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto"/>
-    <function name="gst_sdp_media_formats_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len"/>
-    <function name="gst_sdp_media_get_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format"/>
-    <function name="gst_sdp_media_add_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format"/>
-    <function name="gst_sdp_media_get_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information"/>
-    <function name="gst_sdp_media_set_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information"/>
-    <function name="gst_sdp_media_connections_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len"/>
-    <function name="gst_sdp_media_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection"/>
-    <function name="gst_sdp_media_add_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection"/>
-    <function name="gst_sdp_media_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len"/>
-    <function name="gst_sdp_media_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth"/>
-    <function name="gst_sdp_media_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth"/>
-    <function name="gst_sdp_media_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key"/>
-    <function name="gst_sdp_media_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key"/>
-    <function name="gst_sdp_media_attributes_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-len"/>
-    <function name="gst_sdp_media_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute"/>
-    <function name="gst_sdp_media_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val"/>
-    <function name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
-    <function name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
-    <function name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
-    <function name="" link="gst-plugins-base-libs-gsttag.html#idp24834784"/>
-    <function name="GST_TAG_MUSICBRAINZ_TRACKID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRACKID:CAPS"/>
-    <function name="GST_TAG_MUSICBRAINZ_ARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"/>
-    <function name="GST_TAG_MUSICBRAINZ_ALBUMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"/>
-    <function name="GST_TAG_MUSICBRAINZ_ALBUMARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMARTISTID:CAPS"/>
-    <function name="GST_TAG_MUSICBRAINZ_TRMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRMID:CAPS"/>
-    <function name="GST_TAG_MUSICBRAINZ_SORTNAME" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-SORTNAME:CAPS"/>
-    <function name="GST_TAG_CDDA_CDDB_DISCID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID:CAPS"/>
-    <function name="GST_TAG_CDDA_CDDB_DISCID_FULL" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID-FULL:CAPS"/>
-    <function name="GST_TAG_CDDA_MUSICBRAINZ_DISCID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID:CAPS"/>
-    <function name="GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID-FULL:CAPS"/>
-    <function name="GST_TAG_CDDA_TRACK_TAGS" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-TRACK-TAGS:CAPS"/>
-    <function name="GST_TAG_CMML_CLIP" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CMML-CLIP:CAPS"/>
-    <function name="GST_TAG_CMML_HEAD" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CMML-HEAD:CAPS"/>
-    <function name="GST_TAG_CMML_STREAM" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CMML-STREAM:CAPS"/>
-    <function name="GST_TAG_CAPTURING_SHUTTER_SPEED" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SHUTTER-SPEED:CAPS"/>
-    <function name="GST_TAG_CAPTURING_FOCAL_RATIO" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FOCAL-RATIO:CAPS"/>
-    <function name="GST_TAG_CAPTURING_FOCAL_LENGTH" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FOCAL-LENGTH:CAPS"/>
-    <function name="GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-DIGITAL-ZOOM-RATIO:CAPS"/>
-    <function name="GST_TAG_CAPTURING_ISO_SPEED" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-ISO-SPEED:CAPS"/>
-    <function name="GST_TAG_CAPTURING_EXPOSURE_PROGRAM" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-PROGRAM:CAPS"/>
-    <function name="GST_TAG_CAPTURING_EXPOSURE_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-MODE:CAPS"/>
-    <function name="GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SCENE-CAPTURE-TYPE:CAPS"/>
-    <function name="GST_TAG_CAPTURING_GAIN_ADJUSTMENT" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-GAIN-ADJUSTMENT:CAPS"/>
-    <function name="GST_TAG_CAPTURING_WHITE_BALANCE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-WHITE-BALANCE:CAPS"/>
-    <function name="GST_TAG_CAPTURING_CONTRAST" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-CONTRAST:CAPS"/>
-    <function name="GST_TAG_CAPTURING_SATURATION" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SATURATION:CAPS"/>
-    <function name="GST_TAG_CAPTURING_SHARPNESS" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SHARPNESS:CAPS"/>
-    <function name="GST_TAG_CAPTURING_FLASH_FIRED" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-FIRED:CAPS"/>
-    <function name="GST_TAG_CAPTURING_FLASH_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS"/>
-    <function name="GST_TAG_CAPTURING_METERING_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS"/>
-    <function name="GST_TAG_CAPTURING_SOURCE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS"/>
-    <function name="GST_TAG_IMAGE_HORIZONTAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS"/>
-    <function name="GST_TAG_IMAGE_VERTICAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS"/>
-    <function name="gst_tag_register_musicbrainz_tags ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags"/>
-    <function name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8"/>
-    <function name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment"/>
-    <function name="gst_tag_image_data_to_image_buffer ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer"/>
-    <function name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType"/>
-    <function name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp24832896"/>
-    <function name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
-    <function name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
-    <function name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
-    <function name="gst_tag_to_vorbis_comments ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments"/>
-    <function name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
-    <function name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
-    <function name="" link="gst-plugins-base-libs-gsttagid3.html#idp25099152"/>
-    <function name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
-    <function name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
-    <function name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
-    <function name="gst_tag_from_id3_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-tag"/>
-    <function name="gst_tag_from_id3_user_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag"/>
-    <function name="gst_tag_to_id3_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag"/>
-    <function name="gst_tag_list_add_id3_image ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image"/>
-    <function name="gst_tag_list_from_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer"/>
-    <function name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer"/>
-    <function name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp10464912"/>
-    <function name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux"/>
-    <function name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass"/>
-    <function name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult"/>
-    <function name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp24771488"/>
-    <function name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes"/>
-    <function name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name"/>
-    <function name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code"/>
-    <function name="gst_tag_get_language_code_iso_639_1 ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1"/>
-    <function name="gst_tag_get_language_code_iso_639_2B ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B"/>
-    <function name="gst_tag_get_language_code_iso_639_2T ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T"/>
-    <function name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp19337104"/>
-    <function name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init"/>
-    <function name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"/>
-    <function name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS"/>
-    <function name="GST_PLUGINS_BASE_VERSION_MICRO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS"/>
-    <function name="GST_PLUGINS_BASE_VERSION_NANO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS"/>
-    <function name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
-    <function name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version"/>
-    <function name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string"/>
-    <function name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp24572928"/>
-    <function name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index"/>
-    <function name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile"/>
-    <function name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level"/>
-    <function name="gst_codec_utils_aac_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile"/>
-    <function name="gst_codec_utils_h264_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile"/>
-    <function name="gst_codec_utils_h264_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level"/>
-    <function name="gst_codec_utils_h264_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile"/>
-    <function name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile"/>
-    <function name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level"/>
-    <function name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile"/>
-    <function name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp23918896"/>
-    <function name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
-    <function name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
-    <function name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
-    <function name="gst_pb_utils_get_encoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description"/>
-    <function name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
-    <function name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
-    <function name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
-    <function name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp26701328"/>
-    <function name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
-    <function name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
-    <function name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
-    <function name="gst_missing_decoder_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new"/>
-    <function name="gst_missing_encoder_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new"/>
-    <function name="gst_missing_uri_source_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new"/>
-    <function name="gst_missing_uri_sink_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new"/>
-    <function name="gst_missing_element_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new"/>
-    <function name="gst_missing_uri_source_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new"/>
-    <function name="gst_missing_uri_sink_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new"/>
-    <function name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new"/>
-    <function name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new"/>
-    <function name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new"/>
-    <function name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp23991312"/>
-    <function name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn"/>
-    <function name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc"/>
-    <function name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async"/>
-    <function name="gst_install_plugins_sync ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync"/>
-    <function name="gst_install_plugins_return_get_name ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name"/>
-    <function name="gst_install_plugins_installation_in_progress ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress"/>
-    <function name="gst_install_plugins_supported ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported"/>
-    <function name="GstInstallPluginsContext" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext"/>
-    <function name="gst_install_plugins_context_new ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new"/>
-    <function name="gst_install_plugins_context_free ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free"/>
-    <function name="gst_install_plugins_context_set_xid ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid"/>
-    <function name="struct GstDiscoverer" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct"/>
-    <function name="gst_discoverer_new ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new"/>
-    <function name="gst_discoverer_start ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start"/>
-    <function name="gst_discoverer_stop ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stop"/>
-    <function name="gst_discoverer_discover_uri ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri"/>
-    <function name="gst_discoverer_discover_uri_async ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async"/>
-    <function name="GstDiscovererInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct"/>
-    <function name="enum GstDiscovererResult" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult"/>
-    <function name="gst_discoverer_info_get_duration ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration"/>
-    <function name="gst_discoverer_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc"/>
-    <function name="gst_discoverer_info_get_result ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result"/>
-    <function name="gst_discoverer_info_get_stream_info ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info"/>
-    <function name="gst_discoverer_info_get_stream_list ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list"/>
-    <function name="gst_discoverer_info_get_tags ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags"/>
-    <function name="gst_discoverer_info_get_uri ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri"/>
-    <function name="gst_discoverer_info_get_seekable ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable"/>
-    <function name="gst_discoverer_info_ref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref"/>
-    <function name="gst_discoverer_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref"/>
-    <function name="GstDiscovererStreamInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo"/>
-    <function name="GstDiscovererContainerInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo"/>
-    <function name="GstDiscovererAudioInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo"/>
-    <function name="GstDiscovererVideoInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo"/>
-    <function name="gst_discoverer_stream_info_get_caps ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps"/>
-    <function name="gst_discoverer_stream_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc"/>
-    <function name="gst_discoverer_stream_info_get_next ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next"/>
-    <function name="gst_discoverer_stream_info_get_previous ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous"/>
-    <function name="gst_discoverer_stream_info_get_tags ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags"/>
-    <function name="gst_discoverer_stream_info_ref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref"/>
-    <function name="gst_discoverer_stream_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref"/>
-    <function name="gst_discoverer_stream_info_list_free ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free"/>
-    <function name="gst_discoverer_stream_info_get_stream_type_nick ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick"/>
-    <function name="gst_discoverer_info_get_audio_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams"/>
-    <function name="gst_discoverer_info_get_container_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams"/>
-    <function name="gst_discoverer_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams"/>
-    <function name="gst_discoverer_info_get_video_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams"/>
-    <function name="gst_discoverer_audio_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate"/>
-    <function name="gst_discoverer_audio_info_get_channels ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels"/>
-    <function name="gst_discoverer_audio_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth"/>
-    <function name="gst_discoverer_audio_info_get_max_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate"/>
-    <function name="gst_discoverer_audio_info_get_sample_rate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate"/>
-    <function name="gst_discoverer_container_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams"/>
-    <function name="gst_discoverer_video_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate"/>
-    <function name="gst_discoverer_video_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth"/>
-    <function name="gst_discoverer_video_info_get_framerate_denom ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom"/>
-    <function name="gst_discoverer_video_info_get_framerate_num ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num"/>
-    <function name="gst_discoverer_video_info_get_height ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height"/>
-    <function name="gst_discoverer_video_info_is_interlaced ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced"/>
-    <function name="gst_discoverer_video_info_is_image ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image"/>
-    <function name="gst_discoverer_video_info_get_max_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate"/>
-    <function name="gst_discoverer_video_info_get_par_denom ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom"/>
-    <function name="gst_discoverer_video_info_get_par_num ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num"/>
-    <function name="gst_discoverer_video_info_get_width ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width"/>
-    <function name="The &quot;timeout&quot; property" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout"/>
-    <function name="The &quot;discovered&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered"/>
-    <function name="The &quot;finished&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished"/>
-    <function name="The &quot;starting&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
-    <function name="" link="gst-plugins-base-libs-encoding-profile.html#idp27641072"/>
-    <function name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp27648640"/>
-    <function name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp27651632"/>
-    <function name="GstEncodingProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"/>
-    <function name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref"/>
-    <function name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref"/>
-    <function name="gst_encoding_profile_find ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find"/>
-    <function name="gst_encoding_profile_get_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name"/>
-    <function name="gst_encoding_profile_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description"/>
-    <function name="gst_encoding_profile_get_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format"/>
-    <function name="gst_encoding_profile_get_preset ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset"/>
-    <function name="gst_encoding_profile_get_presence ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence"/>
-    <function name="gst_encoding_profile_get_restriction ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction"/>
-    <function name="gst_encoding_profile_set_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name"/>
-    <function name="gst_encoding_profile_set_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description"/>
-    <function name="gst_encoding_profile_set_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format"/>
-    <function name="gst_encoding_profile_set_preset ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset"/>
-    <function name="gst_encoding_profile_set_restriction ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction"/>
-    <function name="gst_encoding_profile_set_presence ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence"/>
-    <function name="gst_encoding_profile_is_equal ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal"/>
-    <function name="gst_encoding_profile_get_input_caps ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps"/>
-    <function name="gst_encoding_profile_get_type_nick ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick"/>
-    <function name="GstEncodingContainerProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct"/>
-    <function name="gst_encoding_container_profile_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new"/>
-    <function name="gst_encoding_container_profile_add_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile"/>
-    <function name="gst_encoding_container_profile_contains_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile"/>
-    <function name="gst_encoding_container_profile_get_profiles ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles"/>
-    <function name="GstEncodingAudioProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct"/>
-    <function name="gst_encoding_audio_profile_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new"/>
-    <function name="GstEncodingVideoProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct"/>
-    <function name="gst_encoding_video_profile_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new"/>
-    <function name="gst_encoding_video_profile_get_pass ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass"/>
-    <function name="gst_encoding_video_profile_get_variableframerate ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate"/>
-    <function name="gst_encoding_video_profile_set_pass ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass"/>
-    <function name="gst_encoding_video_profile_set_variableframerate ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate"/>
-    <function name="GST_ENCODING_CATEGORY_DEVICE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS"/>
-    <function name="GST_ENCODING_CATEGORY_ONLINE_SERVICE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS"/>
-    <function name="GST_ENCODING_CATEGORY_STORAGE_EDITING" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS"/>
-    <function name="GST_ENCODING_CATEGORY_CAPTURE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS"/>
-    <function name="GstEncodingTarget" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct"/>
-    <function name="gst_encoding_target_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-unref"/>
-    <function name="gst_encoding_target_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-ref"/>
-    <function name="gst_encoding_target_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-new"/>
-    <function name="gst_encoding_target_get_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name"/>
-    <function name="gst_encoding_target_get_category ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category"/>
-    <function name="gst_encoding_target_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description"/>
-    <function name="gst_encoding_target_get_profiles ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles"/>
-    <function name="gst_encoding_target_get_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profile"/>
-    <function name="gst_encoding_target_add_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile"/>
-    <function name="gst_encoding_target_save ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save"/>
-    <function name="gst_encoding_target_save_to_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file"/>
-    <function name="gst_encoding_target_load ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load"/>
-    <function name="gst_encoding_target_load_from_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file"/>
-    <function name="gst_encoding_list_all_targets ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets"/>
-    <function name="gst_encoding_list_available_categories ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories"/>
-    <function name="" link="gst-plugins-base-libs-gstvideo.html#idp28861408"/>
-    <function name="GST_VIDEO_BLUE_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15:CAPS"/>
-    <function name="GST_VIDEO_BLUE_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15-INT:CAPS"/>
-    <function name="GST_VIDEO_BLUE_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-16:CAPS"/>
-    <function name="GST_VIDEO_BLUE_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-16-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE1_MASK_24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-24:CAPS"/>
-    <function name="GST_VIDEO_BYTE1_MASK_24_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-24-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE1_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-32:CAPS"/>
-    <function name="GST_VIDEO_BYTE1_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-32-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE2_MASK_24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-24:CAPS"/>
-    <function name="GST_VIDEO_BYTE2_MASK_24_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-24-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE2_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-32:CAPS"/>
-    <function name="GST_VIDEO_BYTE2_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-32-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE3_MASK_24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-24:CAPS"/>
-    <function name="GST_VIDEO_BYTE3_MASK_24_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-24-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE3_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-32:CAPS"/>
-    <function name="GST_VIDEO_BYTE3_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-32-INT:CAPS"/>
-    <function name="GST_VIDEO_BYTE4_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE4-MASK-32:CAPS"/>
-    <function name="GST_VIDEO_BYTE4_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE4-MASK-32-INT:CAPS"/>
-    <function name="GST_VIDEO_CAPS_ABGR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ABGR:CAPS"/>
-    <function name="GST_VIDEO_CAPS_ARGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB:CAPS"/>
-    <function name="GST_VIDEO_CAPS_BGR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR:CAPS"/>
-    <function name="GST_VIDEO_CAPS_BGRA" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGRA:CAPS"/>
-    <function name="GST_VIDEO_CAPS_BGRx" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGRx"/>
-    <function name="GST_VIDEO_CAPS_BGRx_HOST_ENDIAN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGRx-HOST-ENDIAN"/>
-    <function name="GST_VIDEO_CAPS_RGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB:CAPS"/>
-    <function name="GST_VIDEO_CAPS_RGBA" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGBA:CAPS"/>
-    <function name="GST_VIDEO_CAPS_RGB_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB-15:CAPS"/>
-    <function name="GST_VIDEO_CAPS_RGB_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB-16:CAPS"/>
-    <function name="GST_VIDEO_CAPS_RGBx" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGBx"/>
-    <function name="GST_VIDEO_CAPS_YUV()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-YUV:CAPS"/>
-    <function name="GST_VIDEO_CAPS_xBGR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-xBGR"/>
-    <function name="GST_VIDEO_CAPS_xRGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-xRGB"/>
-    <function name="GST_VIDEO_CAPS_xRGB_HOST_ENDIAN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-xRGB-HOST-ENDIAN"/>
-    <function name="GST_VIDEO_CAPS_BGR_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR-15:CAPS"/>
-    <function name="GST_VIDEO_CAPS_BGR_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR-16:CAPS"/>
-    <function name="GST_VIDEO_CAPS_RGB8_PALETTED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS"/>
-    <function name="GST_VIDEO_CAPS_GRAY8" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS"/>
-    <function name="GST_VIDEO_CAPS_GRAY16()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS"/>
-    <function name="GST_VIDEO_FPS_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS"/>
-    <function name="GST_VIDEO_GREEN_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS"/>
-    <function name="GST_VIDEO_GREEN_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS"/>
-    <function name="GST_VIDEO_GREEN_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-16:CAPS"/>
-    <function name="GST_VIDEO_GREEN_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-16-INT:CAPS"/>
-    <function name="GST_VIDEO_RED_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-15:CAPS"/>
-    <function name="GST_VIDEO_RED_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-15-INT:CAPS"/>
-    <function name="GST_VIDEO_RED_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-16:CAPS"/>
-    <function name="GST_VIDEO_RED_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-16-INT:CAPS"/>
-    <function name="GST_VIDEO_SIZE_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS"/>
-    <function name="GST_VIDEO_BUFFER_TFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS"/>
-    <function name="GST_VIDEO_BUFFER_RFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS"/>
-    <function name="GST_VIDEO_BUFFER_ONEFIELD" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS"/>
-    <function name="enum GstVideoFormat" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormat"/>
-    <function name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio"/>
-    <function name="gst_video_frame_rate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-frame-rate"/>
-    <function name="gst_video_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-get-size"/>
-    <function name="gst_video_format_convert ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert"/>
-    <function name="gst_video_format_new_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps"/>
-    <function name="gst_video_format_new_caps_interlaced ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps-interlaced"/>
-    <function name="gst_video_format_get_component_height ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height"/>
-    <function name="gst_video_format_get_component_offset ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-offset"/>
-    <function name="gst_video_format_get_component_width ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-width"/>
-    <function name="gst_video_format_get_pixel_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride"/>
-    <function name="gst_video_format_get_row_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride"/>
-    <function name="gst_video_format_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-size"/>
-    <function name="gst_video_format_has_alpha ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-has-alpha"/>
-    <function name="gst_video_format_is_rgb ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-rgb"/>
-    <function name="gst_video_format_is_gray ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-gray"/>
-    <function name="gst_video_format_is_yuv ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-yuv"/>
-    <function name="gst_video_format_to_fourcc ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc"/>
-    <function name="gst_video_format_from_fourcc ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc"/>
-    <function name="gst_video_format_parse_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps"/>
-    <function name="gst_video_format_parse_caps_interlaced ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps-interlaced"/>
-    <function name="gst_video_parse_caps_framerate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-framerate"/>
-    <function name="gst_video_parse_caps_pixel_aspect_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-pixel-aspect-ratio"/>
-    <function name="gst_video_parse_caps_color_matrix ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-color-matrix"/>
-    <function name="gst_video_parse_caps_chroma_site ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-chroma-site"/>
-    <function name="gst_video_parse_caps_palette ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-palette"/>
-    <function name="GstVideoConvertFrameCallback ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoConvertFrameCallback"/>
-    <function name="gst_video_convert_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame"/>
-    <function name="gst_video_convert_frame_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame-async"/>
-    <function name="gst_video_event_new_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame"/>
-    <function name="gst_video_event_parse_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame"/>
-    <function name="" link="gst-plugins-base-libs-gstvideofilter.html#idp23911216"/>
-    <function name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
-    <function name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
-    <function name="" link="gst-plugins-base-libs-gstvideosink.html#idp27834272"/>
-    <function name="struct GstVideoSink" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct"/>
-    <function name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
-    <function name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
-    <function name="GST_VIDEO_SINK_HEIGHT()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-HEIGHT:CAPS"/>
-    <function name="GST_VIDEO_SINK_PAD()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-PAD:CAPS"/>
-    <function name="GST_VIDEO_SINK_WIDTH()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-WIDTH:CAPS"/>
-    <function name="gst_video_sink_center_rect ()" link="gst-plugins-base-libs-gstvideosink.html#gst-video-sink-center-rect"/>
-    <function name="The &quot;show-preroll-frame&quot; property" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame"/>
-  </functions>
-</book>
index 13877de..c76fbca 100644 (file)
@@ -11,6 +11,8 @@
       <sub name="Audio Library" link="gstreamer-audio.html">
         <sub name="gstaudio" link="gst-plugins-base-libs-gstaudio.html"/>
         <sub name="gstaudioclock" link="gst-plugins-base-libs-gstaudioclock.html"/>
+        <sub name="gstaudiodecoder" link="gst-plugins-base-libs-gstaudiodecoder.html"/>
+        <sub name="gstaudioencoder" link="gst-plugins-base-libs-gstaudioencoder.html"/>
         <sub name="gstaudiofilter" link="gst-plugins-base-libs-gstaudiofilter.html"/>
         <sub name="gstaudiomixerutils" link="gst-plugins-base-libs-gstaudiomixerutils.html"/>
         <sub name="gstaudiosink" link="gst-plugins-base-libs-gstaudiosink.html"/>
@@ -19,6 +21,7 @@
         <sub name="gstbaseaudiosrc" link="gst-plugins-base-libs-gstbaseaudiosrc.html"/>
         <sub name="gstmultichannel" link="gst-plugins-base-libs-gstmultichannel.html"/>
         <sub name="gstringbuffer" link="gst-plugins-base-libs-gstringbuffer.html"/>
+        <sub name="gstaudioiec61937" link="gst-plugins-base-libs-gstaudioiec61937.html"/>
       </sub>
       <sub name="CDDA Library" link="gstreamer-cdda.html">
         <sub name="gstcddabasesrc" link="gst-plugins-base-libs-gstcddabasesrc.html"/>
         <sub name="gsttag" link="gst-plugins-base-libs-gsttag.html"/>
         <sub name="gsttagvorbis" link="gst-plugins-base-libs-gsttagvorbis.html"/>
         <sub name="gsttagid3" link="gst-plugins-base-libs-gsttagid3.html"/>
+        <sub name="gsttagexif" link="gst-plugins-base-libs-gsttagexif.html"/>
         <sub name="gsttagxmp" link="gst-plugins-base-libs-gsttagxmp.html"/>
+        <sub name="gsttagxmpwriter" link="gst-plugins-base-libs-gsttagxmpwriter.html"/>
         <sub name="gsttagdemux" link="gst-plugins-base-libs-gsttagdemux.html"/>
+        <sub name="gsttagmux" link="gst-plugins-base-libs-gsttagmux.html"/>
         <sub name="gsttaglanguagecodes" link="gst-plugins-base-libs-gsttaglanguagecodes.html"/>
+        <sub name="gsttaglicenses" link="gst-plugins-base-libs-gsttaglicenses.html"/>
       </sub>
       <sub name="Base Utils Library" link="gstreamer-base-utils.html">
         <sub name="gstpbutils" link="gst-plugins-base-libs-gstpbutils.html"/>
+        <sub name="gstpluginsbaseversion" link="gst-plugins-base-libs-gstpluginsbaseversion.html"/>
         <sub name="gstpbutilscodecutils" link="gst-plugins-base-libs-gstpbutilscodecutils.html"/>
         <sub name="gstpbutilsdescriptions" link="gst-plugins-base-libs-gstpbutilsdescriptions.html"/>
         <sub name="gstpbutilsmissingplugins" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html"/>
       </sub>
       <sub name="Video Library" link="gstreamer-video.html">
         <sub name="gstvideo" link="gst-plugins-base-libs-gstvideo.html"/>
+        <sub name="gstvideooverlaycomposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html"/>
         <sub name="gstvideofilter" link="gst-plugins-base-libs-gstvideofilter.html"/>
         <sub name="gstvideosink" link="gst-plugins-base-libs-gstvideosink.html"/>
       </sub>
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
-    <keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-libs-appsrc.html#GstAppSrc"/>
     <keyword type="enum" name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
     <keyword type="function" name="gst_app_src_set_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps" since="0.10.22"/>
     <keyword type="function" name="gst_app_src_get_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" since="0.10.22"/>
     <keyword type="function" name="gst_app_src_set_callbacks ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" since="0.10.23"/>
     <keyword type="function" name="gst_app_src_push_buffer ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" since="0.10.22"/>
     <keyword type="function" name="gst_app_src_end_of_stream ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" since="0.10.22"/>
-    <keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-libs-appsink.html#GstAppSink"/>
     <keyword type="function" name="gst_app_sink_set_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps" since="0.10.22"/>
     <keyword type="function" name="gst_app_sink_get_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" since="0.10.22"/>
     <keyword type="function" name="gst_app_sink_is_eos ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" since="0.10.22"/>
     <keyword type="function" name="gst_app_sink_pull_buffer_list ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list"/>
     <keyword type="struct" name="GstAppSinkCallbacks" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" since="0.10.23"/>
     <keyword type="function" name="gst_app_sink_set_callbacks ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" since="0.10.23"/>
+    <keyword type="enum" name="enum GstAudioFlags" link="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" since="0.10.36"/>
+    <keyword type="enum" name="enum GstAudioFormat" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" since="0.10.36"/>
+    <keyword type="enum" name="enum GstAudioFormatFlags" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" since="0.10.36"/>
+    <keyword type="struct" name="struct GstAudioFormatInfo" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" since="0.10.36"/>
+    <keyword type="struct" name="struct GstAudioInfo" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_info_init ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init"/>
+    <keyword type="function" name="gst_audio_info_clear ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear"/>
+    <keyword type="function" name="gst_audio_info_copy ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy"/>
+    <keyword type="function" name="gst_audio_info_free ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free"/>
+    <keyword type="function" name="gst_audio_info_from_caps ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_info_to_caps ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_info_convert ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert"/>
+    <keyword type="function" name="gst_audio_format_get_info ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_DEPTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_ENDIANNESS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_FLAGS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_FORMAT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_FLOAT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_INTEGER()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_SIGNED()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_NAME()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_WIDTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_BPF()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_BPS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_CHANNELS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_DEPTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_FLAGS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_FORMAT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_NAME()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_POSITION()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_RATE()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_INFO_WIDTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS"/>
     <keyword type="enum" name="enum GstAudioFieldFlag" link="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" deprecated="use gst_structure_set() directly"/>
     <keyword type="macro" name="GST_FRAMES_TO_CLOCK_TIME()" link="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS"/>
     <keyword type="macro" name="GST_CLOCK_TIME_TO_FRAMES()" link="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS"/>
     <keyword type="function" name="gst_audio_clock_get_time ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time" since="0.10.23"/>
     <keyword type="function" name="gst_audio_clock_reset ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset"/>
     <keyword type="function" name="gst_audio_clock_invalidate ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate" since="0.10.31"/>
+    <keyword type="struct" name="struct GstAudioDecoder" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct"/>
+    <keyword type="struct" name="struct GstAudioDecoderClass" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_DECODER_ERROR()" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_DECODER_SINK_NAME" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_DECODER_SINK_PAD()" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_DECODER_SRC_NAME" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_DECODER_SRC_PAD()" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_finish_frame ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_audio_info ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_byte_time ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_delay ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_drainable ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_max_errors ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_min_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_needs_format ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_parse_state ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_plc ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_plc_aware ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_get_tolerance ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_byte_time ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_drainable ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_max_errors ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_min_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_needs_format ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_plc ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_plc_aware ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_decoder_set_tolerance ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance" since="0.10.36"/>
+    <keyword type="property" name="The &quot;min-latency&quot; property" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency"/>
+    <keyword type="property" name="The &quot;plc&quot; property" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc"/>
+    <keyword type="property" name="The &quot;tolerance&quot; property" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance"/>
+    <keyword type="struct" name="struct GstAudioEncoder" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct"/>
+    <keyword type="struct" name="struct GstAudioEncoderClass" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_ENCODER_SEGMENT()" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_ENCODER_SINK_NAME" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_ENCODER_SINK_PAD()" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_ENCODER_SRC_NAME" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_AUDIO_ENCODER_SRC_PAD()" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_finish_frame ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_audio_info ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_drainable ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_frame_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_frame_samples_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_frame_samples_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max"/>
+    <keyword type="function" name="gst_audio_encoder_get_hard_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_hard_resync ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync"/>
+    <keyword type="function" name="gst_audio_encoder_get_latency ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_lookahead ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead"/>
+    <keyword type="function" name="gst_audio_encoder_get_mark_granule ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_perfect_timestamp ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_get_tolerance ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_proxy_getcaps ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_drainable ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_frame_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_frame_samples_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_frame_samples_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_hard_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_hard_resync ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync"/>
+    <keyword type="function" name="gst_audio_encoder_set_latency ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_lookahead ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_mark_granule ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_perfect_timestamp ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_encoder_set_tolerance ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance" since="0.10.36"/>
+    <keyword type="property" name="The &quot;hard-resync&quot; property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync"/>
+    <keyword type="property" name="The &quot;mark-granule&quot; property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule"/>
+    <keyword type="property" name="The &quot;perfect-timestamp&quot; property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp"/>
+    <keyword type="property" name="The &quot;tolerance&quot; property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance"/>
     <keyword type="struct" name="struct GstAudioFilter" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct"/>
     <keyword type="struct" name="struct GstAudioFilterClass" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" since="0.10.12"/>
     <keyword type="function" name="gst_audio_filter_class_add_pad_templates ()" link="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" since="0.10.12"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp7862112"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp8831744"/>
     <keyword type="function" name="GstAudioMixerFilterFunc ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc"/>
     <keyword type="function" name="gst_audio_default_registry_mixer_filter ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" since="0.10.2"/>
     <keyword type="struct" name="struct GstAudioSink" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct"/>
     <keyword type="function" name="gst_base_audio_sink_get_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" since="0.10.16"/>
     <keyword type="function" name="gst_base_audio_sink_get_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" since="0.10.31"/>
     <keyword type="function" name="gst_base_audio_sink_set_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" since="0.10.31"/>
+    <keyword type="property" name="The &quot;alignment-threshold&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold"/>
     <keyword type="property" name="The &quot;buffer-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time"/>
     <keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull"/>
+    <keyword type="property" name="The &quot;discont-wait&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait"/>
     <keyword type="property" name="The &quot;drift-tolerance&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance"/>
     <keyword type="property" name="The &quot;latency-time&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time"/>
     <keyword type="property" name="The &quot;provide-clock&quot; property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock"/>
     <keyword type="function" name="gst_audio_set_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions"/>
     <keyword type="function" name="gst_audio_set_structure_channel_positions_list ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list"/>
     <keyword type="function" name="gst_audio_check_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" since="0.10.20"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstringbuffer.html#idp11277488"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstringbuffer.html#idp12967152"/>
     <keyword type="struct" name="struct GstRingBuffer" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer-struct"/>
     <keyword type="struct" name="struct GstRingBufferClass" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferClass"/>
     <keyword type="struct" name="struct GstRingBufferSpec" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec"/>
     <keyword type="function" name="gst_ring_buffer_may_start ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-may-start" since="0.10.6"/>
     <keyword type="function" name="gst_ring_buffer_parse_caps ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-parse-caps"/>
     <keyword type="function" name="gst_ring_buffer_set_flushing ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-flushing"/>
-    <keyword type="" name="Using GstCddaBaseSrc-based elements in applications" link="gst-plugins-base-libs-gstcddabasesrc.html#idp11424608"/>
+    <keyword type="function" name="gst_audio_iec61937_frame_size ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" since="0.10.36"/>
+    <keyword type="function" name="gst_audio_iec61937_payload ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" since="0.10.36"/>
+    <keyword type="" name="Using GstCddaBaseSrc-based elements in applications" link="gst-plugins-base-libs-gstcddabasesrc.html#idp11955168"/>
     <keyword type="struct" name="struct GstCddaBaseSrc" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct"/>
     <keyword type="struct" name="struct GstCddaBaseSrcClass" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass"/>
     <keyword type="struct" name="struct GstCddaBaseSrcTrack" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack"/>
     <keyword type="function" name="gst_fft_f64_free ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free"/>
     <keyword type="macro" name="gst_cast_double()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double"/>
     <keyword type="macro" name="gst_cast_float()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp11606512"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp13682272"/>
     <keyword type="struct" name="GstColorBalance" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct"/>
     <keyword type="struct" name="struct GstColorBalanceClass" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass"/>
     <keyword type="enum" name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
     <keyword type="function" name="gst_color_balance_value_changed ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed"/>
     <keyword type="function" name="gst_color_balance_get_balance_type ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" since="0.10.24"/>
     <keyword type="signal" name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp8229152"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp13450016"/>
     <keyword type="struct" name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
     <keyword type="struct" name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
     <keyword type="signal" name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
     <keyword type="function" name="gst_property_probe_probe_property ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property"/>
     <keyword type="function" name="gst_property_probe_probe_property_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name"/>
     <keyword type="signal" name="The &quot;probe-needed&quot; signal" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp13350128"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp15191264"/>
     <keyword type="struct" name="GstStreamVolume" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct"/>
     <keyword type="enum" name="enum GstStreamVolumeFormat" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" since="0.10.25"/>
     <keyword type="function" name="gst_stream_volume_get_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume" since="0.10.25"/>
     <keyword type="function" name="gst_stream_volume_convert_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" since="0.10.25"/>
     <keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute"/>
     <keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttuner.html#idp15075664"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttuner.html#idp17049216"/>
     <keyword type="struct" name="GstTuner" link="gst-plugins-base-libs-gsttuner.html#GstTuner-struct"/>
     <keyword type="struct" name="struct GstTunerClass" link="gst-plugins-base-libs-gsttuner.html#GstTunerClass"/>
     <keyword type="function" name="gst_tuner_list_channels ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels"/>
     <keyword type="signal" name="The &quot;frequency-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed"/>
     <keyword type="signal" name="The &quot;norm-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed"/>
     <keyword type="signal" name="The &quot;signal-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp10457584"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp7342944"/>
     <keyword type="struct" name="struct GstTunerChannel" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct"/>
     <keyword type="enum" name="enum GstTunerChannelFlags" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags"/>
     <keyword type="macro" name="GST_TUNER_CHANNEL_HAS_FLAG()" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS"/>
     <keyword type="signal" name="The &quot;frequency-changed&quot; signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed"/>
     <keyword type="signal" name="The &quot;signal-changed&quot; signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttunernorm.html#idp9600144"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttunernorm.html#idp6264048"/>
     <keyword type="struct" name="struct GstTunerNorm" link="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct"/>
     <keyword type="struct" name="GstVideoOrientation" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct"/>
     <keyword type="struct" name="struct GstVideoOrientationInterface" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface"/>
     <keyword type="function" name="gst_video_orientation_set_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip" since="0.10.11"/>
     <keyword type="function" name="gst_video_orientation_set_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter" since="0.10.11"/>
     <keyword type="function" name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip" since="0.10.11"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstxoverlay.html#idp15827040"/>
-    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstxoverlay.html#idp15836384"/>
-    <keyword type="" name="GstXOverlay and Gtk+" link="gst-plugins-base-libs-gstxoverlay.html#idp15848544"/>
-    <keyword type="" name="GstXOverlay and Qt" link="gst-plugins-base-libs-gstxoverlay.html#idp15853312"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstxoverlay.html#idp17754944"/>
+    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstxoverlay.html#idp17764272"/>
+    <keyword type="" name="GstXOverlay and Gtk+" link="gst-plugins-base-libs-gstxoverlay.html#idp17776432"/>
+    <keyword type="" name="GstXOverlay and Qt" link="gst-plugins-base-libs-gstxoverlay.html#idp17781264"/>
     <keyword type="struct" name="GstXOverlay" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay-struct"/>
     <keyword type="struct" name="struct GstXOverlayClass" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlayClass"/>
     <keyword type="function" name="gst_x_overlay_set_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-xwindow-id" deprecated="Use gst_x_overlay_set_window_handle() instead."/>
     <keyword type="function" name="gst_netaddress_set_address_bytes ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" since="0.10.22"/>
     <keyword type="function" name="gst_netaddress_equal ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" since="0.10.18"/>
     <keyword type="function" name="gst_netaddress_to_string ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" since="0.10.24"/>
-    <keyword type="macro" name="GST_RIFF_00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_0021" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_0031" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_0032" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_00AM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_00__" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_00db" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db"/>
-    <keyword type="macro" name="GST_RIFF_00dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc"/>
-    <keyword type="macro" name="GST_RIFF_00dx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx"/>
-    <keyword type="macro" name="GST_RIFF_00id" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id"/>
-    <keyword type="macro" name="GST_RIFF_00iv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv"/>
-    <keyword type="macro" name="GST_RIFF_00pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc"/>
-    <keyword type="macro" name="GST_RIFF_00rt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt"/>
-    <keyword type="macro" name="GST_RIFF_00vc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc"/>
-    <keyword type="macro" name="GST_RIFF_00xm" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm"/>
-    <keyword type="macro" name="GST_RIFF_00xx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx"/>
-    <keyword type="macro" name="GST_RIFF_01" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_01dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc"/>
-    <keyword type="macro" name="GST_RIFF_01pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc"/>
-    <keyword type="macro" name="GST_RIFF_01wb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb"/>
-    <keyword type="macro" name="GST_RIFF_02" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_03" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_04" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_05" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_06" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_07" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_AURA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_BW10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_CCC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_CRAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_CVID" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_CYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_DIB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_DISP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_DIV3" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_DMB1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_FCCH_MSVC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_FCCH_RLE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_FCCH_msvc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc"/>
-    <keyword type="macro" name="GST_RIFF_FCC_auds" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds"/>
-    <keyword type="macro" name="GST_RIFF_FCC_iavs" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs"/>
-    <keyword type="macro" name="GST_RIFF_FCC_pads" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads"/>
-    <keyword type="macro" name="GST_RIFF_FCC_txts" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts"/>
-    <keyword type="macro" name="GST_RIFF_FCC_vidc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc"/>
-    <keyword type="macro" name="GST_RIFF_FCC_vids" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids"/>
-    <keyword type="macro" name="GST_RIFF_FF00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_H263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_I420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IDIT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IARL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IART" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ICMS" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ICMT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ICOP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ICRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ICRP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IDIM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IDPI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IENG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IGNR" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IKEY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ILGT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IMED" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_INAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IPLT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_IPRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ISHP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ISRC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ISRF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_INFO_ITCH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IV31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IV32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IV41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IV50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_IYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_JPEG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_L263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_LIST_AVIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_LIST_INFO" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_LIST_adtl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl"/>
-    <keyword type="macro" name="GST_RIFF_LIST_hdrl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl"/>
-    <keyword type="macro" name="GST_RIFF_LIST_movi" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi"/>
-    <keyword type="macro" name="GST_RIFF_LIST_odml" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml"/>
-    <keyword type="macro" name="GST_RIFF_LIST_strl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl"/>
-    <keyword type="macro" name="GST_RIFF_M263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_MJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_MPIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_MVI1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_NONE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_PACK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_Q1_0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RAW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RGB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RIFF_AVI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RIFF_CDXA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RIFF_WAVE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RLE4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RLE8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_RT21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_SFMC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_acid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid"/>
-    <keyword type="macro" name="GST_RIFF_TAG_AVF0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_BEXT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_JUNK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_JUNQ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_LIST" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_RIFF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_RIFX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_TAG_avih" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih"/>
-    <keyword type="macro" name="GST_RIFF_TAG_bext" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext"/>
-    <keyword type="macro" name="GST_RIFF_TAG_cue" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue"/>
-    <keyword type="macro" name="GST_RIFF_TAG_data" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data"/>
-    <keyword type="macro" name="GST_RIFF_TAG_dmlh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh"/>
-    <keyword type="macro" name="GST_RIFF_TAG_fact" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact"/>
-    <keyword type="macro" name="GST_RIFF_TAG_fmt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt"/>
-    <keyword type="macro" name="GST_RIFF_TAG_idx1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1"/>
-    <keyword type="macro" name="GST_RIFF_TAG_plst" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst"/>
-    <keyword type="macro" name="GST_RIFF_TAG_strd" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd"/>
-    <keyword type="macro" name="GST_RIFF_TAG_strf" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf"/>
-    <keyword type="macro" name="GST_RIFF_TAG_strh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh"/>
-    <keyword type="macro" name="GST_RIFF_TAG_strn" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn"/>
-    <keyword type="macro" name="GST_RIFF_TAG_vedt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt"/>
-    <keyword type="macro" name="GST_RIFF_TRAN" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_ULTI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_V422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_VDOW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_VIXL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_VSSH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_VYUY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_WHAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_WINX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_WPY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_XMPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_Y41P" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_YUV8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_YUV9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_YUY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_YV12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_YVU9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS"/>
-    <keyword type="macro" name="GST_RIFF_azpr" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr"/>
-    <keyword type="macro" name="GST_RIFF_bw10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10"/>
-    <keyword type="macro" name="GST_RIFF_ccc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc"/>
-    <keyword type="macro" name="GST_RIFF_cram" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram"/>
-    <keyword type="macro" name="GST_RIFF_cvid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid"/>
-    <keyword type="macro" name="GST_RIFF_cyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv"/>
-    <keyword type="macro" name="GST_RIFF_dmb1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1"/>
-    <keyword type="macro" name="GST_RIFF_h263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263"/>
-    <keyword type="macro" name="GST_RIFF_i263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263"/>
-    <keyword type="macro" name="GST_RIFF_i420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420"/>
-    <keyword type="macro" name="GST_RIFF_iv31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31"/>
-    <keyword type="macro" name="GST_RIFF_iv32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32"/>
-    <keyword type="macro" name="GST_RIFF_iv41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41"/>
-    <keyword type="macro" name="GST_RIFF_iv50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50"/>
-    <keyword type="macro" name="GST_RIFF_iyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv"/>
-    <keyword type="macro" name="GST_RIFF_jpeg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg"/>
-    <keyword type="macro" name="GST_RIFF_m263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263"/>
-    <keyword type="macro" name="GST_RIFF_mJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG"/>
-    <keyword type="macro" name="GST_RIFF_mvi1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1"/>
-    <keyword type="macro" name="GST_RIFF_none" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-none"/>
-    <keyword type="macro" name="GST_RIFF_pack" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack"/>
-    <keyword type="macro" name="GST_RIFF_rec" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec"/>
-    <keyword type="macro" name="GST_RIFF_rgb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb"/>
-    <keyword type="macro" name="GST_RIFF_rle4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4"/>
-    <keyword type="macro" name="GST_RIFF_rle8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8"/>
-    <keyword type="macro" name="GST_RIFF_rpza" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza"/>
-    <keyword type="macro" name="GST_RIFF_rt21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21"/>
-    <keyword type="macro" name="GST_RIFF_tran" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran"/>
-    <keyword type="macro" name="GST_RIFF_ulti" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti"/>
-    <keyword type="macro" name="GST_RIFF_v422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422"/>
-    <keyword type="macro" name="GST_RIFF_vixl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl"/>
-    <keyword type="macro" name="GST_RIFF_vyuy" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy"/>
-    <keyword type="macro" name="GST_RIFF_wham" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham"/>
-    <keyword type="macro" name="GST_RIFF_x263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263"/>
-    <keyword type="macro" name="GST_RIFF_xmpg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg"/>
-    <keyword type="macro" name="GST_RIFF_y41p" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p"/>
-    <keyword type="macro" name="GST_RIFF_yuy2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2"/>
-    <keyword type="macro" name="GST_RIFF_yv12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12"/>
-    <keyword type="struct" name="gst_riff_acid" link="gst-plugins-base-libs-gstriff.html#gst-riff-acid"/>
     <keyword type="function" name="gst_riff_create_audio_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps"/>
     <keyword type="function" name="gst_riff_create_audio_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps"/>
     <keyword type="function" name="gst_riff_create_iavs_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps"/>
     <keyword type="function" name="gst_riff_create_iavs_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps"/>
     <keyword type="function" name="gst_riff_create_video_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps"/>
     <keyword type="function" name="gst_riff_create_video_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps"/>
-    <keyword type="struct" name="gst_riff_dmlh" link="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh"/>
-    <keyword type="struct" name="gst_riff_index_entry" link="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry"/>
     <keyword type="function" name="gst_riff_init ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-init"/>
     <keyword type="function" name="gst_riff_parse_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk"/>
     <keyword type="function" name="gst_riff_parse_file_header ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header"/>
     <keyword type="function" name="gst_riff_parse_strf_vids ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids"/>
     <keyword type="function" name="gst_riff_parse_strh ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh"/>
     <keyword type="function" name="gst_riff_read_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk"/>
-    <keyword type="struct" name="gst_riff_strf_auds" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"/>
-    <keyword type="struct" name="gst_riff_strf_iavs" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"/>
-    <keyword type="struct" name="gst_riff_strf_vids" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"/>
-    <keyword type="struct" name="gst_riff_strh" link="gst-plugins-base-libs-gstriff.html#gst-riff-strh"/>
-    <keyword type="" name="Usage" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#idp16015920"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#idp18656560"/>
     <keyword type="struct" name="struct GstBaseRTPAudioPayload" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct"/>
     <keyword type="struct" name="struct GstBaseRTPAudioPayloadClass" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass"/>
     <keyword type="function" name="gst_base_rtp_audio_payload_set_frame_based ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based"/>
     <keyword type="function" name="gst_base_rtp_audio_payload_flush ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" since="0.10.25"/>
     <keyword type="function" name="gst_base_rtp_audio_payload_set_samplebits_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options" since="0.10.18"/>
     <keyword type="property" name="The &quot;buffer-list&quot; property" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstbasertpdepayload.html#idp15451472"/>
     <keyword type="struct" name="struct GstBaseRTPDepayload" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct"/>
     <keyword type="struct" name="struct GstBaseRTPDepayloadClass" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass"/>
     <keyword type="macro" name="GST_BASE_RTP_DEPAYLOAD_SINKPAD()" link="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS"/>
     <keyword type="function" name="gst_base_rtp_depayload_push_ts ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts"/>
     <keyword type="function" name="gst_base_rtp_depayload_push_list ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" since="0.10.32"/>
     <keyword type="property" name="The &quot;queue-delay&quot; property" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstbasertppayload.html#idp17358176"/>
     <keyword type="struct" name="struct GstBaseRTPPayload" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct"/>
     <keyword type="struct" name="struct GstBaseRTPPayloadClass" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass"/>
     <keyword type="macro" name="GST_BASE_RTP_PAYLOAD_MTU()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS"/>
     <keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc"/>
     <keyword type="property" name="The &quot;timestamp&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp"/>
     <keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp19435168"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp20554720"/>
     <keyword type="macro" name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
     <keyword type="function" name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
     <keyword type="function" name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
     <keyword type="function" name="gst_rtp_buffer_list_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-twobytes-header" since="0.10.31"/>
     <keyword type="function" name="gst_rtp_buffer_list_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-onebyte-header" since="0.10.31"/>
     <keyword type="function" name="gst_rtp_buffer_list_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-twobytes-header" since="0.10.31"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp18698800"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp19709744"/>
     <keyword type="macro" name="GST_RTCP_VERSION" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS"/>
     <keyword type="macro" name="GST_RTCP_MAX_SDES" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS"/>
     <keyword type="macro" name="GST_RTCP_MAX_BYE_SSRC_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"/>
     <keyword type="function" name="gst_rtcp_unix_to_ntp ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp"/>
     <keyword type="function" name="gst_rtcp_sdes_name_to_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type" since="0.10.26"/>
     <keyword type="function" name="gst_rtcp_sdes_type_to_name ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name" since="0.10.26"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp17281392"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp8311104"/>
     <keyword type="enum" name="enum GstRTPPayload" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload"/>
     <keyword type="macro" name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
     <keyword type="struct" name="struct GstRTPPayloadInfo" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo"/>
     <keyword type="function" name="gst_rtsp_watch_send_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message" since="0.10.25"/>
     <keyword type="function" name="gst_rtsp_watch_write_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" since="0.10.25"/>
     <keyword type="macro" name="GST_RTSP_CHECK()" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS"/>
+    <keyword type="macro" name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
     <keyword type="enum" name="enum GstRTSPEvent" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent"/>
     <keyword type="enum" name="enum GstRTSPResult" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult"/>
     <keyword type="enum" name="enum GstRTSPFamily" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily"/>
     <keyword type="enum" name="enum GstRTSPVersion" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion"/>
     <keyword type="enum" name="enum GstRTSPMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod"/>
     <keyword type="enum" name="enum GstRTSPAuthMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod"/>
-    <keyword type="macro" name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
     <keyword type="enum" name="enum GstRTSPHeaderField" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField"/>
     <keyword type="enum" name="enum GstRTSPStatusCode" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode"/>
     <keyword type="function" name="gst_rtsp_strresult ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult"/>
     <keyword type="function" name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" since="0.10.23"/>
     <keyword type="function" name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
     <keyword type="function" name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp11962528"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp11883136"/>
     <keyword type="struct" name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
     <keyword type="struct" name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
     <keyword type="enum" name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
     <keyword type="function" name="gst_rtsp_url_set_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port"/>
     <keyword type="function" name="gst_rtsp_url_get_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port"/>
     <keyword type="function" name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components" since="0.10.32"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp25276480"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp26359712"/>
     <keyword type="enum" name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
     <keyword type="struct" name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
     <keyword type="struct" name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
     <keyword type="function" name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
     <keyword type="function" name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
     <keyword type="function" name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp24834784"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp26027584"/>
     <keyword type="macro" name="GST_TAG_MUSICBRAINZ_TRACKID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRACKID:CAPS"/>
     <keyword type="macro" name="GST_TAG_MUSICBRAINZ_ARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"/>
     <keyword type="macro" name="GST_TAG_MUSICBRAINZ_ALBUMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"/>
     <keyword type="macro" name="GST_TAG_CAPTURING_FLASH_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS" since="0.10.31"/>
     <keyword type="macro" name="GST_TAG_CAPTURING_METERING_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS" since="0.10.31"/>
     <keyword type="macro" name="GST_TAG_CAPTURING_SOURCE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" since="0.10.33"/>
     <keyword type="macro" name="GST_TAG_IMAGE_HORIZONTAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS" since="0.10.31"/>
     <keyword type="macro" name="GST_TAG_IMAGE_VERTICAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_TAG_ID3V2_HEADER_SIZE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" since="0.10.36"/>
     <keyword type="function" name="gst_tag_register_musicbrainz_tags ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags"/>
     <keyword type="function" name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8" since="0.10.13"/>
     <keyword type="function" name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment" since="0.10.10"/>
     <keyword type="function" name="gst_tag_image_data_to_image_buffer ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer" since="0.10.20"/>
     <keyword type="enum" name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType" since="0.10.9"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp24832896"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp24787424"/>
     <keyword type="function" name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
     <keyword type="function" name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
     <keyword type="function" name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
     <keyword type="function" name="gst_tag_to_vorbis_comments ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments"/>
     <keyword type="function" name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
     <keyword type="function" name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp25099152"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp24766688"/>
     <keyword type="function" name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
     <keyword type="function" name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
     <keyword type="function" name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
     <keyword type="function" name="gst_tag_from_id3_user_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag"/>
     <keyword type="function" name="gst_tag_to_id3_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag"/>
     <keyword type="function" name="gst_tag_list_add_id3_image ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image" since="0.10.20"/>
+    <keyword type="function" name="gst_tag_get_id3v2_tag_size ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_list_from_id3v2_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_list_to_exif_buffer ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" since="0.10.30"/>
+    <keyword type="function" name="gst_tag_list_to_exif_buffer_with_tiff_header ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" since="0.10.30"/>
+    <keyword type="function" name="gst_tag_list_from_exif_buffer ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" since="0.10.30"/>
+    <keyword type="function" name="gst_tag_list_from_exif_buffer_with_tiff_header ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" since="0.10.30"/>
     <keyword type="function" name="gst_tag_list_from_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" since="0.10.29"/>
     <keyword type="function" name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" since="0.10.29"/>
-    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp10464912"/>
+    <keyword type="function" name="gst_tag_list_to_xmp_buffer_full ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" since="0.10.33"/>
+    <keyword type="function" name="gst_tag_xmp_list_schemas ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" since="0.10.33"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#idp24958400"/>
+    <keyword type="function" name="gst_tag_xmp_writer_add_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" since="0.10.33"/>
+    <keyword type="function" name="gst_tag_xmp_writer_add_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" since="0.10.33"/>
+    <keyword type="function" name="gst_tag_xmp_writer_has_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" since="0.10.33"/>
+    <keyword type="function" name="gst_tag_xmp_writer_remove_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" since="0.10.33"/>
+    <keyword type="function" name="gst_tag_xmp_writer_remove_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" since="0.10.33"/>
+    <keyword type="function" name="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer"/>
+    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp17345968"/>
     <keyword type="struct" name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux" since="0.10.15"/>
     <keyword type="struct" name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass" since="0.10.15"/>
     <keyword type="enum" name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult" since="0.10.15"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp24771488"/>
+    <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#idp15390752"/>
+    <keyword type="struct" name="struct GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#GstTagMux" since="0.10.36"/>
+    <keyword type="struct" name="struct GstTagMuxClass" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" since="0.10.36"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp25117840"/>
     <keyword type="function" name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes" since="0.10.26"/>
     <keyword type="function" name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name" since="0.10.26"/>
     <keyword type="macro" name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code" since="0.10.26"/>
     <keyword type="function" name="gst_tag_get_language_code_iso_639_1 ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1" since="0.10.26"/>
     <keyword type="function" name="gst_tag_get_language_code_iso_639_2B ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B" since="0.10.26"/>
     <keyword type="function" name="gst_tag_get_language_code_iso_639_2T ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T" since="0.10.26"/>
-    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp19337104"/>
+    <keyword type="enum" name="enum GstTagLicenseFlags" link="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_license_flags ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_license_nick ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_license_title ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_license_description ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_license_jurisdiction ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_license_version ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_get_licenses ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" since="0.10.36"/>
+    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp7121744"/>
     <keyword type="function" name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" since="0.10.12"/>
-    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MICRO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_NANO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
-    <keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version" since="0.10.31"/>
-    <keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string" since="0.10.31"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp24572928"/>
+    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MICRO" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_NANO" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
+    <keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" since="0.10.31"/>
+    <keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" since="0.10.31"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp27788672"/>
     <keyword type="function" name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_h264_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_h264_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_h264_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" since="0.10.31"/>
+    <keyword type="function" name="gst_codec_utils_h264_get_level_idc ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc" since="0.10.36"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" since="0.10.31"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" since="0.10.31"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp23918896"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp25852032"/>
     <keyword type="function" name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
     <keyword type="function" name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
     <keyword type="function" name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
     <keyword type="function" name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
     <keyword type="function" name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
     <keyword type="function" name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp26701328"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp28136352"/>
     <keyword type="function" name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
     <keyword type="function" name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
     <keyword type="function" name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
     <keyword type="function" name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" since="0.10.15"/>
     <keyword type="function" name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" since="0.10.15"/>
     <keyword type="function" name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" since="0.10.15"/>
-    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp23991312"/>
+    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp25467280"/>
     <keyword type="enum" name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" since="0.10.12"/>
     <keyword type="function" name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" since="0.10.12"/>
     <keyword type="function" name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" since="0.10.12"/>
     <keyword type="struct" name="GstDiscovererContainerInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" since="0.10.31"/>
     <keyword type="struct" name="GstDiscovererAudioInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" since="0.10.31"/>
     <keyword type="struct" name="GstDiscovererVideoInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" since="0.10.31"/>
+    <keyword type="struct" name="GstDiscovererSubtitleInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" since="0.10.36"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_caps ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_next ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_info_get_audio_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_info_get_container_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" since="0.10.31"/>
+    <keyword type="function" name="gst_discoverer_info_get_subtitle_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" since="0.10.36"/>
     <keyword type="function" name="gst_discoverer_info_get_video_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_audio_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_audio_info_get_channels ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_audio_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" since="0.10.31"/>
+    <keyword type="function" name="gst_discoverer_audio_info_get_language ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" since="0.10.36"/>
     <keyword type="function" name="gst_discoverer_audio_info_get_max_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_audio_info_get_sample_rate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_container_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" since="0.10.31"/>
+    <keyword type="function" name="gst_discoverer_subtitle_info_get_language ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" since="0.10.36"/>
     <keyword type="function" name="gst_discoverer_video_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_video_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" since="0.10.31"/>
     <keyword type="function" name="gst_discoverer_video_info_get_framerate_denom ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" since="0.10.31"/>
     <keyword type="signal" name="The &quot;discovered&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered"/>
     <keyword type="signal" name="The &quot;finished&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished"/>
     <keyword type="signal" name="The &quot;starting&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp27641072"/>
-    <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp27648640"/>
-    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp27651632"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp29241168"/>
+    <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp29248736"/>
+    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp29251728"/>
     <keyword type="struct" name="GstEncodingProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"/>
     <keyword type="macro" name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" since="0.10.32"/>
     <keyword type="macro" name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" since="0.10.32"/>
     <keyword type="function" name="gst_encoding_profile_find ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" since="0.10.32"/>
+    <keyword type="function" name="gst_encoding_profile_from_discoverer ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer" since="0.10.36"/>
     <keyword type="function" name="gst_encoding_profile_get_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" since="0.10.32"/>
     <keyword type="function" name="gst_encoding_profile_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" since="0.10.32"/>
     <keyword type="function" name="gst_encoding_profile_get_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" since="0.10.32"/>
     <keyword type="function" name="gst_encoding_target_load_from_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" since="0.10.32"/>
     <keyword type="function" name="gst_encoding_list_all_targets ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" since="0.10.32"/>
     <keyword type="function" name="gst_encoding_list_available_categories ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" since="0.10.32"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp28861408"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp29566608"/>
     <keyword type="macro" name="GST_VIDEO_BLUE_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15:CAPS" deprecated=""/>
     <keyword type="macro" name="GST_VIDEO_BLUE_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15-INT:CAPS" deprecated=""/>
     <keyword type="macro" name="GST_VIDEO_BLUE_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-16:CAPS" deprecated=""/>
     <keyword type="macro" name="GST_VIDEO_CAPS_RGB8_PALETTED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS" since="0.10.32"/>
     <keyword type="macro" name="GST_VIDEO_CAPS_GRAY8" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS" since="0.10.29"/>
     <keyword type="macro" name="GST_VIDEO_CAPS_GRAY16()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS" since="0.10.29"/>
+    <keyword type="macro" name="GST_VIDEO_CAPS_ARGB_64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_CAPS_r210" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210"/>
+    <keyword type="macro" name="GST_VIDEO_COMP1_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP1_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP1_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP1_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP2_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP2_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP2_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP2_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP3_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP3_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP3_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_COMP3_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_FPS_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_GREEN_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS" deprecated=""/>
     <keyword type="macro" name="GST_VIDEO_GREEN_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS" deprecated=""/>
     <keyword type="macro" name="GST_VIDEO_BUFFER_TFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS" since="0.10.23"/>
     <keyword type="macro" name="GST_VIDEO_BUFFER_RFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS" since="0.10.23"/>
     <keyword type="macro" name="GST_VIDEO_BUFFER_ONEFIELD" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS" since="0.10.23"/>
+    <keyword type="macro" name="GST_VIDEO_BUFFER_PROGRESSIVE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" since="0.10.33"/>
     <keyword type="enum" name="enum GstVideoFormat" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormat"/>
     <keyword type="function" name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" since="0.10.7"/>
     <keyword type="function" name="gst_video_frame_rate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-frame-rate"/>
     <keyword type="function" name="gst_video_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-get-size"/>
+    <keyword type="function" name="gst_video_get_size_from_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps" since="0.10.36"/>
     <keyword type="function" name="gst_video_format_convert ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert" since="0.10.16"/>
     <keyword type="function" name="gst_video_format_new_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps" since="0.10.16"/>
     <keyword type="function" name="gst_video_format_new_caps_interlaced ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps-interlaced" since="0.10.23"/>
+    <keyword type="function" name="gst_video_format_new_template_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps" since="0.10.33"/>
     <keyword type="function" name="gst_video_format_get_component_height ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height" since="0.10.16"/>
     <keyword type="function" name="gst_video_format_get_component_offset ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-offset" since="0.10.16"/>
     <keyword type="function" name="gst_video_format_get_component_width ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-width" since="0.10.16"/>
+    <keyword type="function" name="gst_video_format_get_component_depth ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth" since="0.10.33"/>
     <keyword type="function" name="gst_video_format_get_pixel_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride" since="0.10.16"/>
     <keyword type="function" name="gst_video_format_get_row_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride" since="0.10.16"/>
     <keyword type="function" name="gst_video_format_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-size" since="0.10.16"/>
     <keyword type="function" name="gst_video_convert_frame_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame-async" since="0.10.31"/>
     <keyword type="function" name="gst_video_event_new_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" since="0.10.26"/>
     <keyword type="function" name="gst_video_event_parse_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" since="0.10.26"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp23911216"/>
+    <keyword type="function" name="gst_video_event_new_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" since="0.10.36"/>
+    <keyword type="function" name="gst_video_event_new_downstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" since="0.10.36"/>
+    <keyword type="function" name="gst_video_event_is_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" since="0.10.36"/>
+    <keyword type="function" name="gst_video_event_parse_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" since="0.10.36"/>
+    <keyword type="function" name="gst_video_event_parse_downstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" since="0.10.36"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#idp30461952"/>
+    <keyword type="struct" name="GstVideoOverlayComposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" since="0.10.36"/>
+    <keyword type="struct" name="GstVideoOverlayCompositionClass" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass"/>
+    <keyword type="function" name="gst_video_overlay_composition_new ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_unref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_add_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_n_rectangles ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_get_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_get_seqnum ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_copy ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_make_writable ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_composition_blend ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" since="0.10.36"/>
+    <keyword type="function" name="gst_video_buffer_get_overlay_composition ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" since="0.10.36"/>
+    <keyword type="function" name="gst_video_buffer_set_overlay_composition ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" since="0.10.36"/>
+    <keyword type="enum" name="enum GstVideoOverlayFormatFlags" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" since="0.10.36"/>
+    <keyword type="struct" name="GstVideoOverlayRectangle" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" since="0.10.36"/>
+    <keyword type="struct" name="GstVideoOverlayRectangleClass" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_new_argb ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_unref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_get_pixels_argb ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_get_render_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_get_seqnum ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_set_render_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" since="0.10.36"/>
+    <keyword type="function" name="gst_video_overlay_rectangle_copy ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" since="0.10.36"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp8581264"/>
     <keyword type="struct" name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
     <keyword type="struct" name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp27834272"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp29609152"/>
     <keyword type="struct" name="struct GstVideoSink" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct"/>
     <keyword type="struct" name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
     <keyword type="struct" name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
     <keyword type="constant" name="GST_APP_STREAM_TYPE_STREAM" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-STREAM:CAPS"/>
     <keyword type="constant" name="GST_APP_STREAM_TYPE_SEEKABLE" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-SEEKABLE:CAPS"/>
     <keyword type="constant" name="GST_APP_STREAM_TYPE_RANDOM_ACCESS" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-RANDOM-ACCESS:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FLAG_NONE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FLAG_DEFAULT_POSITIONS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_UNKNOWN" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S8" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S8:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U8" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U8:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S16LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S16BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U16LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U16BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S24_32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S24_32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U24_32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U24_32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S24LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S24BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U24LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U24BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S20LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S20BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U20LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U20BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S18LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S18BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U18LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U18BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_F32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_F32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_F64LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64LE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_F64BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64BE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S16" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U16" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S24_32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U24_32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S24" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U24" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S20" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U20" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_S18" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_U18" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_F32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_F64" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_INTEGER" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_FLOAT" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_SIGNED" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_COMPLEX" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_FIELD_RATE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-RATE:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_FIELD_CHANNELS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-CHANNELS:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_FIELD_ENDIANNESS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-ENDIANNESS:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_NONE" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_NUM" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NUM:CAPS"/>
     <keyword type="constant" name="GST_SEGSTATE_INVALID" link="gst-plugins-base-libs-gstringbuffer.html#GST-SEGSTATE-INVALID:CAPS"/>
     <keyword type="constant" name="GST_SEGSTATE_EMPTY" link="gst-plugins-base-libs-gstringbuffer.html#GST-SEGSTATE-EMPTY:CAPS"/>
     <keyword type="constant" name="GST_SEGSTATE_FILLED" link="gst-plugins-base-libs-gstringbuffer.html#GST-SEGSTATE-FILLED:CAPS"/>
     <keyword type="constant" name="GST_RING_BUFFER_STATE_STOPPED" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-STOPPED:CAPS"/>
     <keyword type="constant" name="GST_RING_BUFFER_STATE_PAUSED" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-PAUSED:CAPS"/>
     <keyword type="constant" name="GST_RING_BUFFER_STATE_STARTED" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-STARTED:CAPS"/>
+    <keyword type="constant" name="GST_UNKNOWN" link="gst-plugins-base-libs-gstringbuffer.html#GST-UNKNOWN:CAPS"/>
+    <keyword type="constant" name="GST_S8" link="gst-plugins-base-libs-gstringbuffer.html#GST-S8:CAPS"/>
+    <keyword type="constant" name="GST_U8" link="gst-plugins-base-libs-gstringbuffer.html#GST-U8:CAPS"/>
+    <keyword type="constant" name="GST_S16_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S16-LE:CAPS"/>
+    <keyword type="constant" name="GST_S16_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S16-BE:CAPS"/>
+    <keyword type="constant" name="GST_U16_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U16-LE:CAPS"/>
+    <keyword type="constant" name="GST_U16_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U16-BE:CAPS"/>
+    <keyword type="constant" name="GST_S24_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-LE:CAPS"/>
+    <keyword type="constant" name="GST_S24_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-BE:CAPS"/>
+    <keyword type="constant" name="GST_U24_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-LE:CAPS"/>
+    <keyword type="constant" name="GST_U24_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-BE:CAPS"/>
+    <keyword type="constant" name="GST_S32_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S32-LE:CAPS"/>
+    <keyword type="constant" name="GST_S32_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S32-BE:CAPS"/>
+    <keyword type="constant" name="GST_U32_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U32-LE:CAPS"/>
+    <keyword type="constant" name="GST_U32_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U32-BE:CAPS"/>
+    <keyword type="constant" name="GST_S24_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-3LE:CAPS"/>
+    <keyword type="constant" name="GST_S24_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-3BE:CAPS"/>
+    <keyword type="constant" name="GST_U24_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-3LE:CAPS"/>
+    <keyword type="constant" name="GST_U24_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-3BE:CAPS"/>
+    <keyword type="constant" name="GST_S20_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S20-3LE:CAPS"/>
+    <keyword type="constant" name="GST_S20_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S20-3BE:CAPS"/>
+    <keyword type="constant" name="GST_U20_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U20-3LE:CAPS"/>
+    <keyword type="constant" name="GST_U20_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U20-3BE:CAPS"/>
+    <keyword type="constant" name="GST_S18_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S18-3LE:CAPS"/>
+    <keyword type="constant" name="GST_S18_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S18-3BE:CAPS"/>
+    <keyword type="constant" name="GST_U18_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U18-3LE:CAPS"/>
+    <keyword type="constant" name="GST_U18_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U18-3BE:CAPS"/>
+    <keyword type="constant" name="GST_FLOAT32_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-LE:CAPS"/>
+    <keyword type="constant" name="GST_FLOAT32_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-BE:CAPS"/>
+    <keyword type="constant" name="GST_FLOAT64_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-LE:CAPS"/>
+    <keyword type="constant" name="GST_FLOAT64_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-BE:CAPS"/>
+    <keyword type="constant" name="GST_MU_LAW" link="gst-plugins-base-libs-gstringbuffer.html#GST-MU-LAW:CAPS"/>
+    <keyword type="constant" name="GST_A_LAW" link="gst-plugins-base-libs-gstringbuffer.html#GST-A-LAW:CAPS"/>
+    <keyword type="constant" name="GST_IMA_ADPCM" link="gst-plugins-base-libs-gstringbuffer.html#GST-IMA-ADPCM:CAPS"/>
+    <keyword type="constant" name="GST_MPEG" link="gst-plugins-base-libs-gstringbuffer.html#GST-MPEG:CAPS"/>
+    <keyword type="constant" name="GST_GSM" link="gst-plugins-base-libs-gstringbuffer.html#GST-GSM:CAPS"/>
+    <keyword type="constant" name="GST_IEC958" link="gst-plugins-base-libs-gstringbuffer.html#GST-IEC958:CAPS"/>
+    <keyword type="constant" name="GST_AC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-AC3:CAPS"/>
+    <keyword type="constant" name="GST_EAC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-EAC3:CAPS"/>
+    <keyword type="constant" name="GST_DTS" link="gst-plugins-base-libs-gstringbuffer.html#GST-DTS:CAPS"/>
+    <keyword type="constant" name="GST_MPEG2_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-MPEG2-AAC:CAPS"/>
+    <keyword type="constant" name="GST_MPEG4_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-MPEG4-AAC:CAPS"/>
     <keyword type="constant" name="GST_BUFTYPE_LINEAR" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-LINEAR:CAPS"/>
     <keyword type="constant" name="GST_BUFTYPE_FLOAT" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-FLOAT:CAPS"/>
     <keyword type="constant" name="GST_BUFTYPE_MU_LAW" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MU-LAW:CAPS"/>
     <keyword type="constant" name="GST_BUFTYPE_AC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-AC3:CAPS"/>
     <keyword type="constant" name="GST_BUFTYPE_EAC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-EAC3:CAPS"/>
     <keyword type="constant" name="GST_BUFTYPE_DTS" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-DTS:CAPS"/>
+    <keyword type="constant" name="GST_BUFTYPE_MPEG2_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG2-AAC:CAPS"/>
+    <keyword type="constant" name="GST_BUFTYPE_MPEG4_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG4-AAC:CAPS"/>
     <keyword type="constant" name="GST_CDDA_BASE_SRC_MODE_NORMAL" link="gst-plugins-base-libs-gstcddabasesrc.html#GST-CDDA-BASE-SRC-MODE-NORMAL:CAPS"/>
     <keyword type="constant" name="GST_CDDA_BASE_SRC_MODE_CONTINUOUS" link="gst-plugins-base-libs-gstcddabasesrc.html#GST-CDDA-BASE-SRC-MODE-CONTINUOUS:CAPS"/>
     <keyword type="constant" name="GST_FFT_WINDOW_RECTANGULAR" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-RECTANGULAR:CAPS"/>
     <keyword type="constant" name="GST_FFT_WINDOW_BLACKMAN" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-BLACKMAN:CAPS"/>
     <keyword type="constant" name="GST_COLOR_BALANCE_HARDWARE" link="gst-plugins-base-libs-gstcolorbalance.html#GST-COLOR-BALANCE-HARDWARE:CAPS"/>
     <keyword type="constant" name="GST_COLOR_BALANCE_SOFTWARE" link="gst-plugins-base-libs-gstcolorbalance.html#GST-COLOR-BALANCE-SOFTWARE:CAPS"/>
+    <keyword type="constant" name="GST_MIXER_HARDWARE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-HARDWARE:CAPS"/>
+    <keyword type="constant" name="GST_MIXER_SOFTWARE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-SOFTWARE:CAPS"/>
     <keyword type="constant" name="GST_MIXER_FLAG_NONE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-NONE:CAPS"/>
     <keyword type="constant" name="GST_MIXER_FLAG_AUTO_NOTIFICATIONS" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS"/>
     <keyword type="constant" name="GST_MIXER_FLAG_HAS_WHITELIST" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-HAS-WHITELIST:CAPS"/>
     <keyword type="constant" name="GST_NAVIGATION_MESSAGE_MOUSE_OVER" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"/>
     <keyword type="constant" name="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"/>
     <keyword type="constant" name="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"/>
+    <keyword type="constant" name="GST_NAVIGATION_QUERY_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"/>
+    <keyword type="constant" name="GST_NAVIGATION_QUERY_COMMANDS" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS"/>
+    <keyword type="constant" name="GST_NAVIGATION_QUERY_ANGLES" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS"/>
     <keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_LINEAR" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-LINEAR:CAPS"/>
     <keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_CUBIC" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-CUBIC:CAPS"/>
     <keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_DB" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-DB:CAPS"/>
     <keyword type="constant" name="GST_RTCP_SDES_PRIV" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-SDES-PRIV:CAPS"/>
     <keyword type="constant" name="GST_RTCP_FB_TYPE_INVALID" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-FB-TYPE-INVALID:CAPS"/>
     <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_NACK" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-NACK:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_TMMBR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBR:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_TMMBN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBN:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_PLI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-PLI:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_SLI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-SLI:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_RPSI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-RPSI:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_AFB" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-AFB:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_PSFB_TYPE_FIR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-FIR:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_PSFB_TYPE_TSTR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTR:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_PSFB_TYPE_TSTN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTN:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_PSFB_TYPE_VBCN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-VBCN:CAPS"/>
     <keyword type="constant" name="GST_RTP_PAYLOAD_PCMU" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-PCMU:CAPS"/>
     <keyword type="constant" name="GST_RTP_PAYLOAD_1016" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-1016:CAPS"/>
     <keyword type="constant" name="GST_RTP_PAYLOAD_G721" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-G721:CAPS"/>
     <keyword type="constant" name="GST_TAG_DEMUX_RESULT_BROKEN_TAG" link="gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-BROKEN-TAG:CAPS"/>
     <keyword type="constant" name="GST_TAG_DEMUX_RESULT_AGAIN" link="gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-AGAIN:CAPS"/>
     <keyword type="constant" name="GST_TAG_DEMUX_RESULT_OK" link="gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-OK:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_REPRODUCTION" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_DISTRIBUTION" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_SHARING" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-SHARING:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_NOTICE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_ATTRIBUTION" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_SOURCE_CODE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_COPYLEFT" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS"/>
+    <keyword type="constant" name="GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS"/>
     <keyword type="constant" name="GST_INSTALL_PLUGINS_SUCCESS" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-SUCCESS:CAPS"/>
     <keyword type="constant" name="GST_INSTALL_PLUGINS_NOT_FOUND" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-NOT-FOUND:CAPS"/>
     <keyword type="constant" name="GST_INSTALL_PLUGINS_ERROR" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-ERROR:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_ARGB64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB64:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_AYUV64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-AYUV64:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_r210" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-r210"/>
+    <keyword type="constant" name="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"/>
   </functions>
 </book>
index 0ff976e..829a577 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>App Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="compiling.html" title="Compiling">
 <link rel="next" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -43,6 +43,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index edb5f75..aa33d3d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Audio Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-appsink.html" title="appsink">
 <link rel="next" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
 </dt>
 <dt>
@@ -54,6 +60,9 @@
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstringbuffer.html">gstringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+</dt>
 </dl></div>
 <p>
         This library should be linked to by getting cflags and libs from
@@ -63,6 +72,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b45df71..5d72456 100644 (file)
@@ -3,17 +3,17 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Base Utils Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
+<link rel="prev" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
 <link rel="next" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttaglicenses.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
@@ -27,6 +27,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
 </dt>
 <dt>
@@ -55,6 +58,6 @@ and encoder, decoder, URI source and URI sink elements</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 62d8030..7cc258f 100644 (file)
@@ -3,17 +3,17 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>CDDA Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
+<link rel="prev" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
 <link rel="next" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstringbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioiec61937.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 25bd286..34da19e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>FFT Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">
 <link rel="next" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -52,6 +52,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index cc47d96..da2cdff 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>FloatCast Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
 <link rel="next" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4277737..2b7505b 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Interfaces Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">
 <link rel="next" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,6 +77,6 @@ supporting it</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 78fff40..a338bc8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part II. Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="prev" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
 <link rel="next" href="api-index-full.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -26,6 +26,8 @@
     <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
         <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+                <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
                     <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a>
                     <a class="link" href="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
@@ -71,6 +73,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 16dc4ae..ea4661a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Network Buffer Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstxoverlay.html" title="gstxoverlay">
 <link rel="next" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index da70334..46cc1a4 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part I. GStreamer Base Plugins Libraries</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="next" href="compiling.html" title="Compiling">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -50,6 +50,12 @@ How to compile against the base plugins libraries
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
 </dt>
 <dt>
@@ -74,6 +80,9 @@ How to compile against the base plugins libraries
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstringbuffer.html">gstringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-cdda.html">CDDA Library</a></span></dt>
 <dd><dl><dt>
@@ -223,16 +232,30 @@ supporting it</span>
                     dealing with ID3v1 and ID3v2 tags</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
+                    dealing with exif tags</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
                     dealing with xmp packets</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
                     directly at the beginning or at the end of a file</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
+                    directly at the beginning or at the end of a file</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-base-utils.html">Base Utils Library</a></span></dt>
 <dd><dl>
@@ -240,6 +263,9 @@ supporting it</span>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
 </dt>
 <dt>
@@ -265,6 +291,9 @@ and encoder, decoder, URI source and URI sink elements</span>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
 </dt>
 <dt>
@@ -280,6 +309,6 @@ and encoder, decoder, URI source and URI sink elements</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index f7230d1..c30659a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Riff Media Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">
 <link rel="next" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index c8967bf..bbd6baf 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>RTP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
 <link rel="next" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -50,6 +50,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 9dd4452..46f3b39 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>RTSP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
 <link rel="next" href="gst-plugins-base-libs-gstrtspbase64.html" title="gstrtspbase64">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -56,6 +56,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 436f6db..33483e9 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>SDP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
 <link rel="next" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 75db3eb..02bf860 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Tag Support Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
 <link rel="next" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
                     dealing with ID3v1 and ID3v2 tags</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
+                    dealing with exif tags</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
                     dealing with xmp packets</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
                     directly at the beginning or at the end of a file</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
+                    directly at the beginning or at the end of a file</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+</dt>
 </dl></div>
 <p>
         This library should be linked to by getting cflags and libs from
@@ -54,6 +68,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 8e95bd4..6a2c464 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Video Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
 <link rel="next" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
 </dt>
 <dt>
@@ -41,6 +44,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index f0c9ce6..2aed9e0 100644 (file)
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base Plugins 0.10 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
 <link rel="next" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 0.10 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Library 0.10 (0.10.34)
+      for GStreamer Base Library 0.10 (0.10.36)
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
     </p></div>
 </div>
@@ -49,6 +49,12 @@ How to compile against the base plugins libraries
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
 </dt>
 <dt>
@@ -73,6 +79,9 @@ How to compile against the base plugins libraries
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstringbuffer.html">gstringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-cdda.html">CDDA Library</a></span></dt>
 <dd><dl><dt>
@@ -222,16 +231,30 @@ supporting it</span>
                     dealing with ID3v1 and ID3v2 tags</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
+                    dealing with exif tags</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
                     dealing with xmp packets</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
                     directly at the beginning or at the end of a file</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
+                    directly at the beginning or at the end of a file</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
 </dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-base-utils.html">Base Utils Library</a></span></dt>
 <dd><dl>
@@ -239,6 +262,9 @@ supporting it</span>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
 </dt>
 <dt>
@@ -264,6 +290,9 @@ and encoder, decoder, URI source and URI sink elements</span>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
 </dt>
 <dt>
@@ -279,6 +308,6 @@ and encoder, decoder, URI source and URI sink elements</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 69f6314..2d688e9 100644 (file)
@@ -4,7 +4,6 @@
 <ANCHOR id="gst-plugins-base-libs-appsrc.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.synopsis">
 <ANCHOR id="gst-plugins-base-libs-appsrc.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.description">
 <ANCHOR id="gst-plugins-base-libs-appsrc.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.details">
-<ANCHOR id="GstAppSrc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GstAppSrc">
 <ANCHOR id="GstAppStreamType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GstAppStreamType">
 <ANCHOR id="GST-APP-STREAM-TYPE-STREAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-STREAM:CAPS">
 <ANCHOR id="GST-APP-STREAM-TYPE-SEEKABLE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-SEEKABLE:CAPS">
@@ -30,7 +29,6 @@
 <ANCHOR id="gst-plugins-base-libs-appsink.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.synopsis">
 <ANCHOR id="gst-plugins-base-libs-appsink.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.description">
 <ANCHOR id="gst-plugins-base-libs-appsink.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.details">
-<ANCHOR id="GstAppSink" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#GstAppSink">
 <ANCHOR id="gst-app-sink-set-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps">
 <ANCHOR id="gst-app-sink-get-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps">
 <ANCHOR id="gst-app-sink-is-eos" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.description">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.details">
+<ANCHOR id="GstAudioFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFlags">
+<ANCHOR id="GST-AUDIO-FLAG-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS">
+<ANCHOR id="GstAudioFormat" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFormat">
+<ANCHOR id="GST-AUDIO-FORMAT-UNKNOWN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-UNKNOWN:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S8:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U8:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S16LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S16BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U16LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U16BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24-32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24-32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24-32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24-32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S20LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S20BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U20LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U20BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S18LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S18BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U18LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U18BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F64LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F64BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24-32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24-32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S20:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U20:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S18:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U18:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F64:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64:CAPS">
+<ANCHOR id="GstAudioFormatFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS">
+<ANCHOR id="GstAudioFormatInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo">
+<ANCHOR id="GstAudioInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioInfo">
+<ANCHOR id="gst-audio-info-init" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-init">
+<ANCHOR id="gst-audio-info-clear" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear">
+<ANCHOR id="gst-audio-info-copy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy">
+<ANCHOR id="gst-audio-info-free" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-free">
+<ANCHOR id="gst-audio-info-from-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps">
+<ANCHOR id="gst-audio-info-to-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps">
+<ANCHOR id="gst-audio-info-convert" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert">
+<ANCHOR id="gst-audio-format-get-info" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-DEPTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-FLAGS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-WIDTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-BPF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-BPS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-CHANNELS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-DEPTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-FLAGS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-POSITION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-RATE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-WIDTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS">
 <ANCHOR id="GstAudioFieldFlag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag">
 <ANCHOR id="GST-AUDIO-FIELD-RATE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-RATE:CAPS">
 <ANCHOR id="GST-AUDIO-FIELD-CHANNELS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-CHANNELS:CAPS">
 <ANCHOR id="gst-audio-clock-reset" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset">
 <ANCHOR id="gst-audio-clock-invalidate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate">
 <ANCHOR id="gst-plugins-base-libs-gstaudioclock.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioclock.html#gst-plugins-base-libs-gstaudioclock.see-also">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.synopsis">
+<ANCHOR id="GstAudioDecoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.object-hierarchy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.object-hierarchy">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.properties" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.properties">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.details">
+<ANCHOR id="GstAudioDecoder-struct" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct">
+<ANCHOR id="GstAudioDecoderClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass">
+<ANCHOR id="GST-AUDIO-DECODER-ERROR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SINK-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SINK-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SRC-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SRC-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS">
+<ANCHOR id="gst-audio-decoder-finish-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame">
+<ANCHOR id="gst-audio-decoder-get-audio-info" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info">
+<ANCHOR id="gst-audio-decoder-get-byte-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time">
+<ANCHOR id="gst-audio-decoder-get-delay" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay">
+<ANCHOR id="gst-audio-decoder-get-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable">
+<ANCHOR id="gst-audio-decoder-get-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency">
+<ANCHOR id="gst-audio-decoder-get-max-errors" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors">
+<ANCHOR id="gst-audio-decoder-get-min-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency">
+<ANCHOR id="gst-audio-decoder-get-needs-format" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format">
+<ANCHOR id="gst-audio-decoder-get-parse-state" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state">
+<ANCHOR id="gst-audio-decoder-get-plc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc">
+<ANCHOR id="gst-audio-decoder-get-plc-aware" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware">
+<ANCHOR id="gst-audio-decoder-get-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance">
+<ANCHOR id="gst-audio-decoder-set-byte-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time">
+<ANCHOR id="gst-audio-decoder-set-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable">
+<ANCHOR id="gst-audio-decoder-set-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency">
+<ANCHOR id="gst-audio-decoder-set-max-errors" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors">
+<ANCHOR id="gst-audio-decoder-set-min-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency">
+<ANCHOR id="gst-audio-decoder-set-needs-format" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format">
+<ANCHOR id="gst-audio-decoder-set-plc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc">
+<ANCHOR id="gst-audio-decoder-set-plc-aware" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware">
+<ANCHOR id="gst-audio-decoder-set-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.property-details">
+<ANCHOR id="GstAudioDecoder--min-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency">
+<ANCHOR id="GstAudioDecoder--plc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc">
+<ANCHOR id="GstAudioDecoder--tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.see-also">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.synopsis">
+<ANCHOR id="GstAudioEncoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.object-hierarchy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.object-hierarchy">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.implemented-interfaces" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.implemented-interfaces">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.properties" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.properties">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.details">
+<ANCHOR id="GstAudioEncoder-struct" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct">
+<ANCHOR id="GstAudioEncoderClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass">
+<ANCHOR id="GST-AUDIO-ENCODER-SEGMENT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SINK-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SINK-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SRC-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SRC-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS">
+<ANCHOR id="gst-audio-encoder-finish-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame">
+<ANCHOR id="gst-audio-encoder-get-audio-info" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info">
+<ANCHOR id="gst-audio-encoder-get-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable">
+<ANCHOR id="gst-audio-encoder-get-frame-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max">
+<ANCHOR id="gst-audio-encoder-get-frame-samples-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min">
+<ANCHOR id="gst-audio-encoder-get-frame-samples-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max">
+<ANCHOR id="gst-audio-encoder-get-hard-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min">
+<ANCHOR id="gst-audio-encoder-get-hard-resync" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync">
+<ANCHOR id="gst-audio-encoder-get-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency">
+<ANCHOR id="gst-audio-encoder-get-lookahead" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead">
+<ANCHOR id="gst-audio-encoder-get-mark-granule" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule">
+<ANCHOR id="gst-audio-encoder-get-perfect-timestamp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp">
+<ANCHOR id="gst-audio-encoder-get-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance">
+<ANCHOR id="gst-audio-encoder-proxy-getcaps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps">
+<ANCHOR id="gst-audio-encoder-set-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable">
+<ANCHOR id="gst-audio-encoder-set-frame-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max">
+<ANCHOR id="gst-audio-encoder-set-frame-samples-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min">
+<ANCHOR id="gst-audio-encoder-set-frame-samples-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max">
+<ANCHOR id="gst-audio-encoder-set-hard-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min">
+<ANCHOR id="gst-audio-encoder-set-hard-resync" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync">
+<ANCHOR id="gst-audio-encoder-set-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency">
+<ANCHOR id="gst-audio-encoder-set-lookahead" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead">
+<ANCHOR id="gst-audio-encoder-set-mark-granule" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule">
+<ANCHOR id="gst-audio-encoder-set-perfect-timestamp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp">
+<ANCHOR id="gst-audio-encoder-set-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.property-details">
+<ANCHOR id="GstAudioEncoder--hard-resync" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync">
+<ANCHOR id="GstAudioEncoder--mark-granule" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule">
+<ANCHOR id="GstAudioEncoder--perfect-timestamp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp">
+<ANCHOR id="GstAudioEncoder--tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstaudiofilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiofilter.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudiofilter.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiofilter.html#gst-plugins-base-libs-gstaudiofilter.synopsis">
 <ANCHOR id="GstAudioFilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">
 <ANCHOR id="gst-base-audio-sink-get-drift-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance">
 <ANCHOR id="gst-base-audio-sink-set-drift-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance">
 <ANCHOR id="gst-plugins-base-libs-gstbaseaudiosink.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#gst-plugins-base-libs-gstbaseaudiosink.property-details">
+<ANCHOR id="GstBaseAudioSink--alignment-threshold" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold">
 <ANCHOR id="GstBaseAudioSink--buffer-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time">
 <ANCHOR id="GstBaseAudioSink--can-activate-pull" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull">
+<ANCHOR id="GstBaseAudioSink--discont-wait" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait">
 <ANCHOR id="GstBaseAudioSink--drift-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance">
 <ANCHOR id="GstBaseAudioSink--latency-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time">
 <ANCHOR id="GstBaseAudioSink--provide-clock" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock">
 <ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS">
 <ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS">
 <ANCHOR id="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-NUM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NUM:CAPS">
 <ANCHOR id="gst-audio-fixate-channel-positions" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions">
 <ANCHOR id="gst-audio-get-channel-positions" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions">
 <ANCHOR id="gst-audio-set-caps-channel-positions-list" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list">
 <ANCHOR id="GST-RING-BUFFER-STATE-PAUSED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-PAUSED:CAPS">
 <ANCHOR id="GST-RING-BUFFER-STATE-STARTED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-STARTED:CAPS">
 <ANCHOR id="GstBufferFormat" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat">
+<ANCHOR id="GST-UNKNOWN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-UNKNOWN:CAPS">
+<ANCHOR id="GST-S8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S8:CAPS">
+<ANCHOR id="GST-U8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U8:CAPS">
+<ANCHOR id="GST-S16-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S16-LE:CAPS">
+<ANCHOR id="GST-S16-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S16-BE:CAPS">
+<ANCHOR id="GST-U16-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U16-LE:CAPS">
+<ANCHOR id="GST-U16-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U16-BE:CAPS">
+<ANCHOR id="GST-S24-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-LE:CAPS">
+<ANCHOR id="GST-S24-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-BE:CAPS">
+<ANCHOR id="GST-U24-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-LE:CAPS">
+<ANCHOR id="GST-U24-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-BE:CAPS">
+<ANCHOR id="GST-S32-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S32-LE:CAPS">
+<ANCHOR id="GST-S32-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S32-BE:CAPS">
+<ANCHOR id="GST-U32-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U32-LE:CAPS">
+<ANCHOR id="GST-U32-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U32-BE:CAPS">
+<ANCHOR id="GST-S24-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-3LE:CAPS">
+<ANCHOR id="GST-S24-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-3BE:CAPS">
+<ANCHOR id="GST-U24-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-3LE:CAPS">
+<ANCHOR id="GST-U24-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-3BE:CAPS">
+<ANCHOR id="GST-S20-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S20-3LE:CAPS">
+<ANCHOR id="GST-S20-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S20-3BE:CAPS">
+<ANCHOR id="GST-U20-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U20-3LE:CAPS">
+<ANCHOR id="GST-U20-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U20-3BE:CAPS">
+<ANCHOR id="GST-S18-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S18-3LE:CAPS">
+<ANCHOR id="GST-S18-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S18-3BE:CAPS">
+<ANCHOR id="GST-U18-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U18-3LE:CAPS">
+<ANCHOR id="GST-U18-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U18-3BE:CAPS">
+<ANCHOR id="GST-FLOAT32-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-LE:CAPS">
+<ANCHOR id="GST-FLOAT32-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-BE:CAPS">
+<ANCHOR id="GST-FLOAT64-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-LE:CAPS">
+<ANCHOR id="GST-FLOAT64-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-BE:CAPS">
+<ANCHOR id="GST-MU-LAW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MU-LAW:CAPS">
+<ANCHOR id="GST-A-LAW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-A-LAW:CAPS">
+<ANCHOR id="GST-IMA-ADPCM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-IMA-ADPCM:CAPS">
+<ANCHOR id="GST-MPEG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MPEG:CAPS">
+<ANCHOR id="GST-GSM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-GSM:CAPS">
+<ANCHOR id="GST-IEC958:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-IEC958:CAPS">
+<ANCHOR id="GST-AC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-AC3:CAPS">
+<ANCHOR id="GST-EAC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-EAC3:CAPS">
+<ANCHOR id="GST-DTS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-DTS:CAPS">
+<ANCHOR id="GST-MPEG2-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MPEG2-AAC:CAPS">
+<ANCHOR id="GST-MPEG4-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MPEG4-AAC:CAPS">
 <ANCHOR id="GstBufferFormatType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType">
 <ANCHOR id="GST-BUFTYPE-LINEAR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-LINEAR:CAPS">
 <ANCHOR id="GST-BUFTYPE-FLOAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-FLOAT:CAPS">
 <ANCHOR id="GST-BUFTYPE-AC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-AC3:CAPS">
 <ANCHOR id="GST-BUFTYPE-EAC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-EAC3:CAPS">
 <ANCHOR id="GST-BUFTYPE-DTS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-DTS:CAPS">
+<ANCHOR id="GST-BUFTYPE-MPEG2-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG2-AAC:CAPS">
+<ANCHOR id="GST-BUFTYPE-MPEG4-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG4-AAC:CAPS">
 <ANCHOR id="GST-RING-BUFFER-BROADCAST:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-BROADCAST:CAPS">
 <ANCHOR id="GST-RING-BUFFER-GET-COND:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-GET-COND:CAPS">
 <ANCHOR id="GST-RING-BUFFER-SIGNAL:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-SIGNAL:CAPS">
 <ANCHOR id="gst-ring-buffer-parse-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-parse-caps">
 <ANCHOR id="gst-ring-buffer-set-flushing" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-flushing">
 <ANCHOR id="gst-plugins-base-libs-gstringbuffer.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#gst-plugins-base-libs-gstringbuffer.see-also">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.details">
+<ANCHOR id="gst-audio-iec61937-frame-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size">
+<ANCHOR id="gst-audio-iec61937-payload" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload">
 <ANCHOR id="gst-plugins-base-libs-gstcddabasesrc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstcddabasesrc.html">
 <ANCHOR id="gst-plugins-base-libs-gstcddabasesrc.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstcddabasesrc.html#gst-plugins-base-libs-gstcddabasesrc.synopsis">
 <ANCHOR id="GstCddaBaseSrc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc">
 <ANCHOR id="gst-plugins-base-libs-gstmixer.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.details">
 <ANCHOR id="GstMixer-struct" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GstMixer-struct">
 <ANCHOR id="GstMixerType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GstMixerType">
+<ANCHOR id="GST-MIXER-HARDWARE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-HARDWARE:CAPS">
+<ANCHOR id="GST-MIXER-SOFTWARE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-SOFTWARE:CAPS">
 <ANCHOR id="GstMixerFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GstMixerFlags">
 <ANCHOR id="GST-MIXER-FLAG-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-NONE:CAPS">
 <ANCHOR id="GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS">
 <ANCHOR id="GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS">
 <ANCHOR id="GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS">
 <ANCHOR id="GstNavigationQueryType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType">
+<ANCHOR id="GST-NAVIGATION-QUERY-INVALID:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS">
+<ANCHOR id="GST-NAVIGATION-QUERY-COMMANDS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS">
+<ANCHOR id="GST-NAVIGATION-QUERY-ANGLES:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS">
 <ANCHOR id="gst-navigation-send-event" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event">
 <ANCHOR id="gst-navigation-send-key-event" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event">
 <ANCHOR id="gst-navigation-send-mouse-event" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event">
 <ANCHOR id="gst-plugins-base-libs-gstriff.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstriff.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.description">
 <ANCHOR id="gst-plugins-base-libs-gstriff.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.details">
-<ANCHOR id="GST-RIFF-00:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS">
-<ANCHOR id="GST-RIFF-0021:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS">
-<ANCHOR id="GST-RIFF-0031:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS">
-<ANCHOR id="GST-RIFF-0032:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS">
-<ANCHOR id="GST-RIFF-00AM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS">
-<ANCHOR id="GST-RIFF-00--:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS">
-<ANCHOR id="GST-RIFF-00db" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00db">
-<ANCHOR id="GST-RIFF-00dc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc">
-<ANCHOR id="GST-RIFF-00dx" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx">
-<ANCHOR id="GST-RIFF-00id" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00id">
-<ANCHOR id="GST-RIFF-00iv" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv">
-<ANCHOR id="GST-RIFF-00pc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc">
-<ANCHOR id="GST-RIFF-00rt" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt">
-<ANCHOR id="GST-RIFF-00vc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc">
-<ANCHOR id="GST-RIFF-00xm" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm">
-<ANCHOR id="GST-RIFF-00xx" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx">
-<ANCHOR id="GST-RIFF-01:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS">
-<ANCHOR id="GST-RIFF-01dc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc">
-<ANCHOR id="GST-RIFF-01pc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc">
-<ANCHOR id="GST-RIFF-01wb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb">
-<ANCHOR id="GST-RIFF-02:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS">
-<ANCHOR id="GST-RIFF-03:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS">
-<ANCHOR id="GST-RIFF-04:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS">
-<ANCHOR id="GST-RIFF-05:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS">
-<ANCHOR id="GST-RIFF-06:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS">
-<ANCHOR id="GST-RIFF-07:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS">
-<ANCHOR id="GST-RIFF-AURA:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS">
-<ANCHOR id="GST-RIFF-BW10:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS">
-<ANCHOR id="GST-RIFF-CCC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS">
-<ANCHOR id="GST-RIFF-CRAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS">
-<ANCHOR id="GST-RIFF-CVID:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS">
-<ANCHOR id="GST-RIFF-CYUV:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS">
-<ANCHOR id="GST-RIFF-DIB:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS">
-<ANCHOR id="GST-RIFF-DISP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS">
-<ANCHOR id="GST-RIFF-DIV3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS">
-<ANCHOR id="GST-RIFF-DMB1:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS">
-<ANCHOR id="GST-RIFF-FCCH-MSVC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS">
-<ANCHOR id="GST-RIFF-FCCH-RLE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS">
-<ANCHOR id="GST-RIFF-FCCH-msvc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc">
-<ANCHOR id="GST-RIFF-FCC-auds" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds">
-<ANCHOR id="GST-RIFF-FCC-iavs" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs">
-<ANCHOR id="GST-RIFF-FCC-pads" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads">
-<ANCHOR id="GST-RIFF-FCC-txts" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts">
-<ANCHOR id="GST-RIFF-FCC-vidc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc">
-<ANCHOR id="GST-RIFF-FCC-vids" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids">
-<ANCHOR id="GST-RIFF-FF00:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS">
-<ANCHOR id="GST-RIFF-H263:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS">
-<ANCHOR id="GST-RIFF-I420:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS">
-<ANCHOR id="GST-RIFF-IDIT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS">
-<ANCHOR id="GST-RIFF-IJPG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IARL:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IART:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICMS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICMT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICOP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICRD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICRP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IDIM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IDPI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IENG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IGNR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IKEY:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ILGT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IMED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS">
-<ANCHOR id="GST-RIFF-INFO-INAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IPLT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IPRD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISBJ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISHP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISRC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISRF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ITCH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS">
-<ANCHOR id="GST-RIFF-ISBJ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS">
-<ANCHOR id="GST-RIFF-ISFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS">
-<ANCHOR id="GST-RIFF-IV31:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS">
-<ANCHOR id="GST-RIFF-IV32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS">
-<ANCHOR id="GST-RIFF-IV41:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS">
-<ANCHOR id="GST-RIFF-IV50:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS">
-<ANCHOR id="GST-RIFF-IYUV:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS">
-<ANCHOR id="GST-RIFF-JPEG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS">
-<ANCHOR id="GST-RIFF-L263:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS">
-<ANCHOR id="GST-RIFF-LIST-AVIX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS">
-<ANCHOR id="GST-RIFF-LIST-INFO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS">
-<ANCHOR id="GST-RIFF-LIST-adtl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl">
-<ANCHOR id="GST-RIFF-LIST-hdrl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl">
-<ANCHOR id="GST-RIFF-LIST-movi" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi">
-<ANCHOR id="GST-RIFF-LIST-odml" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml">
-<ANCHOR id="GST-RIFF-LIST-strl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl">
-<ANCHOR id="GST-RIFF-M263:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS">
-<ANCHOR id="GST-RIFF-MJPG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS">
-<ANCHOR id="GST-RIFF-MPIX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS">
-<ANCHOR id="GST-RIFF-MVI1:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS">
-<ANCHOR id="GST-RIFF-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS">
-<ANCHOR id="GST-RIFF-PACK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS">
-<ANCHOR id="GST-RIFF-Q1-0:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS">
-<ANCHOR id="GST-RIFF-RAW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS">
-<ANCHOR id="GST-RIFF-RGB:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS">
-<ANCHOR id="GST-RIFF-RIFF-AVI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS">
-<ANCHOR id="GST-RIFF-RIFF-CDXA:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS">
-<ANCHOR id="GST-RIFF-RIFF-WAVE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS">
-<ANCHOR id="GST-RIFF-RLE4:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS">
-<ANCHOR id="GST-RIFF-RLE8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS">
-<ANCHOR id="GST-RIFF-RT21:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS">
-<ANCHOR id="GST-RIFF-SFMC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS">
-<ANCHOR id="GST-RIFF-TAG-acid" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid">
-<ANCHOR id="GST-RIFF-TAG-AVF0:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS">
-<ANCHOR id="GST-RIFF-TAG-BEXT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS">
-<ANCHOR id="GST-RIFF-TAG-JUNK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS">
-<ANCHOR id="GST-RIFF-TAG-JUNQ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS">
-<ANCHOR id="GST-RIFF-TAG-LIST:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS">
-<ANCHOR id="GST-RIFF-TAG-RIFF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS">
-<ANCHOR id="GST-RIFF-TAG-RIFX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS">
-<ANCHOR id="GST-RIFF-TAG-avih" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih">
-<ANCHOR id="GST-RIFF-TAG-bext" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext">
-<ANCHOR id="GST-RIFF-TAG-cue" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue">
-<ANCHOR id="GST-RIFF-TAG-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data">
-<ANCHOR id="GST-RIFF-TAG-dmlh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh">
-<ANCHOR id="GST-RIFF-TAG-fact" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact">
-<ANCHOR id="GST-RIFF-TAG-fmt" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt">
-<ANCHOR id="GST-RIFF-TAG-idx1" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1">
-<ANCHOR id="GST-RIFF-TAG-plst" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst">
-<ANCHOR id="GST-RIFF-TAG-strd" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd">
-<ANCHOR id="GST-RIFF-TAG-strf" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf">
-<ANCHOR id="GST-RIFF-TAG-strh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh">
-<ANCHOR id="GST-RIFF-TAG-strn" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn">
-<ANCHOR id="GST-RIFF-TAG-vedt" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt">
-<ANCHOR id="GST-RIFF-TRAN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS">
-<ANCHOR id="GST-RIFF-ULTI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS">
-<ANCHOR id="GST-RIFF-V422:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS">
-<ANCHOR id="GST-RIFF-VDOW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS">
-<ANCHOR id="GST-RIFF-VIXL:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS">
-<ANCHOR id="GST-RIFF-VSSH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS">
-<ANCHOR id="GST-RIFF-VYUY:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS">
-<ANCHOR id="GST-RIFF-WHAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS">
-<ANCHOR id="GST-RIFF-WINX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS">
-<ANCHOR id="GST-RIFF-WPY2:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS">
-<ANCHOR id="GST-RIFF-XMPG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS">
-<ANCHOR id="GST-RIFF-Y41P:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS">
-<ANCHOR id="GST-RIFF-YUV8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS">
-<ANCHOR id="GST-RIFF-YUV9:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS">
-<ANCHOR id="GST-RIFF-YUY2:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS">
-<ANCHOR id="GST-RIFF-YV12:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS">
-<ANCHOR id="GST-RIFF-YVU9:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS">
-<ANCHOR id="GST-RIFF-azpr" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr">
-<ANCHOR id="GST-RIFF-bw10" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10">
-<ANCHOR id="GST-RIFF-ccc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc">
-<ANCHOR id="GST-RIFF-cram" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-cram">
-<ANCHOR id="GST-RIFF-cvid" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid">
-<ANCHOR id="GST-RIFF-cyuv" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv">
-<ANCHOR id="GST-RIFF-dmb1" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1">
-<ANCHOR id="GST-RIFF-h263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-h263">
-<ANCHOR id="GST-RIFF-i263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-i263">
-<ANCHOR id="GST-RIFF-i420" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-i420">
-<ANCHOR id="GST-RIFF-iv31" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31">
-<ANCHOR id="GST-RIFF-iv32" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32">
-<ANCHOR id="GST-RIFF-iv41" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41">
-<ANCHOR id="GST-RIFF-iv50" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50">
-<ANCHOR id="GST-RIFF-iyuv" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv">
-<ANCHOR id="GST-RIFF-jpeg" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg">
-<ANCHOR id="GST-RIFF-m263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-m263">
-<ANCHOR id="GST-RIFF-mJPG" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG">
-<ANCHOR id="GST-RIFF-mvi1" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1">
-<ANCHOR id="GST-RIFF-none" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-none">
-<ANCHOR id="GST-RIFF-pack" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-pack">
-<ANCHOR id="GST-RIFF-rec" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rec">
-<ANCHOR id="GST-RIFF-rgb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb">
-<ANCHOR id="GST-RIFF-rle4" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4">
-<ANCHOR id="GST-RIFF-rle8" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8">
-<ANCHOR id="GST-RIFF-rpza" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza">
-<ANCHOR id="GST-RIFF-rt21" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21">
-<ANCHOR id="GST-RIFF-tran" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-tran">
-<ANCHOR id="GST-RIFF-ulti" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti">
-<ANCHOR id="GST-RIFF-v422" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-v422">
-<ANCHOR id="GST-RIFF-vixl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl">
-<ANCHOR id="GST-RIFF-vyuy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy">
-<ANCHOR id="GST-RIFF-wham" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-wham">
-<ANCHOR id="GST-RIFF-x263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-x263">
-<ANCHOR id="GST-RIFF-xmpg" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg">
-<ANCHOR id="GST-RIFF-y41p" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p">
-<ANCHOR id="GST-RIFF-yuy2" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2">
-<ANCHOR id="GST-RIFF-yv12" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12">
-<ANCHOR id="gst-riff-acid" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-acid">
 <ANCHOR id="gst-riff-create-audio-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps">
 <ANCHOR id="gst-riff-create-audio-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps">
 <ANCHOR id="gst-riff-create-iavs-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps">
 <ANCHOR id="gst-riff-create-iavs-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps">
 <ANCHOR id="gst-riff-create-video-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps">
 <ANCHOR id="gst-riff-create-video-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps">
-<ANCHOR id="gst-riff-dmlh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-dmlh">
-<ANCHOR id="gst-riff-index-entry" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-index-entry">
 <ANCHOR id="gst-riff-init" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-init">
 <ANCHOR id="gst-riff-parse-chunk" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk">
 <ANCHOR id="gst-riff-parse-file-header" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header">
 <ANCHOR id="gst-riff-parse-strf-vids" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids">
 <ANCHOR id="gst-riff-parse-strh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh">
 <ANCHOR id="gst-riff-read-chunk" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk">
-<ANCHOR id="gst-riff-strf-auds" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds">
-<ANCHOR id="gst-riff-strf-iavs" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs">
-<ANCHOR id="gst-riff-strf-vids" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids">
-<ANCHOR id="gst-riff-strh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strh">
 <ANCHOR id="gst-plugins-base-libs-gstbasertpaudiopayload" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbasertpaudiopayload.html">
 <ANCHOR id="gst-plugins-base-libs-gstbasertpaudiopayload.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-plugins-base-libs-gstbasertpaudiopayload.synopsis">
 <ANCHOR id="GstBaseRTPAudioPayload" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload">
 <ANCHOR id="GstRTCPFBType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType">
 <ANCHOR id="GST-RTCP-FB-TYPE-INVALID:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-FB-TYPE-INVALID:CAPS">
 <ANCHOR id="GST-RTCP-RTPFB-TYPE-NACK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-NACK:CAPS">
+<ANCHOR id="GST-RTCP-RTPFB-TYPE-TMMBR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBR:CAPS">
+<ANCHOR id="GST-RTCP-RTPFB-TYPE-TMMBN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBN:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-PLI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-PLI:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-SLI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-SLI:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-RPSI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-RPSI:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-AFB:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-AFB:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-FIR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-FIR:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-TSTR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTR:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-TSTN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTN:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-VBCN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-VBCN:CAPS">
 <ANCHOR id="gst-rtcp-buffer-new-take-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data">
 <ANCHOR id="gst-rtcp-buffer-new-copy-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data">
 <ANCHOR id="gst-rtcp-buffer-validate-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.details">
 <ANCHOR id="GST-RTSP-CHECK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS">
+<ANCHOR id="GST-RTSP-AUTH-MAX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS">
 <ANCHOR id="GstRTSPEvent" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent">
 <ANCHOR id="GST-RTSP-EV-READ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EV-READ:CAPS">
 <ANCHOR id="GST-RTSP-EV-WRITE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EV-WRITE:CAPS">
 <ANCHOR id="GST-RTSP-AUTH-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-NONE:CAPS">
 <ANCHOR id="GST-RTSP-AUTH-BASIC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-BASIC:CAPS">
 <ANCHOR id="GST-RTSP-AUTH-DIGEST:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-DIGEST:CAPS">
-<ANCHOR id="GST-RTSP-AUTH-MAX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS">
 <ANCHOR id="GstRTSPHeaderField" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField">
 <ANCHOR id="GstRTSPStatusCode" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode">
 <ANCHOR id="gst-rtsp-strresult" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult">
 <ANCHOR id="GST-TAG-CAPTURING-FLASH-MODE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS">
 <ANCHOR id="GST-TAG-CAPTURING-METERING-MODE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS">
 <ANCHOR id="GST-TAG-CAPTURING-SOURCE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS">
+<ANCHOR id="GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS">
 <ANCHOR id="GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS">
 <ANCHOR id="GST-TAG-IMAGE-VERTICAL-PPI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS">
+<ANCHOR id="GST-TAG-ID3V2-HEADER-SIZE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS">
 <ANCHOR id="gst-tag-register-musicbrainz-tags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags">
 <ANCHOR id="gst-tag-freeform-string-to-utf8" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8">
 <ANCHOR id="gst-tag-parse-extended-comment" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment">
 <ANCHOR id="gst-tag-from-id3-user-tag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag">
 <ANCHOR id="gst-tag-to-id3-tag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag">
 <ANCHOR id="gst-tag-list-add-id3-image" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image">
+<ANCHOR id="gst-tag-get-id3v2-tag-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size">
+<ANCHOR id="gst-tag-list-from-id3v2-tag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag">
 <ANCHOR id="gst-plugins-base-libs-gsttagid3.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.description">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.details">
+<ANCHOR id="gst-tag-list-to-exif-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer">
+<ANCHOR id="gst-tag-list-to-exif-buffer-with-tiff-header" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header">
+<ANCHOR id="gst-tag-list-from-exif-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer">
+<ANCHOR id="gst-tag-list-from-exif-buffer-with-tiff-header" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.details">
 <ANCHOR id="gst-tag-list-from-xmp-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer">
 <ANCHOR id="gst-tag-list-to-xmp-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer">
+<ANCHOR id="gst-tag-list-to-xmp-buffer-full" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full">
+<ANCHOR id="gst-tag-xmp-list-schemas" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.description">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.details">
+<ANCHOR id="gst-tag-xmp-writer-add-all-schemas" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas">
+<ANCHOR id="gst-tag-xmp-writer-add-schema" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema">
+<ANCHOR id="gst-tag-xmp-writer-has-schema" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema">
+<ANCHOR id="gst-tag-xmp-writer-remove-schema" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema">
+<ANCHOR id="gst-tag-xmp-writer-remove-all-schemas" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas">
+<ANCHOR id="gst-tag-xmp-writer-tag-list-to-xmp-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.description">
 <ANCHOR id="GST-TAG-DEMUX-RESULT-AGAIN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-AGAIN:CAPS">
 <ANCHOR id="GST-TAG-DEMUX-RESULT-OK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-OK:CAPS">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.description">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.details">
+<ANCHOR id="GstTagMux" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#GstTagMux">
+<ANCHOR id="GstTagMuxClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.description">
 <ANCHOR id="gst-tag-get-language-code-iso-639-2B" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B">
 <ANCHOR id="gst-tag-get-language-code-iso-639-2T" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.description">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.details">
+<ANCHOR id="GstTagLicenseFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-SHARING:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-SHARING:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS">
+<ANCHOR id="gst-tag-get-license-flags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags">
+<ANCHOR id="gst-tag-get-license-nick" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick">
+<ANCHOR id="gst-tag-get-license-title" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title">
+<ANCHOR id="gst-tag-get-license-description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description">
+<ANCHOR id="gst-tag-get-license-jurisdiction" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction">
+<ANCHOR id="gst-tag-get-license-version" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version">
+<ANCHOR id="gst-tag-get-licenses" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.details">
 <ANCHOR id="gst-pb-utils-init" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-MINOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-MICRO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-NANO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS">
-<ANCHOR id="GST-CHECK-PLUGINS-BASE-VERSION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS">
-<ANCHOR id="gst-plugins-base-version" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version">
-<ANCHOR id="gst-plugins-base-version-string" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.description">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.details">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-MINOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-MICRO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-NANO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS">
+<ANCHOR id="GST-CHECK-PLUGINS-BASE-VERSION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS">
+<ANCHOR id="gst-plugins-base-version" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version">
+<ANCHOR id="gst-plugins-base-version-string" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.description">
 <ANCHOR id="gst-codec-utils-h264-get-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile">
 <ANCHOR id="gst-codec-utils-h264-get-level" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level">
 <ANCHOR id="gst-codec-utils-h264-caps-set-level-and-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile">
+<ANCHOR id="gst-codec-utils-h264-get-level-idc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc">
 <ANCHOR id="gst-codec-utils-mpeg4video-get-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile">
 <ANCHOR id="gst-codec-utils-mpeg4video-get-level" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level">
 <ANCHOR id="gst-codec-utils-mpeg4video-caps-set-level-and-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile">
 <ANCHOR id="GstDiscovererContainerInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo">
 <ANCHOR id="GstDiscovererAudioInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo">
 <ANCHOR id="GstDiscovererVideoInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo">
+<ANCHOR id="GstDiscovererSubtitleInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo">
 <ANCHOR id="gst-discoverer-stream-info-get-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps">
 <ANCHOR id="gst-discoverer-stream-info-get-misc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc">
 <ANCHOR id="gst-discoverer-stream-info-get-next" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next">
 <ANCHOR id="gst-discoverer-info-get-audio-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams">
 <ANCHOR id="gst-discoverer-info-get-container-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams">
 <ANCHOR id="gst-discoverer-info-get-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams">
+<ANCHOR id="gst-discoverer-info-get-subtitle-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams">
 <ANCHOR id="gst-discoverer-info-get-video-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams">
 <ANCHOR id="gst-discoverer-audio-info-get-bitrate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate">
 <ANCHOR id="gst-discoverer-audio-info-get-channels" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels">
 <ANCHOR id="gst-discoverer-audio-info-get-depth" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth">
+<ANCHOR id="gst-discoverer-audio-info-get-language" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language">
 <ANCHOR id="gst-discoverer-audio-info-get-max-bitrate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate">
 <ANCHOR id="gst-discoverer-audio-info-get-sample-rate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate">
 <ANCHOR id="gst-discoverer-container-info-get-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams">
+<ANCHOR id="gst-discoverer-subtitle-info-get-language" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language">
 <ANCHOR id="gst-discoverer-video-info-get-bitrate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate">
 <ANCHOR id="gst-discoverer-video-info-get-depth" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth">
 <ANCHOR id="gst-discoverer-video-info-get-framerate-denom" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom">
 <ANCHOR id="gst-encoding-profile-unref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref">
 <ANCHOR id="gst-encoding-profile-ref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref">
 <ANCHOR id="gst-encoding-profile-find" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find">
+<ANCHOR id="gst-encoding-profile-from-discoverer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer">
 <ANCHOR id="gst-encoding-profile-get-name" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name">
 <ANCHOR id="gst-encoding-profile-get-description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description">
 <ANCHOR id="gst-encoding-profile-get-format" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format">
 <ANCHOR id="GST-VIDEO-CAPS-RGB8-PALETTED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS">
 <ANCHOR id="GST-VIDEO-CAPS-GRAY8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS">
 <ANCHOR id="GST-VIDEO-CAPS-GRAY16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS">
+<ANCHOR id="GST-VIDEO-CAPS-ARGB-64:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS">
+<ANCHOR id="GST-VIDEO-CAPS-r210" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-16-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-16-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-16-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS">
 <ANCHOR id="GST-VIDEO-FPS-RANGE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS">
 <ANCHOR id="GST-VIDEO-GREEN-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS">
 <ANCHOR id="GST-VIDEO-GREEN-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS">
 <ANCHOR id="GST-VIDEO-BUFFER-TFF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS">
 <ANCHOR id="GST-VIDEO-BUFFER-RFF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS">
 <ANCHOR id="GST-VIDEO-BUFFER-ONEFIELD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS">
+<ANCHOR id="GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS">
 <ANCHOR id="GstVideoFormat" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GstVideoFormat">
 <ANCHOR id="GST-VIDEO-FORMAT-UNKNOWN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS">
 <ANCHOR id="GST-VIDEO-FORMAT-I420:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I420:CAPS">
 <ANCHOR id="gst-video-calculate-display-ratio" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio">
 <ANCHOR id="gst-video-frame-rate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-frame-rate">
 <ANCHOR id="gst-video-get-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-get-size">
+<ANCHOR id="gst-video-get-size-from-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps">
 <ANCHOR id="gst-video-format-convert" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-convert">
 <ANCHOR id="gst-video-format-new-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps">
 <ANCHOR id="gst-video-format-new-caps-interlaced" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps-interlaced">
+<ANCHOR id="gst-video-format-new-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps">
 <ANCHOR id="gst-video-format-get-component-height" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height">
 <ANCHOR id="gst-video-format-get-component-offset" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-offset">
 <ANCHOR id="gst-video-format-get-component-width" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-width">
+<ANCHOR id="gst-video-format-get-component-depth" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth">
 <ANCHOR id="gst-video-format-get-pixel-stride" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride">
 <ANCHOR id="gst-video-format-get-row-stride" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride">
 <ANCHOR id="gst-video-format-get-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-size">
 <ANCHOR id="gst-video-convert-frame-async" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame-async">
 <ANCHOR id="gst-video-event-new-still-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame">
 <ANCHOR id="gst-video-event-parse-still-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame">
+<ANCHOR id="gst-video-event-new-upstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit">
+<ANCHOR id="gst-video-event-new-downstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit">
+<ANCHOR id="gst-video-event-is-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit">
+<ANCHOR id="gst-video-event-parse-upstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit">
+<ANCHOR id="gst-video-event-parse-downstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.description">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.details">
+<ANCHOR id="GstVideoOverlayComposition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition">
+<ANCHOR id="GstVideoOverlayCompositionClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass">
+<ANCHOR id="gst-video-overlay-composition-new" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new">
+<ANCHOR id="gst-video-overlay-composition-ref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref">
+<ANCHOR id="gst-video-overlay-composition-unref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref">
+<ANCHOR id="gst-video-overlay-composition-add-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle">
+<ANCHOR id="gst-video-overlay-composition-n-rectangles" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles">
+<ANCHOR id="gst-video-overlay-composition-get-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle">
+<ANCHOR id="gst-video-overlay-composition-get-seqnum" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum">
+<ANCHOR id="gst-video-overlay-composition-copy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy">
+<ANCHOR id="gst-video-overlay-composition-make-writable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable">
+<ANCHOR id="gst-video-overlay-composition-blend" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend">
+<ANCHOR id="gst-video-buffer-get-overlay-composition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition">
+<ANCHOR id="gst-video-buffer-set-overlay-composition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition">
+<ANCHOR id="GstVideoOverlayFormatFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags">
+<ANCHOR id="GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS">
+<ANCHOR id="GstVideoOverlayRectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle">
+<ANCHOR id="GstVideoOverlayRectangleClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass">
+<ANCHOR id="gst-video-overlay-rectangle-new-argb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb">
+<ANCHOR id="gst-video-overlay-rectangle-ref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref">
+<ANCHOR id="gst-video-overlay-rectangle-unref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref">
+<ANCHOR id="gst-video-overlay-rectangle-get-pixels-argb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb">
+<ANCHOR id="gst-video-overlay-rectangle-get-pixels-unscaled-argb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb">
+<ANCHOR id="gst-video-overlay-rectangle-get-render-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle">
+<ANCHOR id="gst-video-overlay-rectangle-get-seqnum" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum">
+<ANCHOR id="gst-video-overlay-rectangle-set-render-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle">
+<ANCHOR id="gst-video-overlay-rectangle-copy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy">
 <ANCHOR id="gst-plugins-base-libs-gstvideofilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideofilter.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideofilter.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideofilter.html#gst-plugins-base-libs-gstvideofilter.synopsis">
 <ANCHOR id="GstVideoFilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">
 <ANCHOR id="gst-plugins-base-libs-gstvideosink.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideosink.html#gst-plugins-base-libs-gstvideosink.property-details">
 <ANCHOR id="GstVideoSink--show-preroll-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame">
 <ANCHOR id="annotation-glossterm-out" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-allow-none" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-allow-none">
 <ANCHOR id="annotation-glossterm-scope async" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-scope async">
+<ANCHOR id="annotation-glossterm-allow-none" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-allow-none">
 <ANCHOR id="annotation-glossterm-closure" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-closure">
 <ANCHOR id="annotation-glossterm-transfer none" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-transfer none">
 <ANCHOR id="annotation-glossterm-element-type" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-element-type">
index c987b85..ff418ec 100644 (file)
@@ -13,33 +13,13 @@ FORMATS=html
 html: html-build.stamp
 include $(top_srcdir)/common/upload-doc.mak
 
-# generated basefiles
-#basefiles = \
-##             $(DOC_MODULE).types \
-#              $(DOC_MODULE)-sections.txt \
-#              $(DOC_MODULE)-docs.sgml
-
-# ugly hack to make -unused.sgml work
-#unused-build.stamp:
-#      BUILDDIR=`pwd` && \
-#      cd $(srcdir)/tmpl && \
-#      ln -sf gstreamer-libs-unused.sgml \
-#              $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
-#      touch unused-build.stamp
-
-# these rules are added to create parallel docs using GST_MAJORMINOR
-#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
-#      cp $< $@
-
-#CLEANFILES = $(basefiles)
-
 # The top-level SGML file. Change it if you want.
 DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
 
-# The directory containing the source code. Relative to $(top_srcdir).
+# The directory containing the source code.
 # gtk-doc will search all .c & .h files beneath here for inline comments
 # documenting functions and macros.
-DOC_SOURCE_DIR = $(top_srcdir)
+DOC_SOURCE_DIR = $(top_srcdir)/gst $(top_srcdir)/ext $(top_srcdir)/sys
 
 # Extra options to supply to gtkdoc-scan.
 SCAN_OPTIONS=
@@ -54,14 +34,8 @@ FIXXREF_OPTIONS=--extra-dir=$(top_builddir)/docs/libs/html \
        --extra-dir=$(datadir)/gtk-doc/html
 
 # Used for dependencies.
-HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.h
-CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.c
-
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
-
-SCANOBJ_DEPS =
+HFILE_GLOB=$(top_srcdir)/gst/*/*.h $(top_srcdir)/ext/*/*.h $(top_srcdir)/sys/*/*.h
+CFILE_GLOB=$(top_srcdir)/gst/*/*.c $(top_srcdir)/ext/*/*.c $(top_srcdir)/sys/*/*.c
 
 # Header files to ignore when scanning.
 IGNORE_HFILES = avcodec.h gstffmpegcodecmap.h dsputil.h arch.h speex_resampler.h speex_resampler_wrapper.h fixed_arm4.h fixed_arm5e.h fixed_bfin.h fixed_debug.h fixed_generic.h resample_sse.h
@@ -139,14 +113,12 @@ extra_files =
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_BASE_CFLAGS) -I$(top_builddir) -I$(top_builddir)/gst-libs
-GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
+GTKDOC_LIBS = $(GST_BASE_LIBS)
 
 GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
 
 # If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES =
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
 
 include $(top_srcdir)/common/gtk-doc-plugins.mak
index edd11cd..e78ad00 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -73,6 +73,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -97,11 +98,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -166,6 +167,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -226,6 +228,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -235,9 +238,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -260,6 +266,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -332,10 +339,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -369,7 +379,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -406,32 +415,13 @@ DOC_SERVER = gstreamer.freedesktop.org
 DOC_BASE = /srv/gstreamer.freedesktop.org/www/data/doc
 DOC_URL = $(DOC_SERVER):$(DOC_BASE)
 
-# generated basefiles
-#basefiles = \
-#              $(DOC_MODULE)-sections.txt \
-#              $(DOC_MODULE)-docs.sgml
-
-# ugly hack to make -unused.sgml work
-#unused-build.stamp:
-#      BUILDDIR=`pwd` && \
-#      cd $(srcdir)/tmpl && \
-#      ln -sf gstreamer-libs-unused.sgml \
-#              $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
-#      touch unused-build.stamp
-
-# these rules are added to create parallel docs using GST_MAJORMINOR
-#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
-#      cp $< $@
-
-#CLEANFILES = $(basefiles)
-
 # The top-level SGML file. Change it if you want.
 DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml
 
-# The directory containing the source code. Relative to $(top_srcdir).
+# The directory containing the source code.
 # gtk-doc will search all .c & .h files beneath here for inline comments
 # documenting functions and macros.
-DOC_SOURCE_DIR = $(top_srcdir)
+DOC_SOURCE_DIR = $(top_srcdir)/gst $(top_srcdir)/ext $(top_srcdir)/sys
 
 # Extra options to supply to gtkdoc-scan.
 SCAN_OPTIONS = 
@@ -447,13 +437,8 @@ FIXXREF_OPTIONS = --extra-dir=$(top_builddir)/docs/libs/html \
 
 
 # Used for dependencies.
-HFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.h
-CFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.c
-
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
-SCANOBJ_DEPS = 
+HFILE_GLOB = $(top_srcdir)/gst/*/*.h $(top_srcdir)/ext/*/*.h $(top_srcdir)/sys/*/*.h
+CFILE_GLOB = $(top_srcdir)/gst/*/*.c $(top_srcdir)/ext/*/*.c $(top_srcdir)/sys/*/*.c
 
 # Header files to ignore when scanning.
 IGNORE_HFILES = avcodec.h gstffmpegcodecmap.h dsputil.h arch.h speex_resampler.h speex_resampler_wrapper.h fixed_arm4.h fixed_arm5e.h fixed_bfin.h fixed_debug.h fixed_generic.h resample_sse.h
@@ -531,14 +516,12 @@ extra_files =
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_BASE_CFLAGS) -I$(top_builddir) -I$(top_builddir)/gst-libs
-GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
+GTKDOC_LIBS = $(GST_BASE_LIBS)
 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
 
 # If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES = 
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
 
 # We set GPATH here; this gives us semantics for GNU make
 # which are more like other make's VPATH, when it comes to
@@ -579,12 +562,12 @@ DOC_STAMPS = \
 
 # files generated/updated by gtkdoc-scangobj
 SCANOBJ_FILES = \
-       $(DOC_MODULE).signals           \
+       $(DOC_MODULE).args              \
        $(DOC_MODULE).hierarchy         \
        $(DOC_MODULE).interfaces        \
        $(DOC_MODULE).prerequisites     \
-       $(DOC_MODULE).types             \
-       $(DOC_MODULE).args
+       $(DOC_MODULE).signals           \
+       $(DOC_MODULE).types
 
 SCANOBJ_FILES_O = \
        .libs/$(DOC_MODULE)-scan.o
@@ -602,12 +585,8 @@ REPORT_FILES = \
        $(DOC_MODULE)-undeclared.txt \
        $(DOC_MODULE)-unused.txt
 
-
-# FC3 seems to need -scan.c to be part of CLEANFILES for distcheck
-# no idea why FC4 can do without
 CLEANFILES = \
        $(SCANOBJ_FILES_O) \
-       $(DOC_MODULE)-scan.c \
        $(REPORT_FILES) \
        $(DOC_STAMPS) \
        inspect-registry.xml
@@ -654,6 +633,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -723,10 +703,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -887,32 +872,34 @@ update:
 
 @ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp
 
-# update the element and plugin XML descriptions; store in inspect/
-@ENABLE_GTK_DOC_TRUE@inspect:
-@ENABLE_GTK_DOC_TRUE@  @-mkdir -p $(INSPECT_DIR)
-
 #### scan gobjects; done by documentation maintainer ####
 @ENABLE_GTK_DOC_TRUE@scanobj-update:
 @ENABLE_GTK_DOC_TRUE@  -rm scanobj-build.stamp
 @ENABLE_GTK_DOC_TRUE@  $(MAKE) scanobj-build.stamp
 
-# TODO: finish elite script that updates the output files of this step
-# instead of rewriting them, so that multiple maintainers can generate
-# a collective set of args and signals
-@ENABLE_GTK_DOC_TRUE@scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) inspect
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Scanning GObjects ***'
+# gstdoc-scanobj produces 5 output files (.new)
+# scangobj-merge.py merges them into the file which we commit later
+# TODO: also merge the hierarchy
+@ENABLE_GTK_DOC_TRUE@scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles)
+@ENABLE_GTK_DOC_TRUE@  @echo "  DOC   Introspecting gobjects"
 @ENABLE_GTK_DOC_TRUE@  @if test x"$(srcdir)" != x. ; then                              \
 @ENABLE_GTK_DOC_TRUE@      for f in $(SCANOBJ_FILES) $(SCAN_FILES);                    \
 @ENABLE_GTK_DOC_TRUE@      do                                                          \
 @ENABLE_GTK_DOC_TRUE@          if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi;      \
 @ENABLE_GTK_DOC_TRUE@      done;                                                       \
 @ENABLE_GTK_DOC_TRUE@  fi;                                                             \
+@ENABLE_GTK_DOC_TRUE@  mkdir -p $(INSPECT_DIR); \
+@ENABLE_GTK_DOC_TRUE@  scanobj_options=""; \
+@ENABLE_GTK_DOC_TRUE@  if test "x$(V)" = "x1"; then \
+@ENABLE_GTK_DOC_TRUE@      scanobj_options="--verbose"; \
+@ENABLE_GTK_DOC_TRUE@  fi; \
 @ENABLE_GTK_DOC_TRUE@  $(INSPECT_ENVIRONMENT)                                  \
 @ENABLE_GTK_DOC_TRUE@  CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"                             \
 @ENABLE_GTK_DOC_TRUE@  CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS) $(WARNING_CFLAGS)"   \
 @ENABLE_GTK_DOC_TRUE@  LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)"                             \
-@ENABLE_GTK_DOC_TRUE@  $(GST_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)"       \
+@ENABLE_GTK_DOC_TRUE@  $(GST_DOC_SCANOBJ) $$scanobj_options --type-init-func="gst_init(NULL,NULL)"     \
 @ENABLE_GTK_DOC_TRUE@      --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) &&          \
+@ENABLE_GTK_DOC_TRUE@      echo "  DOC   Merging introspection data" && \
 @ENABLE_GTK_DOC_TRUE@      $(PYTHON)                                           \
 @ENABLE_GTK_DOC_TRUE@      $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE);       \
 @ENABLE_GTK_DOC_TRUE@  if test x"$(srcdir)" != x. ; then                               \
@@ -928,91 +915,102 @@ update:
 
 ### scan headers; done on every build ###
 @ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Scanning header files ***'
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Scanning header files'
+@ENABLE_GTK_DOC_TRUE@  @if test x"$(srcdir)" != x. ; then                              \
+@ENABLE_GTK_DOC_TRUE@      for f in $(SCANOBJ_FILES) $(SCAN_FILES);                    \
+@ENABLE_GTK_DOC_TRUE@      do                                                          \
+@ENABLE_GTK_DOC_TRUE@          if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi;      \
+@ENABLE_GTK_DOC_TRUE@      done;                                                       \
+@ENABLE_GTK_DOC_TRUE@  fi
+@ENABLE_GTK_DOC_TRUE@  @_source_dir='' ;                                               \
+@ENABLE_GTK_DOC_TRUE@  for i in $(DOC_SOURCE_DIR) ; do                                 \
+@ENABLE_GTK_DOC_TRUE@      _source_dir="$${_source_dir} --source-dir=$$i" ;            \
+@ENABLE_GTK_DOC_TRUE@  done ;                                                          \
 @ENABLE_GTK_DOC_TRUE@  gtkdoc-scan                                                     \
 @ENABLE_GTK_DOC_TRUE@      $(SCAN_OPTIONS) $(EXTRA_HFILES)                             \
 @ENABLE_GTK_DOC_TRUE@      --module=$(DOC_MODULE)                                      \
-@ENABLE_GTK_DOC_TRUE@      --source-dir=$(DOC_SOURCE_DIR)                              \
+@ENABLE_GTK_DOC_TRUE@      $${_source_dir}                                             \
 @ENABLE_GTK_DOC_TRUE@      --ignore-headers="$(IGNORE_HFILES)";                        \
 @ENABLE_GTK_DOC_TRUE@  touch scan-build.stamp
 
 #### update templates; done on every build ####
 
-### FIXME: make this error out again when docs are fixed for 0.X
 # in a non-srcdir build, we need to copy files from the previous step
 # and the files from previous runs of this step
 @ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES)
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Rebuilding template files ***'
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Rebuilding template files'
 @ENABLE_GTK_DOC_TRUE@  @if test x"$(srcdir)" != x. ; then                              \
 @ENABLE_GTK_DOC_TRUE@      for f in $(SCANOBJ_FILES) $(SCAN_FILES);                    \
 @ENABLE_GTK_DOC_TRUE@      do                                                          \
 @ENABLE_GTK_DOC_TRUE@          if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi;      \
 @ENABLE_GTK_DOC_TRUE@      done;                                                       \
 @ENABLE_GTK_DOC_TRUE@  fi
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log
-@ENABLE_GTK_DOC_TRUE@  $(PYTHON) \
+@ENABLE_GTK_DOC_TRUE@  @gtkdoc-mktmpl --module=$(DOC_MODULE)
+@ENABLE_GTK_DOC_TRUE@  @$(PYTHON) \
 @ENABLE_GTK_DOC_TRUE@          $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl
-@ENABLE_GTK_DOC_TRUE@  @rm -f tmpl-build.log
-@ENABLE_GTK_DOC_TRUE@  touch tmpl-build.stamp
+@ENABLE_GTK_DOC_TRUE@  @touch tmpl-build.stamp
 
 @ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp
 @ENABLE_GTK_DOC_TRUE@  @true
 
-#### build xml; done on every build ####
+#### xml ####
 
-### FIXME: make this error out again when docs are fixed for 0.9
 @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files)
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Building XML ***'
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Building XML'
 @ENABLE_GTK_DOC_TRUE@  @-mkdir -p xml
 @ENABLE_GTK_DOC_TRUE@  @for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \
 @ENABLE_GTK_DOC_TRUE@      xsltproc --stringparam module $(MODULE) \
 @ENABLE_GTK_DOC_TRUE@          $(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 @ENABLE_GTK_DOC_TRUE@  @for f in $(EXAMPLE_CFILES); do \
 @ENABLE_GTK_DOC_TRUE@          $(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-mkdb \
+@ENABLE_GTK_DOC_TRUE@  @gtkdoc-mkdb \
 @ENABLE_GTK_DOC_TRUE@          --module=$(DOC_MODULE) \
 @ENABLE_GTK_DOC_TRUE@          --source-dir=$(DOC_SOURCE_DIR) \
 @ENABLE_GTK_DOC_TRUE@           --expand-content-files="$(expand_content_files)" \
 @ENABLE_GTK_DOC_TRUE@          --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
 @ENABLE_GTK_DOC_TRUE@          --output-format=xml \
 @ENABLE_GTK_DOC_TRUE@          --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \
-@ENABLE_GTK_DOC_TRUE@          $(MKDB_OPTIONS) \
-@ENABLE_GTK_DOC_TRUE@          | tee sgml-build.log
-@ENABLE_GTK_DOC_TRUE@  @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi
-@ENABLE_GTK_DOC_TRUE@  cp ../version.entities xml
-@ENABLE_GTK_DOC_TRUE@  rm sgml-build.log
-@ENABLE_GTK_DOC_TRUE@  touch sgml-build.stamp
+@ENABLE_GTK_DOC_TRUE@          $(MKDB_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@  @cp ../version.entities xml
+@ENABLE_GTK_DOC_TRUE@  @touch sgml-build.stamp
 
 @ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp
 @ENABLE_GTK_DOC_TRUE@  @true
 
-#### build html; done on every step ####
+#### html ####
 
 @ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-@ENABLE_GTK_DOC_TRUE@  @echo '*** Building HTML ***'
-@ENABLE_GTK_DOC_TRUE@  if test -d html; then rm -rf html; fi
-@ENABLE_GTK_DOC_TRUE@  mkdir html
-@ENABLE_GTK_DOC_TRUE@  cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Building HTML'
+@ENABLE_GTK_DOC_TRUE@  @rm -rf html
+@ENABLE_GTK_DOC_TRUE@  @mkdir html
+@ENABLE_GTK_DOC_TRUE@  @cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html
 @ENABLE_GTK_DOC_TRUE@  @for f in $(content_files); do cp $(srcdir)/$$f html; done
-@ENABLE_GTK_DOC_TRUE@  cp -pr xml html
-@ENABLE_GTK_DOC_TRUE@  cp ../version.entities html
-@ENABLE_GTK_DOC_TRUE@  cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
-@ENABLE_GTK_DOC_TRUE@  mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@  $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@  rm -f html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@  rm -f html/$(DOC_MAIN_SGML_FILE)
-@ENABLE_GTK_DOC_TRUE@  rm -rf html/xml
-@ENABLE_GTK_DOC_TRUE@  rm -f html/version.entities
-@ENABLE_GTK_DOC_TRUE@  test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \
+@ENABLE_GTK_DOC_TRUE@  @cp -pr xml html
+@ENABLE_GTK_DOC_TRUE@  @cp ../version.entities html
+@ENABLE_GTK_DOC_TRUE@  @mkhtml_options=""; \
+@ENABLE_GTK_DOC_TRUE@  gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+@ENABLE_GTK_DOC_TRUE@  if test "$(?)" = "0"; then \
+@ENABLE_GTK_DOC_TRUE@    if test "x$(V)" = "x1"; then \
+@ENABLE_GTK_DOC_TRUE@      mkhtml_options="$$mkhtml_options --verbose"; \
+@ENABLE_GTK_DOC_TRUE@    fi; \
+@ENABLE_GTK_DOC_TRUE@  fi; \
+@ENABLE_GTK_DOC_TRUE@  cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
+@ENABLE_GTK_DOC_TRUE@  @mv html/index.sgml html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@  @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+@ENABLE_GTK_DOC_TRUE@  @rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@  @rm -f html/$(DOC_MAIN_SGML_FILE)
+@ENABLE_GTK_DOC_TRUE@  @rm -rf html/xml
+@ENABLE_GTK_DOC_TRUE@  @rm -f html/version.entities
+@ENABLE_GTK_DOC_TRUE@  @test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \
 @ENABLE_GTK_DOC_TRUE@      if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done
-@ENABLE_GTK_DOC_TRUE@  @echo '-- Fixing Crossreferences'
-@ENABLE_GTK_DOC_TRUE@  gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-@ENABLE_GTK_DOC_TRUE@  touch html-build.stamp
+@ENABLE_GTK_DOC_TRUE@  @echo '  DOC   Fixing cross-references'
+@ENABLE_GTK_DOC_TRUE@  @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+@ENABLE_GTK_DOC_TRUE@  @touch html-build.stamp
 
 @ENABLE_GTK_DOC_TRUE@clean-local-gtkdoc:
-@ENABLE_GTK_DOC_TRUE@  rm -rf xml tmpl html
+@ENABLE_GTK_DOC_TRUE@  @rm -rf xml tmpl html
 # clean files copied for nonsrcdir templates build
-@ENABLE_GTK_DOC_TRUE@  if test x"$(srcdir)" != x. ; then \
+@ENABLE_GTK_DOC_TRUE@  @if test x"$(srcdir)" != x. ; then \
 @ENABLE_GTK_DOC_TRUE@      rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \
 @ENABLE_GTK_DOC_TRUE@          $(MAINTAINER_DOC_STAMPS); \
 @ENABLE_GTK_DOC_TRUE@  fi
@@ -1020,16 +1018,16 @@ update:
 @ENABLE_GTK_DOC_FALSE@clean-local-gtkdoc:
 
 clean-local: clean-local-gtkdoc
-       rm -f *~ *.bak
-       rm -rf .libs
+       @rm -f *~ *.bak
+       @rm -rf .libs
 
 distclean-local:
-       rm -f $(REPORT_FILES) \
+       @rm -f $(REPORT_FILES) \
                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-       rm -rf tmpl/*.sgml.bak
-       rm -f $(DOC_MODULE).hierarchy
-       rm -f *.stamp || true
-       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+       @rm -rf tmpl/*.sgml.bak
+       @rm -f $(DOC_MODULE).hierarchy
+       @rm -f *.stamp || true
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
            rm -f $(DOC_MODULE)-docs.sgml ; \
            rm -f $(DOC_MODULE).types ; \
            rm -f $(DOC_MODULE).interfaces ; \
@@ -1039,7 +1037,7 @@ distclean-local:
            rm -rf tmpl/*.sgml ; \
            rm -rf $(INSPECT_DIR); \
        fi
-       rm -rf *.o
+       @rm -rf *.o
 
 # thomas: make docs parallel installable; devhelp requires majorminor too
 install-data-local:
@@ -1059,9 +1057,7 @@ install-data-local:
              $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
            done; \
          fi; \
-         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \
-         $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \
-           $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \
+         echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
          if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
                    $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
                    $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
diff --git a/docs/plugins/gst-plugins-base-plugins-overrides.txt b/docs/plugins/gst-plugins-base-plugins-overrides.txt
new file mode 100644 (file)
index 0000000..57b5802
--- /dev/null
@@ -0,0 +1,30 @@
+<STRUCT>
+<NAME>GstDecodeBin</NAME>
+struct _GstDecodeBin {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstDecodeBin2</NAME>
+struct _GstDecodeBin2 {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstPlayBaseBin</NAME>
+struct _GstPlayBaseBin {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstPlayBin</NAME>
+struct _GstPlayBin {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstPlayBin2</NAME>
+struct _GstPlayBin2 {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstURIDecodeBin</NAME>
+struct _GstURIDecodeBin {
+};
+</STRUCT>
index 04f3a63..ccd21e9 100644 (file)
@@ -64,7 +64,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Synchronous</NICK>
-<BLURB>When enabled, runs the X display in synchronous mode. (used only for debugging).</BLURB>
+<BLURB>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Synchronous</NICK>
-<BLURB>When enabled, runs the X display in synchronous mode. (used only for debugging).</BLURB>
+<BLURB>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
 <ARG>
 <NAME>GstMultiFdSink::buffers-max</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffers max</NICK>
 <BLURB>max number of buffers to queue for a client (-1 = no limit).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::buffers-soft-max</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffers soft max</NICK>
 <BLURB>Recover client when going over this limit (-1 = no limit).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::buffers-min</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffers min</NICK>
 <BLURB>min number of buffers to queue (-1 = as few as possible).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::bytes-min</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Bytes min</NICK>
 <BLURB>min number of bytes to queue (-1 = as little as possible).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::time-min</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Time min</NICK>
 <BLURB>min number of time to queue (-1 = as little as possible).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::units-max</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Units max</NICK>
 <BLURB>max number of units to queue (-1 = no limit).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::units-soft-max</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Units soft max</NICK>
 <BLURB>Recover client when going over this limit (-1 = no limit).</BLURB>
 <ARG>
 <NAME>GstMultiFdSink::qos-dscp</NAME>
 <TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,63]</RANGE>
+<RANGE>[-1,63]</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>QoS diff srv code point</NICK>
 <BLURB>Quality of Service, differentiated services code point (-1 default).</BLURB>
 <ARG>
 <NAME>GstVorbisEnc::bitrate</NAME>
 <TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,250001]</RANGE>
+<RANGE>[-1,250001]</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Target Bitrate</NICK>
 <BLURB>Attempt to encode at a bitrate averaging this (in bps). This uses the bitrate management engine, and is not recommended for most users. Quality is a better alternative. (-1 == disabled).</BLURB>
 <ARG>
 <NAME>GstVorbisEnc::max-bitrate</NAME>
 <TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,250001]</RANGE>
+<RANGE>[-1,250001]</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Maximum Bitrate</NICK>
 <BLURB>Specify a maximum bitrate (in bps). Useful for streaming applications. (-1 == disabled).</BLURB>
 <ARG>
 <NAME>GstVorbisEnc::min-bitrate</NAME>
 <TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,250001]</RANGE>
+<RANGE>[-1,250001]</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Minimum Bitrate</NICK>
 <BLURB>Specify a minimum bitrate (in bps). Useful for encoding for a fixed-size channel. (-1 == disabled).</BLURB>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>VP3 Compatible</NICK>
+<NICK>Cap Overflow</NICK>
 <BLURB>Enable capping of bit reservoir overflows.</BLURB>
 <DEFAULT>TRUE</DEFAULT>
 </ARG>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>VP3 Compatible</NICK>
+<NICK>Cap Underflow</NICK>
 <BLURB>Enable capping of bit reservoir underflows.</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>VP3 Compatible</NICK>
+<NICK>Drop Frames</NICK>
 <BLURB>Allow or disallow frame dropping.</BLURB>
 <DEFAULT>TRUE</DEFAULT>
 </ARG>
 </ARG>
 
 <ARG>
+<NAME>GstOggMux::max-tolerance</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max time tolerance</NICK>
+<BLURB>Maximum timestamp difference for maintaining perfect granules.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOggMux::skeleton</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Skeleton</NICK>
+<BLURB>Whether to include a Skeleton track.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstAlsaSrc::device</NAME>
 <TYPE>gchar*</TYPE>
 <RANGE></RANGE>
 </ARG>
 
 <ARG>
+<NAME>GstVideoScale::dither</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Dither</NICK>
+<BLURB>Add dither (only used for Lanczos method).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoScale::envelope</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,5]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Envelope</NICK>
+<BLURB>Size of filter envelope.</BLURB>
+<DEFAULT>2</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoScale::sharpen</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,1]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Sharpen</NICK>
+<BLURB>Sharpening.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoScale::sharpness</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,2]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Sharpness</NICK>
+<BLURB>Sharpness of filter.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstVideoRate::drop</NAME>
 <TYPE>guint64</TYPE>
 <RANGE></RANGE>
 </ARG>
 
 <ARG>
+<NAME>GstVideoRate::average-period</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= G_MAXINT64</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Period over which to average</NICK>
+<BLURB>Period over which to average the framerate (in ns) (0 = disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoRate::drop-only</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Only Drop</NICK>
+<BLURB>Only drop frames, no duplicates are produced.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoRate::force-fps</NAME>
+<TYPE>GstFraction</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Force output framerate</NICK>
+<BLURB>Force output framerate (negative means negotiate via caps).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoRate::max-rate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 1</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>maximum framerate</NICK>
+<BLURB>Maximum framerate allowed to pass through (in frames per second, implies drop-only).</BLURB>
+<DEFAULT>2147483647</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstAudioRate::add</NAME>
 <TYPE>guint64</TYPE>
 <RANGE></RANGE>
 </ARG>
 
 <ARG>
+<NAME>GstTextOverlay::outline-color</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text Outline Color</NICK>
+<BLURB>Color to use for outline the text (big-endian ARGB).</BLURB>
+<DEFAULT>4278190080</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTextOverlay::shadow</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>create shadow of text</NICK>
+<BLURB>Whether to create a shadow of the letters under the text.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>CDParanoia::abort-on-skip</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
 <ARG>
 <NAME>GstCdParanoiaSrc::read-speed</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Read speed</NICK>
 <BLURB>Read from device at specified speed.</BLURB>
 <ARG>
 <NAME>GstCdParanoiaSrc::search-overlap</NAME>
 <TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,75]</RANGE>
+<RANGE>[-1,75]</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Search overlap</NICK>
 <BLURB>Force minimum overlap search during verification to n sectors.</BLURB>
 <ARG>
 <NAME>GstCdParanoiaSrc::cache-size</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Cache size</NICK>
 <BLURB>Set CD cache size to n sectors (-1 = auto).</BLURB>
 <ARG>
 <NAME>GstURIDecodeBin::buffer-duration</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffer duration (ns)</NICK>
 <BLURB>Buffer duration when buffering streams (-1 default value).</BLURB>
 <ARG>
 <NAME>GstURIDecodeBin::buffer-size</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffer size (bytes)</NICK>
 <BLURB>Buffer size when buffering streams (-1 default value).</BLURB>
 <ARG>
 <NAME>GstPlayBin2::current-audio</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Current audio</NICK>
 <BLURB>Currently playing audio stream (-1 = auto).</BLURB>
 <ARG>
 <NAME>GstPlayBin2::current-text</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Current Text</NICK>
 <BLURB>Currently playing text stream (-1 = auto).</BLURB>
 <ARG>
 <NAME>GstPlayBin2::current-video</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Current Video</NICK>
 <BLURB>Currently playing video stream (-1 = auto).</BLURB>
 <ARG>
 <NAME>GstPlayBin2::buffer-duration</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffer duration (ns)</NICK>
 <BLURB>Buffer duration when buffering network streams.</BLURB>
 <ARG>
 <NAME>GstPlayBin2::buffer-size</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Buffer size (bytes)</NICK>
 <BLURB>Buffer size when buffering network streams.</BLURB>
 <ARG>
 <NAME>GstAppSrc::max-latency</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Max Latency</NICK>
 <BLURB>The maximum latency (-1 = unlimited).</BLURB>
 <ARG>
 <NAME>GstAppSrc::min-latency</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Min Latency</NICK>
 <BLURB>The minimum latency (-1 = default).</BLURB>
 <ARG>
 <NAME>GstAppSrc::size</NAME>
 <TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Size</NICK>
 <BLURB>The size of the data stream in bytes (-1 if unknown).</BLURB>
 </ARG>
 
 <ARG>
+<NAME>GstPlaySink::audio-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio Sink</NICK>
+<BLURB>the audio output element to use (NULL = default sink).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlaySink::text-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text sink</NICK>
+<BLURB>the text output element to use (NULL = default textoverlay).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlaySink::video-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Video Sink</NICK>
+<BLURB>the video output element to use (NULL = default sink).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstSubtitleOverlay::font-desc</NAME>
 <TYPE>gchar*</TYPE>
 <RANGE></RANGE>
 <DEFAULT>1000000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstEncodeBin::flags</NAME>
+<TYPE>GstEncFlags</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Flags</NICK>
+<BLURB>Flags to control behaviour.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/gst-plugins-base-plugins.hierarchy b/docs/plugins/gst-plugins-base-plugins.hierarchy
new file mode 100644 (file)
index 0000000..111bd43
--- /dev/null
@@ -0,0 +1,135 @@
+GObject
+  GInputStream
+  GOutputStream
+  GstColorBalanceChannel
+  GstMixerTrack
+    GstMixerOptions
+  GstObject
+    GstBus
+    GstClock
+      GstSystemClock
+        GstAudioClock
+    GstElement
+      GstAdder
+      GstAlsaMixerElement
+      GstAudioDecoder
+        GstVorbisDec
+      GstAudioEncoder
+        GstVorbisEnc
+      GstAudioRate
+      GstBaseSink
+        GstAppSink
+        GstBaseAudioSink
+          GstAudioSink
+            GstAlsaSink
+        GstGioBaseSink
+          GstGioSink
+          GstGioStreamSink
+        GstGnomeVFSSink
+        GstMultiFdSink
+          GstTCPServerSink
+        GstTCPClientSink
+        GstVideoSink
+          GstXImageSink
+          GstXvImageSink
+      GstBaseSrc
+        GstAppSrc
+        GstAudioTestSrc
+        GstGioBaseSrc
+          GstGioSrc
+          GstGioStreamSrc
+        GstGnomeVFSSrc
+        GstPushSrc
+          GstBaseAudioSrc
+            GstAudioSrc
+              GstAlsaSrc
+          GstCddaBaseSrc
+            GstCdParanoiaSrc
+          GstTCPClientSrc
+          GstTCPServerSrc
+          GstVideoTestSrc
+      GstBaseTransform
+        GstAudioConvert
+        GstAudioFilter
+          GstVolume
+        GstAudioResample
+        GstVideoFilter
+          GstFFMpegCsp
+          GstVideoScale
+        GstVideoRate
+      GstBin
+        GstDecodeBin
+        GstDecodeBin2
+        GstEncodeBin
+        GstPipeline
+          GstPlayBaseBin
+            GstPlayBin
+          GstPlayBin2
+        GstPlaySink
+        GstSubtitleOverlay
+        GstURIDecodeBin
+      GstGDPDepay
+      GstGDPPay
+      GstOggAviParse
+      GstOggDemux
+      GstOggMux
+      GstOggParse
+      GstOgmParse
+        GstOgmAudioParse
+        GstOgmTextParse
+        GstOgmVideoParse
+      GstSsaParse
+      GstStreamSelector
+      GstSubParse
+      GstTextOverlay
+        GstClockOverlay
+        GstTimeOverlay
+      GstTextRender
+      GstTheoraDec
+      GstTheoraEnc
+      GstTheoraParse
+      GstVisual
+        GstVisualbumpscope
+        GstVisualcorona
+        GstVisualinfinite
+        GstVisualjakdaw
+        GstVisualjess
+        GstVisuallv_analyzer
+        GstVisuallv_scope
+        GstVisualoinksie
+      GstVorbisParse
+        GstVorbisTag
+    GstPad
+    GstPadTemplate
+    GstPlugin
+    GstPluginFeature
+      GstElementFactory
+      GstIndexFactory
+      GstTypeFindFactory
+    GstRegistry
+    GstRingBuffer
+      GstAudioSinkRingBuffer
+      GstAudioSrcRingBuffer
+    GstTask
+    GstTaskPool
+  GstSignalObject
+  GstStreamInfo
+  PangoContext
+  PangoFontMap
+    PangoFcFontMap
+      PangoCairoFcFontMap
+GInterface
+  GFile
+  GTypePlugin
+  GstChildProxy
+  GstColorBalance
+  GstImplementsInterface
+  GstMixer
+  GstNavigation
+  GstPreset
+  GstPropertyProbe
+  GstStreamVolume
+  GstTagSetter
+  GstURIHandler
+  GstXOverlay
+  PangoCairoFontMap
index 772e582..12c9f78 100644 (file)
@@ -1,30 +1,34 @@
+GstAlsaMixerElement GstImplementsInterface GstMixer GstPropertyProbe
+GstAlsaSink GstPropertyProbe
+GstAlsaSrc GstImplementsInterface GstMixer GstPropertyProbe
+GstAppSink GstURIHandler
+GstAppSrc GstURIHandler
+GstAudioEncoder GstPreset
 GstBin GstChildProxy
+GstCdParanoiaSrc GstURIHandler
+GstCddaBaseSrc GstURIHandler
+GstDecodeBin GstChildProxy
+GstDecodeBin2 GstChildProxy
+GstEncodeBin GstChildProxy
+GstGioSink GstURIHandler
+GstGioSrc GstURIHandler
+GstGnomeVFSSink GstURIHandler
+GstGnomeVFSSrc GstURIHandler
+GstOggMux GstPreset
 GstPipeline GstChildProxy
 GstPlayBaseBin GstChildProxy
 GstPlayBin GstChildProxy
 GstPlayBin2 GstChildProxy GstStreamVolume
-GstDecodeBin2 GstChildProxy
-GstURIDecodeBin GstChildProxy
-GstDecodeBin GstChildProxy
 GstPlaySink GstChildProxy
 GstSubtitleOverlay GstChildProxy
-GstEncodeBin GstChildProxy
+GstTheoraEnc GstPreset
+GstURIDecodeBin GstChildProxy
+GstV4lElement GstImplementsInterface GstTuner GstXOverlay GstColorBalance GstPropertyProbe
+GstV4lSrc GstImplementsInterface GstTuner GstXOverlay GstColorBalance GstPropertyProbe
+GstVolume GstImplementsInterface GstMixer GstStreamVolume
+GstVorbisEnc GstPreset GstTagSetter
 GstVorbisEnc GstTagSetter GstPreset
 GstVorbisTag GstTagSetter
-GstCddaBaseSrc GstURIHandler
-GstCdParanoiaSrc GstURIHandler
-GstAlsaSrc GstImplementsInterface GstMixer GstPropertyProbe
-GstGioSrc GstURIHandler
-GstGnomeVFSSrc GstURIHandler
-GstAppSrc GstURIHandler
-GstGioSink GstURIHandler
-GstAlsaSink GstPropertyProbe
-GstGnomeVFSSink GstURIHandler
 GstXImageSink GstImplementsInterface GstNavigation GstXOverlay
 GstXvImageSink GstImplementsInterface GstNavigation GstXOverlay GstColorBalance GstPropertyProbe
-GstAppSink GstURIHandler
-GstAlsaMixerElement GstImplementsInterface GstMixer GstPropertyProbe
-GstTheoraEnc GstPreset
-GstOggMux GstPreset
-GstVolume GstImplementsInterface GstMixer GstStreamVolume
 PangoCairoFcFontMap PangoCairoFontMap
index e81698c..d111b2e 100644 (file)
@@ -1,9 +1,10 @@
+GFile GObject
 GstChildProxy GstObject
-GstTagSetter GstElement
+GstColorBalance GstImplementsInterface GstElement
 GstImplementsInterface GstElement
 GstMixer GstImplementsInterface GstElement
-GstXOverlay GstImplementsInterface GstElement
-GstColorBalance GstImplementsInterface GstElement
 GstStreamVolume GObject
+GstTagSetter GstElement
+GstTuner GstImplementsInterface GstElement
+GstXOverlay GstImplementsInterface GstElement
 PangoCairoFontMap PangoFontMap
-GFile GObject
index ae3094c..500d148 100644 (file)
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPlayBaseBin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch03.html" title="gst-plugins-base Classes">
 <link rel="prev" href="ch03.html" title="gst-plugins-base Classes">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,9 +71,9 @@ GstPlayBaseBin implements
   "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--current-text" title='The "current-text" property'>current-text</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--current-video" title='The "current-video" property'>current-video</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--nstreams" title='The "nstreams" property'>nstreams</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read
-  "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-min-threshold" title='The "queue-min-threshold" property'>queue-min-threshold</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
-  "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-size" title='The "queue-size" property'>queue-size</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
-  "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-threshold" title='The "queue-threshold" property'>queue-threshold</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-min-threshold" title='The "queue-min-threshold" property'>queue-min-threshold</a>"      <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-size" title='The "queue-size" property'>queue-size</a>"               <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-threshold" title='The "queue-threshold" property'>queue-threshold</a>"          <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--source" title='The "source" property'>source</a>"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read
   "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--stream-info" title='The "stream-info" property'>stream-info</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Read
   "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--stream-info-value-array" title='The "stream-info-value-array" property'>stream-info-value-array</a>"  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>*          : Read
@@ -150,7 +150,7 @@ Since version 0.10.10 in <a class="link" href="gst-plugins-base-plugins-playbin.
 <hr>
 <div class="refsect2">
 <a name="GstPlayBaseBin--queue-min-threshold"></a><h3>The <code class="literal">"queue-min-threshold"</code> property</h3>
-<pre class="programlisting">  "queue-min-threshold"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "queue-min-threshold"      <span class="type">guint64</span>               : Read / Write</pre>
 <p>Buffering low threshold of internal queues in nanoseconds.</p>
 <p>Allowed values: &lt;= G_MAXINT64</p>
 <p>Default value: 900000000</p>
@@ -158,7 +158,7 @@ Since version 0.10.10 in <a class="link" href="gst-plugins-base-plugins-playbin.
 <hr>
 <div class="refsect2">
 <a name="GstPlayBaseBin--queue-size"></a><h3>The <code class="literal">"queue-size"</code> property</h3>
-<pre class="programlisting">  "queue-size"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "queue-size"               <span class="type">guint64</span>               : Read / Write</pre>
 <p>Size of internal queues in nanoseconds.</p>
 <p>Allowed values: &lt;= G_MAXINT64</p>
 <p>Default value: 3000000000</p>
@@ -166,7 +166,7 @@ Since version 0.10.10 in <a class="link" href="gst-plugins-base-plugins-playbin.
 <hr>
 <div class="refsect2">
 <a name="GstPlayBaseBin--queue-threshold"></a><h3>The <code class="literal">"queue-threshold"</code> property</h3>
-<pre class="programlisting">  "queue-threshold"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "queue-threshold"          <span class="type">guint64</span>               : Read / Write</pre>
 <p>Buffering threshold of internal queues in nanoseconds.</p>
 <p>Allowed values: &lt;= G_MAXINT64</p>
 <p>Default value: 2850000000</p>
@@ -214,6 +214,6 @@ Since version 0.10.10 in <a class="link" href="gst-plugins-base-plugins-playbin.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e5f0e54..8584825 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Elements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="next" href="gst-plugins-base-plugins-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp153664"></a>gst-plugins-base Elements</h2></div></div></div>
+<a name="idp154560"></a>gst-plugins-base Elements</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-adder.html">adder</a></span><span class="refpurpose"> — Add N audio channels together</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index f7a297a..7049d95 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="prev" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
 <link rel="next" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp73952"></a>gst-plugins-base Plugins</h2></div></div></div>
+<a name="idp73680"></a>gst-plugins-base Plugins</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose"> — <a name="plugin-adder"></a>Adds multiple streams</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5949b33..c5594a8 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Classes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-xvimagesink.html" title="xvimagesink">
 <link rel="next" href="GstPlayBaseBin.html" title="GstPlayBaseBin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp4769232"></a>gst-plugins-base Classes</h2></div></div></div>
+<a name="idp4768528"></a>gst-plugins-base Classes</h2></div></div></div>
 <div class="toc"><dl><dt>
 <span class="refentrytitle"><a href="GstPlayBaseBin.html">GstPlayBaseBin</a></span><span class="refpurpose"></span>
 </dt></dl></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index dccc186..ac995c6 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>adder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="next" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,7 +72,7 @@ possible without trying to synchronize the streams.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp4775216"></a><h3>Example launch line</h3>
+<a name="idm11744"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -93,7 +93,7 @@ Last reviewed on 2006-05-09 (0.10.7)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp4772432"></a><h3>Element Information</h3>
+<a name="idm14528"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -116,7 +116,7 @@ Last reviewed on 2006-05-09 (0.10.7)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7769952"></a><h3>Element Pads</h3>
+<a name="idp7769280"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -210,6 +210,6 @@ The adder object structure.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index c2e8174..4b7ecd4 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsamixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-appsink.html" title="appsink">
 <link rel="next" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,21 +70,10 @@ GstAlsaMixerElement implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsamixer.description"></a><h2>Description</h2>
-<p>
-This element controls various aspects such as the volume and balance
-of an audio device using the ALSA api.
-</p>
-<p>
-The application should query and use the interfaces provided by this 
-element to control the device.
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9594784"></a><h3>Element Information</h3>
+<a name="idp7095728"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -107,7 +96,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9602240"></a><h3>Element Pads</h3>
+<a name="idp7103184"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
@@ -119,7 +108,6 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstAlsaMixerElement-struct"></a><h3>struct GstAlsaMixerElement</h3>
 <pre class="programlisting">struct GstAlsaMixerElement;</pre>
 <p>
-Opaque datastructure.
 </p>
 </div>
 </div>
@@ -139,13 +127,9 @@ Opaque datastructure.
 <p>Default value: ""</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsamixer.see-also"></a><h2>See Also</h2>
-alsasink, alsasrc
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index cf7fa6b..f083fb2 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsamixer.html" title="alsamixer">
 <link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,34 +74,10 @@ GstAlsaSink implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasink.description"></a><h2>Description</h2>
-<p>
-This element renders raw audio samples using the ALSA api.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6507408"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> alsasink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Play an Ogg/Vorbis file.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7524000"></a><h3>Element Information</h3>
+<a name="idp6692992"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -124,7 +100,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7531456"></a><h3>Element Pads</h3>
+<a name="idp9721504"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -177,7 +153,6 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstAlsaSink-struct"></a><h3>struct GstAlsaSink</h3>
 <pre class="programlisting">struct GstAlsaSink;</pre>
 <p>
-Opaque data structure
 </p>
 </div>
 </div>
@@ -204,13 +179,9 @@ Opaque data structure
 <p>Default value: ""</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsasink.see-also"></a><h2>See Also</h2>
-alsasrc, alsamixer
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 30a97c2..85d1756 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsasrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
 <link rel="next" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -75,34 +75,10 @@ GstAlsaSrc implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasrc.description"></a><h2>Description</h2>
-<p>
-This element reads data from an audio card using the ALSA API.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp8699328"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v alsasrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Record from a sound card using ALSA and encode to Ogg/Vorbis.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8702512"></a><h3>Element Information</h3>
+<a name="idp4783184"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -125,7 +101,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9886976"></a><h3>Element Pads</h3>
+<a name="idp9856432"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -174,7 +150,6 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstAlsaSrc-struct"></a><h3>struct GstAlsaSrc</h3>
 <pre class="programlisting">struct GstAlsaSrc;</pre>
 <p>
-Opaque data structure
 </p>
 </div>
 </div>
@@ -201,13 +176,9 @@ Opaque data structure
 <p>Default value: ""</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsasrc.see-also"></a><h2>See Also</h2>
-alsasink, alsamixer
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e99c799..f0a6e8a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
 <link rel="next" href="gst-plugins-base-plugins-alsamixer.html" title="alsamixer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -101,7 +101,7 @@ the GStreamer Plugins Base Libraries documentation.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9669776"></a><h3>Element Information</h3>
+<a name="idp9575968"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -124,7 +124,7 @@ the GStreamer Plugins Base Libraries documentation.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9677184"></a><h3>Element Pads</h3>
+<a name="idp9583376"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -200,18 +200,16 @@ the GStreamer Plugins Base Libraries documentation.
 <a name="gst-plugins-base-plugins-appsink.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstAppSink-eos"></a><h3>The <code class="literal">"eos"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Signal that the end-of-stream has been reached. This signal is emited from
-the steaming thread.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -223,30 +221,16 @@ the steaming thread.
 <hr>
 <div class="refsect2">
 <a name="GstAppSink-new-buffer"></a><h3>The <code class="literal">"new-buffer"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Signal that a new buffer is available.
-</p>
-<p>
-This signal is emited from the steaming thread and only when the
-"emit-signals" property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
-</p>
-<p>
-The new buffer can be retrieved with the "pull-buffer" action
-signal or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer"><code class="function">gst_app_sink_pull_buffer()</code></a> either from this signal callback
-or from any other thread.
-</p>
-<p>
-Note that this signal is only emited when the "emit-signals" property is
-set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, which it is not by default for performance reasons.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -258,30 +242,16 @@ set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macro
 <hr>
 <div class="refsect2">
 <a name="GstAppSink-new-preroll"></a><h3>The <code class="literal">"new-preroll"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Signal that a new preroll buffer is available. 
-</p>
-<p>
-This signal is emited from the steaming thread and only when the
-"emit-signals" property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. 
-</p>
-<p>
-The new preroll buffer can be retrieved with the "pull-preroll" action
-signal or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll"><code class="function">gst_app_sink_pull_preroll()</code></a> either from this signal callback
-or from any other thread.
-</p>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Note that this signal is only emited when the "emit-signals" property is
-set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, which it is not by default for performance reasons.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -293,117 +263,58 @@ set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macro
 <hr>
 <div class="refsect2">
 <a name="GstAppSink-pull-buffer"></a><h3>The <code class="literal">"pull-buffer"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>*          user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
-<p>
-This function blocks until a buffer or EOS becomes available or the appsink
-element is set to the READY/NULL state. 
-</p>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>*          user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-This function will only return buffers when the appsink is in the PLAYING
-state. All rendered buffers will be put in a queue so that the application
-can pull buffers at its own rate. 
-</p>
-<p>
-Note that when the application does not pull buffers fast enough, the
-queued buffers could consume a lot of memory, especially when dealing with
-raw video frames. It's possible to control the behaviour of the queue with
-the "drop" and "max-buffers" properties.
-</p>
-<p>
-If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element to emit this signal on</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> or NULL when the appsink is stopped or EOS.</td>
-</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAppSink-pull-preroll"></a><h3>The <code class="literal">"pull-preroll"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>*          user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
-<p>
-Get the last preroll buffer in <em class="parameter"><code>appsink</code></em>. This was the buffer that caused the
-appsink to preroll in the PAUSED state. This buffer can be pulled many times
-and remains available to the application even after EOS.
-</p>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>*          user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-This function is typically used when dealing with a pipeline in the PAUSED
-state. Calling this function after doing a seek will give the buffer right
-after the seek position.
-</p>
-<p>
-Note that the preroll buffer will also be returned as the first buffer
-when calling <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer"><code class="function">gst_app_sink_pull_buffer()</code></a> or the "pull-buffer" action signal.
-</p>
-<p>
-If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition. 
-</p>
-<p>
-This function blocks until a preroll buffer or EOS is received or the appsink
-element is set to the READY/NULL state.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element to emit this signal on</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> or NULL when the appsink is stopped or EOS.</td>
-</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAppSink-new-buffer-list"></a><h3>The <code class="literal">"new-buffer-list"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Signal that a new bufferlist is available.
-</p>
-<p>
-This signal is emited from the steaming thread and only when the
-"emit-signals" property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. 
-</p>
-<p>
-The new buffer can be retrieved with the "pull-buffer-list" action
-signal or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list"><code class="function">gst_app_sink_pull_buffer_list()</code></a> either from this signal callback
-or from any other thread.
-</p>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Note that this signal is only emited when the "emit-signals" property is
-set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, which it is not by default for performance reasons.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -415,42 +326,21 @@ set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macro
 <hr>
 <div class="refsect2">
 <a name="GstAppSink-pull-buffer-list"></a><h3>The <code class="literal">"pull-buffer-list"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a>*      user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a>*      user_function                      (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-This function blocks until a buffer list or EOS becomes available or the appsink
-element is set to the READY/NULL state. 
-</p>
-<p>
-This function will only return bufferlists when the appsink is in the PLAYING
-state. All rendered bufferlists will be put in a queue so that the application
-can pull bufferlists at its own rate. 
-</p>
-<p>
-Note that when the application does not pull bufferlists fast enough, the
-queued bufferlists could consume a lot of memory, especially when dealing with
-raw video frames. It's possible to control the behaviour of the queue with
-the "drop" and "max-buffers" properties.
-</p>
-<p>
-If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element to emit this signal on</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> or NULL when the appsink is stopped or EOS.</td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -458,6 +348,6 @@ If an EOS event was received before any buffers, this function returns
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6840a8c..1721606 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-adder.html" title="adder">
 <link rel="next" href="gst-plugins-base-plugins-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -71,10 +71,10 @@ GstAppSrc implements
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps" title='The "caps" property'>caps</a>"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--format" title='The "format" property'>format</a>"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--is-live" title='The "is-live" property'>is-live</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-bytes" title='The "max-bytes" property'>max-bytes</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency" title='The "max-latency" property'>max-latency</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency" title='The "min-latency" property'>min-latency</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size" title='The "size" property'>size</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-bytes" title='The "max-bytes" property'>max-bytes</a>"                <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency" title='The "max-latency" property'>max-latency</a>"              <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency" title='The "min-latency" property'>min-latency</a>"              <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size" title='The "size" property'>size</a>"                     <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type" title='The "stream-type" property'>stream-type</a>"              <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a>      : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals" title='The "emit-signals" property'>emit-signals</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent" title='The "min-percent" property'>min-percent</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
@@ -105,7 +105,7 @@ GStreamer Plugins Base Libraries documentation.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5517840"></a><h3>Element Information</h3>
+<a name="idp8801728"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -128,7 +128,7 @@ GStreamer Plugins Base Libraries documentation.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5525328"></a><h3>Element Pads</h3>
+<a name="idp8809136"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -195,14 +195,14 @@ GStreamer Plugins Base Libraries documentation.
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--max-bytes"></a><h3>The <code class="literal">"max-bytes"</code> property</h3>
-<pre class="programlisting">  "max-bytes"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-bytes"                <span class="type">guint64</span>               : Read / Write</pre>
 <p>The maximum number of bytes to queue internally (0 = unlimited).</p>
 <p>Default value: 200000</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--max-latency"></a><h3>The <code class="literal">"max-latency"</code> property</h3>
-<pre class="programlisting">  "max-latency"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "max-latency"              <span class="type">gint64</span>                : Read / Write</pre>
 <p>The maximum latency (-1 = unlimited).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -210,7 +210,7 @@ GStreamer Plugins Base Libraries documentation.
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--min-latency"></a><h3>The <code class="literal">"min-latency"</code> property</h3>
-<pre class="programlisting">  "min-latency"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "min-latency"              <span class="type">gint64</span>                : Read / Write</pre>
 <p>The minimum latency (-1 = default).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -218,7 +218,7 @@ GStreamer Plugins Base Libraries documentation.
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--size"></a><h3>The <code class="literal">"size"</code> property</h3>
-<pre class="programlisting">  "size"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "size"                     <span class="type">gint64</span>                : Read / Write</pre>
 <p>The size of the data stream in bytes (-1 if unknown).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -250,17 +250,16 @@ GStreamer Plugins Base Libraries documentation.
 <a name="gst-plugins-base-plugins-appsrc.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstAppSrc-end-of-stream"></a><h3>The <code class="literal">"end-of-stream"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-Notify <em class="parameter"><code>appsrc</code></em> that no more buffer are available.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -272,19 +271,16 @@ Notify <em class="parameter"><code>appsrc</code></em> that no more buffer are av
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc-enough-data"></a><h3>The <code class="literal">"enough-data"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Signal that the source has enough data. It is recommended that the
-application stops calling push-buffer until the need-data signal is
-emited again to avoid excessive buffer queueing.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -296,31 +292,17 @@ emited again to avoid excessive buffer queueing.
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc-need-data"></a><h3>The <code class="literal">"need-data"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>      length,
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>      arg1,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Signal that the source needs more data. In the callback or from another
-thread you should call push-buffer or end-of-stream.
-</p>
-<p>
-<em class="parameter"><code>length</code></em> is just a hint and when it is set to -1, any number of bytes can be
-pushed into <em class="parameter"><code>appsrc</code></em>.
-</p>
-<p>
-You can call push-buffer multiple times until the enough-data signal is
-fired.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc element that emited the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>the amount of bytes needed.</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -332,28 +314,17 @@ fired.
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc-push-buffer"></a><h3>The <code class="literal">"push-buffer"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *arg1,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-Adds a buffer to the queue of buffers that the appsrc element will
-push to its source pad. This function does not take ownership of the
-buffer so the buffer needs to be unreffed after calling this function.
-</p>
-<p>
-When the block property is TRUE, this function can block until free space
-becomes available in the queue.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a buffer to push</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -365,34 +336,22 @@ becomes available in the queue.
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc-seek-data"></a><h3>The <code class="literal">"seek-data"</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>    offset,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+                                                        <span class="type">guint64</span>    arg1,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-Seek to the given offset. The next push-buffer should produce buffers from
-the new <em class="parameter"><code>offset</code></em>.
-This callback is only called for seekable stream types.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc element that emited the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset to seek to</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek succeeded.</td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -400,6 +359,6 @@ This callback is only called for seekable stream types.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 77ec2aa..a4c3eaf 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
 <link rel="next" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,7 +73,7 @@ signedness and endianness conversion and channel transformations.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9937248"></a><h3>Example launch line</h3>
+<a name="idp9950880"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -107,7 +107,7 @@ Last reviewed on 2006-03-02 (0.10.4)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7421920"></a><h3>Element Information</h3>
+<a name="idp6613792"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -130,7 +130,7 @@ Last reviewed on 2006-03-02 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7007232"></a><h3>Element Pads</h3>
+<a name="idp5527392"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -230,8 +230,7 @@ The audioconvert object structure.
 <hr>
 <div class="refsect2">
 <a name="GstAudioConvertDithering"></a><h3>enum GstAudioConvertDithering</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   DITHER_NONE = 0,
   DITHER_RPDF,
   DITHER_TPDF,
@@ -270,8 +269,7 @@ Set of available dithering methods when converting audio.
 <hr>
 <div class="refsect2">
 <a name="GstAudioConvertNoiseShaping"></a><h3>enum GstAudioConvertNoiseShaping</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   NOISE_SHAPING_NONE = 0,
   NOISE_SHAPING_ERROR_FEEDBACK,
   NOISE_SHAPING_SIMPLE,
@@ -333,6 +331,6 @@ Set of available noise shaping methods
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a411301..ffad1fd 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
 <link rel="next" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audiorate.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add" title='The "add" property'>add</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop" title='The "drop" property'>drop</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--in" title='The "in" property'>in</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--out" title='The "out" property'>out</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add" title='The "add" property'>add</a>"                      <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop" title='The "drop" property'>drop</a>"                     <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--in" title='The "in" property'>in</a>"                       <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--out" title='The "out" property'>out</a>"                      <span class="type">guint64</span>               : Read
   "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance" title='The "tolerance" property'>tolerance</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance" title='The "tolerance" property'>tolerance</a>"                <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first" title='The "skip-to-first" property'>skip-to-first</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
 </pre>
 </div>
@@ -102,7 +102,7 @@ tolerance) to a perfect time.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10131792"></a><h3>Example pipelines</h3>
+<a name="idp10065952"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -121,7 +121,7 @@ for saving in a raw audio file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10134512"></a><h3>Element Information</h3>
+<a name="idp10068672"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -144,7 +144,7 @@ for saving in a raw audio file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10141968"></a><h3>Element Pads</h3>
+<a name="idp10076128"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -214,28 +214,28 @@ Opaque data structure.
 <a name="gst-plugins-base-plugins-audiorate.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAudioRate--add"></a><h3>The <code class="literal">"add"</code> property</h3>
-<pre class="programlisting">  "add"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "add"                      <span class="type">guint64</span>               : Read</pre>
 <p>Number of added samples.</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioRate--drop"></a><h3>The <code class="literal">"drop"</code> property</h3>
-<pre class="programlisting">  "drop"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "drop"                     <span class="type">guint64</span>               : Read</pre>
 <p>Number of dropped samples.</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioRate--in"></a><h3>The <code class="literal">"in"</code> property</h3>
-<pre class="programlisting">  "in"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "in"                       <span class="type">guint64</span>               : Read</pre>
 <p>Number of input samples.</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioRate--out"></a><h3>The <code class="literal">"out"</code> property</h3>
-<pre class="programlisting">  "out"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "out"                      <span class="type">guint64</span>               : Read</pre>
 <p>Number of output samples.</p>
 <p>Default value: 0</p>
 </div>
@@ -249,7 +249,7 @@ Opaque data structure.
 <hr>
 <div class="refsect2">
 <a name="GstAudioRate--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
-<pre class="programlisting">  "tolerance"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "tolerance"                <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 The difference between incoming timestamp and next timestamp must exceed
 the given value for audiorate to add or drop samples.
@@ -275,6 +275,6 @@ Don't produce buffers before the first one we receive.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a8fb370..5447369 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioresample</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
 <link rel="next" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ a configurable windowing function to enhance quality.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9934288"></a><h3>Example launch line</h3>
+<a name="idp8557472"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -89,7 +89,7 @@ To create the Ogg/Vorbis file refer to the documentation of vorbisenc.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9932064"></a><h3>Element Information</h3>
+<a name="idp8555248"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -112,7 +112,7 @@ To create the Ogg/Vorbis file refer to the documentation of vorbisenc.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7787632"></a><h3>Element Pads</h3>
+<a name="idp6067952"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -207,12 +207,13 @@ Opaque data structure.
 <div class="refsect2">
 <a name="GstAudioResample--filter-length"></a><h3>The <code class="literal">"filter-length"</code> property</h3>
 <pre class="programlisting">  "filter-length"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">GstAudioResample:filter-length</code> is deprecated and should not be used in newly-written code. Use <a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title='The "quality" property'><span class="type">"quality"</span></a> property instead</p>
+</div>
 <p>
 Length of the resample filter
 </p>
-<p>
-Deprectated: Use <a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title='The "quality" property'><span class="type">"quality"</span></a> property instead
-</p>
 <p>Allowed values: &gt;= 0</p>
 <p>Default value: 64</p>
 </div>
@@ -228,6 +229,6 @@ Deprectated: Use <a class="link" href="gst-plugins-base-plugins-audioresample.ht
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5b0e6a6..bfd9dcb 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
 <link rel="next" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ enum                <a class="link" href="gst-plugins-base-plugins-audiotestsrc.
   "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq" title='The "freq" property'>freq</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live" title='The "is-live" property'>is-live</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--samplesperbuffer" title='The "samplesperbuffer" property'>samplesperbuffer</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--volume" title='The "volume" property'>volume</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave" title='The "wave" property'>wave</a>"                     <a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave" title="enum GstAudioTestSrcWave"><span class="type">GstAudioTestSrcWave</span></a>   : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull" title='The "can-activate-pull" property'>can-activate-pull</a>"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -77,7 +77,7 @@ different waveforms and allows to set the base frequency and volume.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10290800"></a><h3>Example launch line</h3>
+<a name="idp10528400"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -109,7 +109,7 @@ the saw wave is correct.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10294688"></a><h3>Element Information</h3>
+<a name="idp10222736"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -132,7 +132,7 @@ the saw wave is correct.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10302144"></a><h3>Element Pads</h3>
+<a name="idp10230192"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -189,8 +189,11 @@ audiotestsrc object structure.
   GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE,
   GST_AUDIO_TEST_SRC_WAVE_SINE_TAB,
   GST_AUDIO_TEST_SRC_WAVE_TICKS,
-  GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE
-} GstAudioTestSrcWave; 
+  GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE,
+  GST_AUDIO_TEST_SRC_WAVE_RED_NOISE,
+  GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE,
+  GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE
+} GstAudioTestSrcWave;
 </pre>
 <p>
 Different types of supported sound waves.
@@ -248,6 +251,21 @@ Different types of supported sound waves.
 <td>white (zero mean) Gaussian noise;  volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_RED_NOISE</code></span></p></td>
+<td>red (brownian) noise
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE</code></span></p></td>
+<td>spectraly inverted pink noise
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE</code></span></p></td>
+<td>spectraly inverted red (brownian) noise
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -279,7 +297,7 @@ Different types of supported sound waves.
 <hr>
 <div class="refsect2">
 <a name="GstAudioTestSrc--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3>
-<pre class="programlisting">  "timestamp-offset"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "timestamp-offset"         <span class="type">gint64</span>                : Read / Write</pre>
 <p>An offset added to timestamps set on buffers (in ns).</p>
 <p>Default value: 0</p>
 </div>
@@ -316,6 +334,6 @@ Different types of supported sound waves.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 488f5bb..c00042e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cdparanoiasrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -88,7 +88,7 @@ GstCdParanoiaSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10403712"></a><h3>Element Information</h3>
+<a name="idp10447776"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -111,7 +111,7 @@ GstCdParanoiaSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10411120"></a><h3>Element Pads</h3>
+<a name="idp10455184"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -144,7 +144,6 @@ GstCdParanoiaSrc implements
 <a name="GstCdParanoiaSrc-struct"></a><h3>struct GstCdParanoiaSrc</h3>
 <pre class="programlisting">struct GstCdParanoiaSrc;</pre>
 <p>
-The cdparanoia object structure.
 </p>
 </div>
 </div>
@@ -183,35 +182,26 @@ The cdparanoia object structure.
 <div class="refsect2">
 <a name="GstCdParanoiaSrc--cache-size"></a><h3>The <code class="literal">"cache-size"</code> property</h3>
 <pre class="programlisting">  "cache-size"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>
-Set CD cache size to n sectors (-1 = auto)
-</p>
+<p>Set CD cache size to n sectors (-1 = auto).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
-<p class="since">Since 0.10.24</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-cdparanoiasrc.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc-transport-error"></a><h3>The <code class="literal">"transport-error"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *cdparanoia,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              sector,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)             : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-This signal is emitted whenever an error occurs while reading.
-CdParanoia will attempt to recover the data.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cdparanoia</code></em> :</span></p></td>
-<td>The CdParanoia instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sector</code></em> :</span></p></td>
-<td>The sector number at which the error was encountered.</td>
+<td><p><span class="term"><em class="parameter"><code>gstcdparanoiasrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -223,23 +213,17 @@ CdParanoia will attempt to recover the data.
 <hr>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc-uncorrected-error"></a><h3>The <code class="literal">"uncorrected-error"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *cdparanoia,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              sector,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)             : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-This signal is emitted whenever an uncorrectable error occurs while
-reading. The data could not be read.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cdparanoia</code></em> :</span></p></td>
-<td>The CdParanoia instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sector</code></em> :</span></p></td>
-<td>The sector number at which the error was encountered.</td>
+<td><p><span class="term"><em class="parameter"><code>gstcdparanoiasrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -252,6 +236,6 @@ reading. The data could not be read.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 3d8a036..383d8b4 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>clockoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
 <link rel="next" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-clockoverlay.description"></a><h2>Description</h2>
-<p>
-This element overlays the current clock time on top of a video
-stream. You can position the text and configure the font details
-using the properties of the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a> class. By default, the
-time is displayed in the top left corner of the picture, with some
-padding to the left and to the top.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6583856"></a><h3>Example launch lines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> clockoverlay <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Display the current time in the top left corner of the video picture
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> clockoverlay halign<span class="gtkdoc opt">=</span>right valign<span class="gtkdoc opt">=</span>bottom text<span class="gtkdoc opt">=</span><span class="string">&quot;Edge City&quot;</span> shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> ximagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Another pipeline that displays the current time with some leading
-text in the bottom right corner of the video picture, with the background
-of the text being shaded in order to make it more legible on top of a
-bright video background.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6581168"></a><h3>Element Information</h3>
+<a name="idp10410336"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -127,7 +88,7 @@ bright video background.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6573712"></a><h3>Element Pads</h3>
+<a name="idp10403552"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -149,6 +110,14 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
@@ -177,7 +146,11 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -202,6 +175,14 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
@@ -230,7 +211,11 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -245,7 +230,6 @@ bright video background.
 <a name="GstClockOverlay-struct"></a><h3>struct GstClockOverlay</h3>
 <pre class="programlisting">struct GstClockOverlay;</pre>
 <p>
-Opaque clockoverlay data structure.
 </p>
 </div>
 </div>
@@ -258,13 +242,9 @@ Opaque clockoverlay data structure.
 <p>Default value: "%H:%M:%S"</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-clockoverlay.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay"><span class="type">GstTimeOverlay</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5d7f5ab..4eaadc9 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>decodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
 <link rel="next" href="gst-plugins-base-plugins-decodebin2.html" title="decodebin2">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,7 +102,7 @@ This element is deprecated and no longer supported. You should use the
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5296880"></a><h3>Element Information</h3>
+<a name="idp10626496"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -125,7 +125,7 @@ This element is deprecated and no longer supported. You should use the
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5304336"></a><h3>Element Pads</h3>
+<a name="idp10633952"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -298,6 +298,6 @@ stream type.</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 95103a7..fbd8f66 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>decodebin2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
 <link rel="next" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@ GstDecodeBin2 implements
   "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--low-percent" title='The "low-percent" property'>low-percent</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-buffers" title='The "max-size-buffers" property'>max-size-buffers</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-bytes" title='The "max-size-bytes" property'>max-size-bytes</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--use-buffering" title='The "use-buffering" property'>use-buffering</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--post-stream-topology" title='The "post-stream-topology" property'>post-stream-topology</a>"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--expose-all-streams" title='The "expose-all-streams" property'>expose-all-streams</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -107,7 +107,7 @@ use, as it creates a suitable source element as well.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10887472"></a><h3>Element Information</h3>
+<a name="idp10756320"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -130,7 +130,7 @@ use, as it creates a suitable source element as well.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10894992"></a><h3>Element Pads</h3>
+<a name="idp10763840"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -241,7 +241,7 @@ The opaque <span class="type">DecodeBin2</span> data structure
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin2--max-size-time"></a><h3>The <code class="literal">"max-size-time"</code> property</h3>
-<pre class="programlisting">  "max-size-time"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-size-time"            <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the queue (in ns, 0=automatic).</p>
 <p>Default value: 0</p>
 </div>
@@ -329,7 +329,7 @@ signal).</td>
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 Once decodebin2 has found the possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects to try
-for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emited. The purpose of the signal is for
+for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emitted. The purpose of the signal is for
 the application to perform additional sorting or filtering on the element
 factory array.
 </p>
@@ -490,7 +490,7 @@ stream type.</td>
                                                         <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>       *caps,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-This function is emited when an array of possible factories for <em class="parameter"><code>caps</code></em> on
+This function is emitted when an array of possible factories for <em class="parameter"><code>caps</code></em> on
 <em class="parameter"><code>pad</code></em> is needed. Decodebin2 will by default return an array with all
 compatible factories, sorted by rank.
 </p>
@@ -550,7 +550,7 @@ by default tried in the returned order or based on the index returned by
 <p>
 This signal is emitted once decodebin2 has found all the possible
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> that can be used to handle the given <em class="parameter"><code>caps</code></em>. For each of
-those factories, this signal is emited.
+those factories, this signal is emitted.
 </p>
 <p>
 The signal handler should return a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> enum
@@ -637,6 +637,6 @@ This signal is emitted once decodebin2 has finished decoding all the data.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 3457ee3..7e30fdf 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-decodebin2.html" title="decodebin2">
 <link rel="next" href="gst-plugins-base-plugins-ffmpegcolorspace.html" title="ffmpegcolorspace">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,12 +67,13 @@ GstEncodeBin implements
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-encodebin.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance" title='The "audio-jitter-tolerance" property'>audio-jitter-tolerance</a>"   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance" title='The "audio-jitter-tolerance" property'>audio-jitter-tolerance</a>"   <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding" title='The "avoid-reencoding" property'>avoid-reencoding</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile" title='The "profile" property'>profile</a>"                  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>*   : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max" title='The "queue-buffers-max" property'>queue-buffers-max</a>"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max" title='The "queue-bytes-max" property'>queue-bytes-max</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max" title='The "queue-time-max" property'>queue-time-max</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max" title='The "queue-time-max" property'>queue-time-max</a>"           <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags" title='The "flags" property'>flags</a>"                    <span class="type">GstEncFlags</span>           : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -97,7 +98,7 @@ encoded/muxed/converted stream in output.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6809216"></a><h3>Features</h3>
+<a name="idp7547488"></a><h3>Features</h3>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
 <li class="listitem">
 Automatic encoder and muxer selection based on elements available on the
@@ -162,7 +163,7 @@ user a way to install the missing element.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11211984"></a><h3>Element Information</h3>
+<a name="idp5633232"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -185,7 +186,7 @@ user a way to install the missing element.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11219392"></a><h3>Element Pads</h3>
+<a name="idp5640640"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -288,7 +289,7 @@ user a way to install the missing element.
 <a name="gst-plugins-base-plugins-encodebin.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstEncodeBin--audio-jitter-tolerance"></a><h3>The <code class="literal">"audio-jitter-tolerance"</code> property</h3>
-<pre class="programlisting">  "audio-jitter-tolerance"   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "audio-jitter-tolerance"   <span class="type">guint64</span>               : Read / Write</pre>
 <p>Amount of timestamp jitter/imperfection to allow on audio streams before inserting/dropping samples (ns).</p>
 <p>Default value: 20000000</p>
 </div>
@@ -325,10 +326,18 @@ to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/h
 <hr>
 <div class="refsect2">
 <a name="GstEncodeBin--queue-time-max"></a><h3>The <code class="literal">"queue-time-max"</code> property</h3>
-<pre class="programlisting">  "queue-time-max"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "queue-time-max"           <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the queue (in ns, 0=disable).</p>
 <p>Default value: 1000000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstEncodeBin--flags"></a><h3>The <code class="literal">"flags"</code> property</h3>
+<pre class="programlisting">  "flags"                    <span class="type">GstEncFlags</span>           : Read / Write</pre>
+<p>
+Control the behaviour of encodebin.
+</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-encodebin.signal-details"></a><h2>Signal Details</h2>
@@ -370,6 +379,6 @@ created or is available.</td>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 264f7bd..1b6df0a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ffmpegcolorspace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
 <link rel="next" href="gst-plugins-base-plugins-gdpdepay.html" title="gdpdepay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ Convert video frames between a great variety of colorspace formats.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10768768"></a><h3>Example launch line</h3>
+<a name="idp8758528"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,7 +79,7 @@ Convert video frames between a great variety of colorspace formats.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10766048"></a><h3>Element Information</h3>
+<a name="idp8756320"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -102,7 +102,7 @@ Convert video frames between a great variety of colorspace formats.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10758336"></a><h3>Element Pads</h3>
+<a name="idp8748608"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -291,6 +291,6 @@ Opaque object data structure.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index ef197ae..e011d90 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gdpdepay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-ffmpegcolorspace.html" title="ffmpegcolorspace">
 <link rel="next" href="gst-plugins-base-plugins-gdppay.html" title="gdppay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -60,7 +60,7 @@ buffers and events.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7288064"></a><div class="informalexample">
+<a name="idp5432624"></a><div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
       <tr>
@@ -78,7 +78,7 @@ example for gdppay.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6887008"></a><h3>Element Information</h3>
+<a name="idp9410320"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -101,7 +101,7 @@ example for gdppay.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6465872"></a><h3>Element Pads</h3>
+<a name="idp8532512"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -166,6 +166,6 @@ gdppay
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6e11244..88f1a85 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gdppay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-gdpdepay.html" title="gdpdepay">
 <link rel="next" href="gst-plugins-base-plugins-giosink.html" title="giosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -70,7 +70,7 @@ GStreamer Data Protocol.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7837536"></a><div class="informalexample">
+<a name="idp9711888"></a><div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
       <tr>
@@ -88,7 +88,7 @@ with the example shown in gdpdepay.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6322768"></a><h3>Element Information</h3>
+<a name="idp7115488"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -111,7 +111,7 @@ with the example shown in gdpdepay.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11401568"></a><h3>Element Pads</h3>
+<a name="idp11021744"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -199,6 +199,6 @@ gdpdepay
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e75f886..fd1f2dc 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-gdppay.html" title="gdppay">
 <link rel="next" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,78 +72,10 @@ GstGioSink implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosink.description"></a><h2>Description</h2>
-<p>
-This plugin writes incoming data to a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GIO library or it's VFS backends. Common protocols are 'file', 'ftp',
-or 'smb'.
-</p>
-<p>
-If the URI or <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> already exists giosink will post a message of
-type <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><code class="literal">GST_MESSAGE_ELEMENT</code></a> with name "file-exists" on the bus. The message
-also contains the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
-Applications can use the "file-exists" message to notify the user about
-the problem and to set a different target location or to remove the
-existing file. Note that right after the "file-exists" message a normal
-error message is posted on the bus which should be ignored if "file-exists"
-is handled by the application, for example by calling
-gst_bus_set_flushing(bus, TRUE) after the "file-exists" message was
-received and gst_bus_set_flushing(bus, FALSE) after the problem is
-resolved.
-</p>
-<p>
-Similar to the "file-exist" message a "not-mounted" message is posted
-on the bus if the target location is not mounted yet and needs to be
-mounted. This message can be used by application to mount the location
-and retry after the location was mounted successfully.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11111376"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>input<span class="gtkdoc opt">.</span>xyz <span class="gtkdoc opt">!</span> giosink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/out.xyz</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will simply copy a local file. Instead of giosink,
-we could just as well have used the filesink element here.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mad <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> giosink location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.flac</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will re-encode an mp3 file into FLAC format and store
-it on a remote host using the Samba protocol.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> giosink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/foo/bar.ogg</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will encode a 440Hz sine wave to Ogg Vorbis and stores
-it in the home directory of user foo.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10531904"></a><h3>Element Information</h3>
+<a name="idp11203328"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -166,7 +98,7 @@ it in the home directory of user foo.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10539424"></a><h3>Element Pads</h3>
+<a name="idp11489664"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -199,7 +131,6 @@ it in the home directory of user foo.
 <a name="GstGioSink-struct"></a><h3>struct GstGioSink</h3>
 <pre class="programlisting">struct GstGioSink;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -215,19 +146,12 @@ Opaque data structure.
 <div class="refsect2">
 <a name="GstGioSink--file"></a><h3>The <code class="literal">"file"</code> property</h3>
 <pre class="programlisting">  "file"                     <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>*                : Read / Write</pre>
-<p>
-<a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to write to.
-</p>
-<p class="since">Since 0.10.20</p>
+<p>GFile to write to.</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-giosink.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a>, <a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc"><span class="type">GstGioSrc</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a3a83f3..84bdf9d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giosink.html" title="giosink">
 <link rel="next" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,73 +72,10 @@ GstGioSrc implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosrc.description"></a><h2>Description</h2>
-<p>
-This plugin reads data from a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GIO library or it's VFS backends. Common protocols are 'file', 'http',
-'ftp', or 'smb'.
-</p>
-<p>
-If an URI or <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> is not mounted giosrc will post a message of type
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><code class="literal">GST_MESSAGE_ELEMENT</code></a> with name "not-mounted" on the bus. The message
-also contains the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
-Applications can use the "not-mounted" message to mount the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>
-by calling <a href="http://library.gnome.org/devel/gio/unstable/GFile.html#g-file-mount-enclosing-volume"><code class="function">g_file_mount_enclosing_volume()</code></a> and then restart the
-pipeline after the mounting has succeeded. Note that right after the
-"not-mounted" message a normal error message is posted on the bus which
-should be ignored if "not-mounted" is handled by the application, for
-example by calling gst_bus_set_flushing(bus, TRUE) after the "not-mounted"
-message was received and gst_bus_set_flushing(bus, FALSE) after the
-mounting was successful.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11463456"></a><h3>Example launch lines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v giosrc location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/foo.xyz ! fakesink</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will simply read a local file and do nothing with the
-data read. Instead of giosrc, we could just as well have used the
-filesrc element here.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v giosrc location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.xyz ! filesink location=/home/joe/foo.xyz</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will copy a file from a remote host to the local file
-system using the Samba protocol.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v giosrc location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//music.foobar.com/demo.mp3 ! mad ! audioconvert ! audioresample ! alsasink</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will read and decode and play an mp3 file from a
-web server using the http protocol.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11468304"></a><h3>Element Information</h3>
+<a name="idp11039536"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -161,7 +98,7 @@ web server using the http protocol.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11475824"></a><h3>Element Pads</h3>
+<a name="idp11093520"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -194,7 +131,6 @@ web server using the http protocol.
 <a name="GstGioSrc-struct"></a><h3>struct GstGioSrc</h3>
 <pre class="programlisting">struct GstGioSrc;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -210,19 +146,12 @@ Opaque data structure.
 <div class="refsect2">
 <a name="GstGioSrc--file"></a><h3>The <code class="literal">"file"</code> property</h3>
 <pre class="programlisting">  "file"                     <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>*                : Read / Write</pre>
-<p>
-<a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to read from.
-</p>
-<p class="since">Since 0.10.20</p>
+<p>GFile to read from.</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-giosrc.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc"><span class="type">GstGnomeVFSSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink"><span class="type">GstGioSink</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index db4b250..55efa10 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giostreamsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
 <link rel="next" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsink.description"></a><h2>Description</h2>
-<p>
-This plugin writes incoming data to a custom GIO <a href="http://library.gnome.org/devel/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a>.
-</p>
-<p>
-It can, for example, be used to write a stream to memory with a
-<span class="type">GMemoryOuputStream</span> or to write to a file with a <span class="type">GFileOuputStream</span>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11498976"></a><h3>Example code</h3>
-<p>
-The following example writes the received data to a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
-</p>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
-<span class="gtkdoc ppc">#include &lt;gio/gio.h&gt;</span>
-
-<span class="gtkdoc opt">...</span>
-
-GstElement <span class="gtkdoc opt">*</span>sink<span class="gtkdoc opt">;</span>
-GMemoryOuputStream <span class="gtkdoc opt">*</span>stream<span class="gtkdoc opt">;</span>
-<span class="gtkdoc slc">// out_data will contain the received data</span>
-guint8 <span class="gtkdoc opt">*</span>out_data<span class="gtkdoc opt">;</span>
-
-<span class="gtkdoc opt">...</span>
-
-stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_OUTPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html#g-memory-output-stream-new">g_memory_output_stream_new</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span>
-          <span class="gtkdoc opt">(</span>GReallocFunc<span class="gtkdoc opt">)</span> g_realloc<span class="gtkdoc opt">, (</span>GDestroyNotify<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">));</span>
-sink <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;giostreamsink&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> <span class="string">&quot;stream&quot;</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-
-<span class="gtkdoc opt">...</span>
-
-<span class="gtkdoc slc">// after processing get the written data</span>
-out_data <span class="gtkdoc opt">=</span> <span class="function">g_memory_ouput_stream_get_data</span> <span class="gtkdoc opt">(</span><span class="function">G_MEMORY_OUTPUT_STREAM</span> <span class="gtkdoc opt">(</span>stream<span class="gtkdoc opt">));</span>
-
-<span class="gtkdoc opt">...</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11503440"></a><h3>Element Information</h3>
+<a name="idp11743776"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -163,7 +89,7 @@ out_data <span class="gtkdoc opt">=</span> <span class="function">g_memory_ouput
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11510848"></a><h3>Element Pads</h3>
+<a name="idp11046784"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,7 +122,6 @@ out_data <span class="gtkdoc opt">=</span> <span class="function">g_memory_ouput
 <a name="GstGioStreamSink-struct"></a><h3>struct GstGioStreamSink</h3>
 <pre class="programlisting">struct GstGioStreamSink;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -211,6 +136,6 @@ Opaque data structure.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index dba8f85..17bf466 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giostreamsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
 <link rel="next" href="gst-plugins-base-plugins-gnomevfssink.html" title="gnomevfssink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsrc.description"></a><h2>Description</h2>
-<p>
-This plugin reads data from a custom GIO <a href="http://library.gnome.org/devel/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a>.
-</p>
-<p>
-It can, for example, be used to read data from memory with a
-<a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a> or to read from a file with a
-<a href="http://library.gnome.org/devel/gio/unstable/GFileInputStream.html"><span class="type">GFileInputStream</span></a>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11630736"></a><h3>Example code</h3>
-<p>
-The following example reads data from a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
-</p>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
-<span class="gtkdoc ppc">#include &lt;gio/gio.h&gt;</span>
-
-<span class="gtkdoc opt">...</span>
-
-GstElement <span class="gtkdoc opt">*</span>src<span class="gtkdoc opt">;</span>
-GMemoryInputStream <span class="gtkdoc opt">*</span>stream<span class="gtkdoc opt">;</span>
-<span class="gtkdoc slc">// in_data will contain the data to send</span>
-guint8 <span class="gtkdoc opt">*</span>in_data<span class="gtkdoc opt">;</span>
-gint i<span class="gtkdoc opt">;</span>
-
-<span class="gtkdoc opt">...</span>
-in_data <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-new">g_new</a></span> <span class="gtkdoc opt">(</span>guint8<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
-<span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">&lt;</span> <span class="number">512</span><span class="gtkdoc opt">;</span> i<span class="gtkdoc opt">++)</span>
-  in_data<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">] =</span> i <span class="gtkdoc opt">%</span> <span class="number">256</span><span class="gtkdoc opt">;</span>
-
-stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_INPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html#g-memory-input-stream-new-from-data">g_memory_input_stream_new_from_data</a></span> <span class="gtkdoc opt">(</span>in_data<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">,</span>
-          <span class="gtkdoc opt">(</span>GDestroyNotify<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">));</span>
-src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;giostreamsrc&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;src&quot;</span><span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">),</span> <span class="string">&quot;stream&quot;</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-
-<span class="gtkdoc opt">...</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11635136"></a><h3>Element Information</h3>
+<a name="idp5514880"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -162,7 +89,7 @@ src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gst
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11537408"></a><h3>Element Pads</h3>
+<a name="idp10976752"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -195,7 +122,6 @@ src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gst
 <a name="GstGioStreamSrc-struct"></a><h3>struct GstGioStreamSrc</h3>
 <pre class="programlisting">struct GstGioStreamSrc;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -210,6 +136,6 @@ Opaque data structure.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4e4e06d..4650667 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gnomevfssink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
 <link rel="next" href="gst-plugins-base-plugins-gnomevfssrc.html" title="gnomevfssrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -80,55 +80,10 @@ GstGnomeVFSSink implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-gnomevfssink.description"></a><h2>Description</h2>
-<p>
-This plugin writes incoming data to a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GnomeVFS library. Common protocols are 'file', 'ftp', or 'smb'.
-</p>
-<p>
-Applications can connect to the <a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite" title='The "allow-overwrite" signal'><span class="type">"allow-overwrite"</span></a> signal to
-receive a callback when an existing file will be overwritten. The return
-value of the signal will determine if gnomevfssink will overwrite the
-resource or abort with an error.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11679088"></a><h3>Example launch lines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>input<span class="gtkdoc opt">.</span>xyz <span class="gtkdoc opt">!</span> gnomevfssink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/out.xyz</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will simply copy a local file. Instead of gnomevfssink,
-we could just as well have used the filesink element here.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mad <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> gnomevfssink location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.flac</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will re-encode an mp3 file into FLAC format and store
-it on a remote host using the Samba protocol.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-02-28 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11683472"></a><h3>Element Information</h3>
+<a name="idp11435584"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -151,7 +106,7 @@ Last reviewed on 2006-02-28 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11690928"></a><h3>Element Pads</h3>
+<a name="idp11710784"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -184,7 +139,6 @@ Last reviewed on 2006-02-28 (0.10.4)
 <a name="GstGnomeVFSSink-struct"></a><h3>struct GstGnomeVFSSink</h3>
 <pre class="programlisting">struct GstGnomeVFSSink;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -213,44 +167,29 @@ Opaque data structure.
 <a name="gst-plugins-base-plugins-gnomevfssink.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstGnomeVFSSink-allow-overwrite"></a><h3>The <code class="literal">"allow-overwrite"</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a> *sink,
-                                                        <a href="/usr/share/gtk-doc/html/gnome-vfs-2.0/gnome-vfs-2.0-gnome-vfs-uri.html#GnomeVFSURI"><span class="type">GnomeVFSURI</span></a>     *uri,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)      : Cleanup</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a> *gstgnomevfssink,
+                                                        <a href="/usr/share/gtk-doc/html/gnome-vfs-2.0/gnome-vfs-2.0-gnome-vfs-uri.html#GnomeVFSURI"><span class="type">GnomeVFSURI</span></a>     *arg1,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)            : Cleanup</pre>
 <p>
-This signal is fired when gnomevfssink is about to overwrite an
-existing resource. The application can connect to this signal and ask
-the user if the resource may be overwritten.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
-<td>the object which received the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
-<td>the URI to be overwritten</td>
+<td><p><span class="term"><em class="parameter"><code>gstgnomevfssink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A boolean indicating that the resource may be overwritten.</td>
-</tr>
 </tbody>
 </table></div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-gnomevfssink.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc"><span class="type">GstGnomeVFSSrc</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 2aed424..cd00f05 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gnomevfssrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-gnomevfssink.html" title="gnomevfssink">
 <link rel="next" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -77,70 +77,10 @@ GstGnomeVFSSrc implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-gnomevfssrc.description"></a><h2>Description</h2>
-<p>
-This plugin reads data from a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GnomeVFS library. Common protocols are 'file', 'http', 'ftp', or 'smb'.
-</p>
-<p>
-In case the <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-mode" title='The "iradio-mode" property'><span class="type">"iradio-mode"</span></a> property is set and the
-location is a http resource, gnomevfssrc will send special icecast http
-headers to the server to request additional icecast metainformation. If
-the server is not an icecast server, it will display the same behaviour
-as if the <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-mode" title='The "iradio-mode" property'><span class="type">"iradio-mode"</span></a> property was not set. However,
-if the server is in fact an icecast server, gnomevfssrc will output
-data with a media type of application/x-icy, in which case you will
-need to use the <span class="type">GstICYDemux</span> element as follow-up element to extract
-the icecast meta data and to determine the underlying media type.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11778080"></a><h3>Example launch lines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v gnomevfssrc location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/foo.xyz ! fakesink</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will simply read a local file and do nothing with the
-data read. Instead of gnomevfssrc, we could just as well have used the
-filesrc element here.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v gnomevfssrc location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.xyz ! filesink location=/home/joe/foo.xyz</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will copy a file from a remote host to the local file
-system using the Samba protocol.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v gnomevfssrc location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//music.foobar.com/demo.mp3 ! mad ! audioconvert ! audioresample ! alsasink</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- The above pipeline will read and decode and play an mp3 file from a
-web server using the http protocol.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11782928"></a><h3>Element Information</h3>
+<a name="idp11375920"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -163,7 +103,7 @@ web server using the http protocol.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11790448"></a><h3>Element Pads</h3>
+<a name="idp11650544"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,7 +136,6 @@ web server using the http protocol.
 <a name="GstGnomeVFSSrc-struct"></a><h3>struct GstGnomeVFSSrc</h3>
 <pre class="programlisting">struct GstGnomeVFSSrc;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -257,13 +196,9 @@ Opaque data structure.
 <p>Default value: FALSE</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-gnomevfssrc.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 88709d2..b68b22a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multifdsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-gnomevfssrc.html" title="gnomevfssrc">
 <link rel="next" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,22 +68,22 @@ enum                <a class="link" href="gst-plugins-base-plugins-multifdsink.h
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-max" title='The "buffers-max" property'>buffers-max</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-queued" title='The "buffers-queued" property'>buffers-queued</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-soft-max" title='The "buffers-soft-max" property'>buffers-soft-max</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served" title='The "bytes-served" property'>bytes-served</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve" title='The "bytes-to-serve" property'>bytes-to-serve</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served" title='The "bytes-served" property'>bytes-served</a>"             <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve" title='The "bytes-to-serve" property'>bytes-to-serve</a>"           <span class="type">guint64</span>               : Read
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--mode" title='The "mode" property'>mode</a>"                     <span class="type">GstFDSetMode</span>          : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--protocol" title='The "protocol" property'>protocol</a>"                 <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol" title="enum GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy" title='The "recover-policy" property'>recover-policy</a>"           <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy" title="enum GstRecoverPolicy"><span class="type">GstRecoverPolicy</span></a>      : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-clients" title='The "sync-clients" property'>sync-clients</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method" title='The "sync-method" property'>sync-method</a>"              <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod"><span class="type">GstSyncMethod</span></a>         : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout" title='The "timeout" property'>timeout</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout" title='The "timeout" property'>timeout</a>"                  <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-min" title='The "buffers-min" property'>buffers-min</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-unit" title='The "burst-unit" property'>burst-unit</a>"               <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>        : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value" title='The "burst-value" property'>burst-value</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value" title='The "burst-value" property'>burst-value</a>"              <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min" title='The "bytes-min" property'>bytes-min</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'>time-min</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'>time-min</a>"                 <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--unit-type" title='The "unit-type" property'>unit-type</a>"                <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>        : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max" title='The "units-max" property'>units-max</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max" title='The "units-soft-max" property'>units-soft-max</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max" title='The "units-max" property'>units-max</a>"                <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max" title='The "units-soft-max" property'>units-soft-max</a>"           <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--qos-dscp" title='The "qos-dscp" property'>qos-dscp</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--handle-read" title='The "handle-read" property'>handle-read</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--resend-streamheader" title='The "resend-streamheader" property'>resend-streamheader</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -157,7 +157,7 @@ prefer a minimum burst size even if it requires not starting with a keyframe.
 </p>
 <p>
 Multifdsink can be instructed to keep at least a minimum amount of data
-expressed in time or byte units in its internal queues with the the 
+expressed in time or byte units in its internal queues with the 
 <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'><span class="type">"time-min"</span></a> and <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min" title='The "bytes-min" property'><span class="type">"bytes-min"</span></a> properties respectively.
 These properties are useful if the application adds clients with the 
 <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full" title='The "add-full" signal'><span class="type">"add-full"</span></a> signal to make sure that a burst connect can
@@ -194,7 +194,7 @@ Last reviewed on 2006-09-12 (0.10.10)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12152560"></a><h3>Element Information</h3>
+<a name="idp12022864"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -217,7 +217,7 @@ Last reviewed on 2006-09-12 (0.10.10)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12159968"></a><h3>Element Pads</h3>
+<a name="idp12030272"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -256,8 +256,7 @@ The multifdsink object structure.
 <hr>
 <div class="refsect2">
 <a name="GstRecoverPolicy"></a><h3>enum GstRecoverPolicy</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_RECOVER_POLICY_NONE,
   GST_RECOVER_POLICY_RESYNC_LATEST,
   GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT,
@@ -297,8 +296,7 @@ data too slow and has a backlag of more that soft-limit buffers.
 <hr>
 <div class="refsect2">
 <a name="GstSyncMethod"></a><h3>enum GstSyncMethod</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_SYNC_METHOD_LATEST,
   GST_SYNC_METHOD_NEXT_KEYFRAME,
   GST_SYNC_METHOD_LATEST_KEYFRAME,
@@ -353,8 +351,7 @@ to a new client.
 <hr>
 <div class="refsect2">
 <a name="GstClientStatus"></a><h3>enum GstClientStatus</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_CLIENT_STATUS_OK          = 0,
   GST_CLIENT_STATUS_CLOSED      = 1,
   GST_CLIENT_STATUS_REMOVED     = 2,
@@ -412,8 +409,7 @@ multifdsink and is received in the "client-removed" signal.
 <hr>
 <div class="refsect2">
 <a name="GstTCPProtocol"></a><h3>enum GstTCPProtocol</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_TCP_PROTOCOL_NONE,
   GST_TCP_PROTOCOL_GDP
 } GstTCPProtocol;
@@ -449,8 +445,7 @@ must be transmitted separately, or implicit in the bytestream itself.
 <hr>
 <div class="refsect2">
 <a name="GstTCPUnitType"></a><h3>enum GstTCPUnitType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   GST_TCP_UNIT_TYPE_UNDEFINED,
   GST_TCP_UNIT_TYPE_BUFFERS,
   GST_TCP_UNIT_TYPE_TIME,
@@ -514,14 +509,14 @@ The units used to specify limits.
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--bytes-served"></a><h3>The <code class="literal">"bytes-served"</code> property</h3>
-<pre class="programlisting">  "bytes-served"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "bytes-served"             <span class="type">guint64</span>               : Read</pre>
 <p>Total number of bytes send to all clients.</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--bytes-to-serve"></a><h3>The <code class="literal">"bytes-to-serve"</code> property</h3>
-<pre class="programlisting">  "bytes-to-serve"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "bytes-to-serve"           <span class="type">guint64</span>               : Read</pre>
 <p>Number of bytes received to serve to clients.</p>
 <p>Default value: 0</p>
 </div>
@@ -563,7 +558,7 @@ The units used to specify limits.
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3>
-<pre class="programlisting">  "timeout"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "timeout"                  <span class="type">guint64</span>               : Read / Write</pre>
 <p>Maximum inactivity timeout in nanoseconds for a client (0 = no limit).</p>
 <p>Default value: 0</p>
 </div>
@@ -585,7 +580,7 @@ The units used to specify limits.
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--burst-value"></a><h3>The <code class="literal">"burst-value"</code> property</h3>
-<pre class="programlisting">  "burst-value"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "burst-value"              <span class="type">guint64</span>               : Read / Write</pre>
 <p>The amount of burst expressed in burst-unit.</p>
 <p>Default value: 0</p>
 </div>
@@ -600,7 +595,7 @@ The units used to specify limits.
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--time-min"></a><h3>The <code class="literal">"time-min"</code> property</h3>
-<pre class="programlisting">  "time-min"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "time-min"                 <span class="type">gint64</span>                : Read / Write</pre>
 <p>min number of time to queue (-1 = as little as possible).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -615,7 +610,7 @@ The units used to specify limits.
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--units-max"></a><h3>The <code class="literal">"units-max"</code> property</h3>
-<pre class="programlisting">  "units-max"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "units-max"                <span class="type">gint64</span>                : Read / Write</pre>
 <p>max number of units to queue (-1 = no limit).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -623,7 +618,7 @@ The units used to specify limits.
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--units-soft-max"></a><h3>The <code class="literal">"units-soft-max"</code> property</h3>
-<pre class="programlisting">  "units-soft-max"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "units-soft-max"           <span class="type">gint64</span>                : Read / Write</pre>
 <p>Recover client when going over this limit (-1 = no limit).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -885,9 +880,9 @@ with <em class="parameter"><code>fd</code></em>. It is however safe to <code cla
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
                                                         <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod"><span class="type">GstSyncMethod</span></a>   sync,
                                                         <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>  unit_type_min,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>         value_min,
+                                                        <span class="type">guint64</span>         value_min,
                                                         <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>  unit_type_max,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>         value_max,
+                                                        <span class="type">guint64</span>         value_max,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)           : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 Hand the given open file descriptor to multifdsink to write to and
@@ -971,6 +966,6 @@ tcpserversink
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 033b7a2..3db360e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
 <link rel="next" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggdemux.description"></a><h2>Description</h2>
-<p>
-This element demuxes ogg files into their encoded audio and video components.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9282128"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Decodes the vorbis audio stored inside an ogg container.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-12-30 (0.10.5)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7461456"></a><h3>Element Information</h3>
+<a name="idp5542432"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -103,7 +79,7 @@ Last reviewed on 2006-12-30 (0.10.5)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5045200"></a><h3>Element Pads</h3>
+<a name="idp10334672"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -161,17 +137,12 @@ Last reviewed on 2006-12-30 (0.10.5)
 <a name="GstOggDemux-struct"></a><h3>struct GstOggDemux</h3>
 <pre class="programlisting">struct GstOggDemux;</pre>
 <p>
-The ogg demuxer object structure.
 </p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-oggdemux.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">oggmux</a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 8fcad3e..7a8da6a 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
 <link rel="next" href="gst-plugins-base-plugins-playbin.html" title="playbin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,41 +64,18 @@ GstOggMux implements
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggmux.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay" title='The "max-delay" property'>max-delay</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay" title='The "max-page-delay" property'>max-page-delay</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay" title='The "max-delay" property'>max-delay</a>"                <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay" title='The "max-page-delay" property'>max-page-delay</a>"           <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance" title='The "max-tolerance" property'>max-tolerance</a>"            <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton" title='The "skeleton" property'>skeleton</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggmux.description"></a><h2>Description</h2>
-<p>
-This element merges streams (audio and video) into ogg files.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11580192"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>yuv<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">320</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">240</span> <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Encodes a video stream captured from a v4l2-compatible camera to Ogg/Theora
-(the encoding will stop automatically after 500 frames)
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2008-02-06 (0.10.17)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11578016"></a><h3>Element Information</h3>
+<a name="idp11180832"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -121,7 +98,7 @@ Last reviewed on 2008-02-06 (0.10.17)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5957200"></a><h3>Element Pads</h3>
+<a name="idp12591488"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -189,6 +166,10 @@ Last reviewed on 2008-02-06 (0.10.17)
 <td><p><span class="term"></span></p></td>
 <td> application/x-kate</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-opus</td>
+</tr>
 </tbody>
 </table></div>
 <div class="variablelist"><table border="0">
@@ -223,7 +204,6 @@ Last reviewed on 2008-02-06 (0.10.17)
 <a name="GstOggMux-struct"></a><h3>struct GstOggMux</h3>
 <pre class="programlisting">struct GstOggMux;</pre>
 <p>
-The ogg muxer object structure.
 </p>
 </div>
 </div>
@@ -231,25 +211,35 @@ The ogg muxer object structure.
 <a name="gst-plugins-base-plugins-oggmux.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstOggMux--max-delay"></a><h3>The <code class="literal">"max-delay"</code> property</h3>
-<pre class="programlisting">  "max-delay"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-delay"                <span class="type">guint64</span>               : Read / Write</pre>
 <p>Maximum delay in multiplexing streams.</p>
 <p>Default value: 500000000</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstOggMux--max-page-delay"></a><h3>The <code class="literal">"max-page-delay"</code> property</h3>
-<pre class="programlisting">  "max-page-delay"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-page-delay"           <span class="type">guint64</span>               : Read / Write</pre>
 <p>Maximum delay for sending out a page.</p>
 <p>Default value: 500000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstOggMux--max-tolerance"></a><h3>The <code class="literal">"max-tolerance"</code> property</h3>
+<pre class="programlisting">  "max-tolerance"            <span class="type">guint64</span>               : Read / Write</pre>
+<p>Maximum timestamp difference for maintaining perfect granules.</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOggMux--skeleton"></a><h3>The <code class="literal">"skeleton"</code> property</h3>
+<pre class="programlisting">  "skeleton"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Whether to include a Skeleton track.</p>
+<p>Default value: FALSE</p>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-oggmux.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">oggdemux</a>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a6ca596..a2c250e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playbin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
 <link rel="next" href="gst-plugins-base-plugins-playbin2.html" title="playbin2">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -126,7 +126,7 @@ volume control
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12073328"></a><h3>Usage</h3>
+<a name="idp12513120"></a><h3>Usage</h3>
 <p>
 A playbin element can be created just like any other element using
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make"><code class="function">gst_element_factory_make()</code></a>. The file/URI to play should be set via the <span class="type">"uri"</span>
@@ -174,7 +174,7 @@ the duration or position will have been returned in units of nanoseconds.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp12645456"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="idp12529232"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
 <p>
 By default, if no audio sink or video sink has been specified via the
 <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink" title='The "audio-sink" property'><span class="type">"audio-sink"</span></a> or <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-sink" title='The "video-sink" property'><span class="type">"video-sink"</span></a> property, playbin will use
@@ -194,7 +194,7 @@ using <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreame
 GNOME-based applications, for example, will usually want to create
 gconfaudiosink and gconfvideosink elements and make playbin use those,
 so that output happens to whatever the user has configured in the GNOME
-Multimedia System Selector confinguration dialog.
+Multimedia System Selector configuration dialog.
 </p>
 <p>
 The sink elements do not necessarily need to be ready-made sinks. It is
@@ -216,7 +216,7 @@ It is also possible to 'suppress' audio and/or video output by using
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp12656016"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="idp12539792"></a><h3>Retrieving Tags and Other Meta Data</h3>
 <p>
 Most of the common meta data (artist, title, etc.) can be retrieved by
 watching for TAG messages on the pipeline's bus (see above).
@@ -250,7 +250,7 @@ not contain all available information (like language-codes).
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp12665680"></a><h3>Buffering</h3>
+<a name="idp12549456"></a><h3>Buffering</h3>
 Playbin handles buffering automatically for the most part, but applications
 need to handle parts of the buffering process as well. Whenever playbin is
 buffering, it will post BUFFERING messages on the bus with a percentage
@@ -295,7 +295,7 @@ of 100 percent is received (if PLAYING is the desired state, that is).
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp12668448"></a><h3>Embedding the video window in your application</h3>
+<a name="idp12552224"></a><h3>Embedding the video window in your application</h3>
 By default, playbin (or rather the video sinks used) will create their own
 window. Applications will usually want to force output to a window of their
 own, however. This can be done using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> interface, which most
@@ -305,7 +305,7 @@ video sinks implement. See the documentation there for more details.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp12670416"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="idp12554192"></a><h3>Specifying which CD/DVD device to use</h3>
 The device to use for CDs/DVDs needs to be set on the source element
 playbin creates before it is opened. The only way to do this at the moment
 is to connect to playbin's "notify::source" signal, which will be emitted
@@ -319,7 +319,7 @@ possible yet.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp12671840"></a><h3>Examples</h3>
+<a name="idp12555616"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -365,7 +365,7 @@ the drive is detected automatically by the plugin).
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12676736"></a><h3>Element Information</h3>
+<a name="idp12560512"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -388,7 +388,7 @@ the drive is detected automatically by the plugin).
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12684192"></a><h3>Element Pads</h3>
+<a name="idp12567968"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
@@ -458,6 +458,6 @@ Get or set the current audio stream volume. 1.0 means 100%,
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a24f955..7b3bc10 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playbin2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-playbin.html" title="playbin">
 <link rel="next" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -88,12 +88,12 @@ GstPlayBin2 implements
   "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--vis-plugin" title='The "vis-plugin" property'>vis-plugin</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--volume" title='The "volume" property'>volume</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--mute" title='The "mute" property'>mute</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>"          <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-size" title='The "buffer-size" property'>buffer-size</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--text-sink" title='The "text-sink" property'>text-sink</a>"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subpic-sink" title='The "subpic-sink" property'>subpic-sink</a>"              <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--av-offset" title='The "av-offset" property'>av-offset</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--av-offset" title='The "av-offset" property'>av-offset</a>"                <span class="type">gint64</span>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>"     <span class="type">guint64</span>               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -162,7 +162,7 @@ volume control with mute option
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12984144"></a><h3>Usage</h3>
+<a name="idp12868672"></a><h3>Usage</h3>
 <p>
 A playbin2 element can be created just like any other element using
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make"><code class="function">gst_element_factory_make()</code></a>. The file/URI to play should be set via the <a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--uri" title='The "uri" property'><span class="type">"uri"</span></a>
@@ -210,7 +210,7 @@ the duration or position will have been returned in units of nanoseconds.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13000256"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="idp12884784"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
 <p>
 By default, if no audio sink or video sink has been specified via the
 <a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--audio-sink" title='The "audio-sink" property'><span class="type">"audio-sink"</span></a> or <a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--video-sink" title='The "video-sink" property'><span class="type">"video-sink"</span></a> property, playbin will use the autoaudiosink
@@ -251,7 +251,7 @@ It is also possible to 'suppress' audio and/or video output by using
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13010816"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="idp12895344"></a><h3>Retrieving Tags and Other Meta Data</h3>
 <p>
 Most of the common meta data (artist, title, etc.) can be retrieved by
 watching for TAG messages on the pipeline's bus (see above).
@@ -266,7 +266,7 @@ from the negotiated caps on the sink pads of the sinks.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13012928"></a><h3>Buffering</h3>
+<a name="idp12897456"></a><h3>Buffering</h3>
 Playbin handles buffering automatically for the most part, but applications
 need to handle parts of the buffering process as well. Whenever playbin is
 buffering, it will post BUFFERING messages on the bus with a percentage
@@ -311,7 +311,7 @@ of 100 percent is received (if PLAYING is the desired state, that is).
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13015696"></a><h3>Embedding the video window in your application</h3>
+<a name="idp12900224"></a><h3>Embedding the video window in your application</h3>
 By default, playbin (or rather the video sinks used) will create their own
 window. Applications will usually want to force output to a window of their
 own, however. This can be done using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> interface, which most
@@ -321,7 +321,7 @@ video sinks implement. See the documentation there for more details.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13017664"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="idp12902192"></a><h3>Specifying which CD/DVD device to use</h3>
 The device to use for CDs/DVDs needs to be set on the source element
 playbin creates before it is opened. The only way to do this at the moment
 is to connect to playbin's "notify::source" signal, which will be emitted
@@ -335,7 +335,7 @@ possible yet.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13019088"></a><h3>Handling redirects</h3>
+<a name="idp12903616"></a><h3>Handling redirects</h3>
 <p>
 Some elements may post 'redirect' messages on the bus to tell the
 application to open another location. These are element messages containing
@@ -348,7 +348,7 @@ for such redirects can be found in many quicktime movie trailers.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13020768"></a><h3>Examples</h3>
+<a name="idp12905296"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -394,7 +394,7 @@ the drive is detected automatically by the plugin).
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13025664"></a><h3>Element Information</h3>
+<a name="idp12910192"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -417,7 +417,7 @@ the drive is detected automatically by the plugin).
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13033120"></a><h3>Element Pads</h3>
+<a name="idp12917648"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
@@ -505,7 +505,7 @@ Extra flags to configure the behaviour of the sinks.
 </tr>
 <tr>
 <td><p><a name="GST-PLAY-FLAG-DEINTERLACE:CAPS"></a><span class="term"><code class="literal">GST_PLAY_FLAG_DEINTERLACE</code></span></p></td>
-<td>
+<td>deinterlace raw video (if native not forced).
 </td>
 </tr>
 </tbody>
@@ -681,7 +681,7 @@ Get or set the current audio stream volume. 1.0 means 100%,
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin2--buffer-duration"></a><h3>The <code class="literal">"buffer-duration"</code> property</h3>
-<pre class="programlisting">  "buffer-duration"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "buffer-duration"          <span class="type">gint64</span>                : Read / Write</pre>
 <p>Buffer duration when buffering network streams.</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -709,7 +709,7 @@ Get or set the current audio stream volume. 1.0 means 100%,
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin2--av-offset"></a><h3>The <code class="literal">"av-offset"</code> property</h3>
-<pre class="programlisting">  "av-offset"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "av-offset"                <span class="type">gint64</span>                : Read / Write</pre>
 <p>
 Control the synchronisation offset between the audio and video streams.
 Positive values make the audio ahead of the video and negative values make
@@ -721,7 +721,7 @@ the audio go behind the video.
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin2--ring-buffer-max-size"></a><h3>The <code class="literal">"ring-buffer-max-size"</code> property</h3>
-<pre class="programlisting">  "ring-buffer-max-size"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "ring-buffer-max-size"     <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).</p>
 <p>Allowed values: &lt;= G_MAXUINT</p>
 <p>Default value: 0</p>
@@ -737,6 +737,9 @@ the audio go behind the video.
 This signal is emitted when the current uri is about to finish. You can
 set the uri and suburi to make sure that playback continues.
 </p>
+<p>
+This signal is emitted from the context of a GStreamer streaming thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -762,6 +765,11 @@ This signal is emitted whenever the number or order of the audio
 streams has changed. The application will most likely want to select
 a new audio stream.
 </p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -889,6 +897,11 @@ This signal is emitted whenever the number or order of the text
 streams has changed. The application will most likely want to select
 a new text stream.
 </p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -914,6 +927,11 @@ This signal is emitted whenever the number or order of the video
 streams has changed. The application will most likely want to select
 a new video stream.
 </p>
+<p>
+This signal is usually emitted from the context of a GStreamer streaming
+thread. You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a> to notify your application's main thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1082,6 +1100,11 @@ queries, etc.
 This signal is emitted whenever the tags of an audio stream have changed.
 The application will most likely want to get the new tags.
 </p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1112,6 +1135,11 @@ The application will most likely want to get the new tags.
 This signal is emitted whenever the tags of a text stream have changed.
 The application will most likely want to get the new tags.
 </p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1142,6 +1170,11 @@ The application will most likely want to get the new tags.
 This signal is emitted whenever the tags of a video stream have changed.
 The application will most likely want to get the new tags.
 </p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1175,6 +1208,10 @@ proxy server for an http source, or set the device and read speed for
 an audio cd source). This is functionally equivalent to connecting to
 the notify::source signal, but more convenient.
 </p>
+<p>
+This signal is usually emitted from the context of a GStreamer streaming
+thread.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1199,6 +1236,6 @@ the notify::source signal, but more convenient.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index ff408c6..62a8b5b 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>adder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="next" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8294576"></a><h2>Plugin Information</h2>
+<a name="idp6428928"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp5749424"></a><h2>Elements</h2>
+<a name="idp10987712"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6050f3a..3225d0d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsa</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
 <link rel="next" href="gst-plugins-base-plugins-plugin-app.html" title="app">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6528528"></a><h2>Plugin Information</h2>
+<a name="idp9220992"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8130880"></a><h2>Elements</h2>
+<a name="idp8408640"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -79,6 +79,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 73f87be..ccb5b1d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>app</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6127824"></a><h2>Plugin Information</h2>
+<a name="idp15141376"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp9149616"></a><h2>Elements</h2>
+<a name="idp6217712"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6bff30a..5cd839e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-app.html" title="app">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8094640"></a><h2>Plugin Information</h2>
+<a name="idp9970512"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8442608"></a><h2>Elements</h2>
+<a name="idp7583488"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 4da7b34..6eff101 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp14561424"></a><h2>Plugin Information</h2>
+<a name="idp14376464"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6029648"></a><h2>Elements</h2>
+<a name="idp8473504"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index be805f6..42d79b0 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioresample</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idm25472"></a><h2>Plugin Information</h2>
+<a name="idp7277344"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp12711808"></a><h2>Elements</h2>
+<a name="idp12304240"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 99a6712..5245cf6 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
 <link rel="next" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7343456"></a><h2>Plugin Information</h2>
+<a name="idp15930976"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8707632"></a><h2>Elements</h2>
+<a name="idp8970336"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6a5c696..2e428e1 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cdparanoia</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-plugin-decodebin.html" title="decodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9336624"></a><h2>Plugin Information</h2>
+<a name="idp5176816"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8273648"></a><h2>Elements</h2>
+<a name="idp6853184"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 62f74a9..78c0791 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>decodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
 <link rel="next" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5735824"></a><h2>Plugin Information</h2>
+<a name="idp8430448"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8621248"></a><h2>Elements</h2>
+<a name="idp7269712"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 2ad18c6..79cba84 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encoding</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-decodebin.html" title="decodebin">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ffmpegcolorspace.html" title="ffmpegcolorspace">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7739760"></a><h2>Plugin Information</h2>
+<a name="idp8637504"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8108432"></a><h2>Elements</h2>
+<a name="idp10346768"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5b0f6ba..324bc8b 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ffmpegcolorspace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
 <link rel="next" href="gst-plugins-base-plugins-plugin-gdp.html" title="gdp">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16271712"></a><h2>Plugin Information</h2>
+<a name="idp11638096"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6076912"></a><h2>Elements</h2>
+<a name="idp6116416"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index f285126..246dd1d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gdp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ffmpegcolorspace.html" title="ffmpegcolorspace">
 <link rel="next" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8562992"></a><h2>Plugin Information</h2>
+<a name="idp7966320"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp5366064"></a><h2>Elements</h2>
+<a name="idp16077520"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a99ae5d..1bcc02e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-gdp.html" title="gdp">
 <link rel="next" href="gst-plugins-base-plugins-plugin-gnomevfs.html" title="gnomevfs">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7725616"></a><h2>Plugin Information</h2>
+<a name="idp9321920"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6810832"></a><h2>Elements</h2>
+<a name="idp5524544"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -83,6 +83,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b2f8ad6..70aa4f1 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gnomevfs</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
 <link rel="next" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp14961248"></a><h2>Plugin Information</h2>
+<a name="idp7354448"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp9482832"></a><h2>Elements</h2>
+<a name="idp9542624"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index cb8892e..771fe69 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>libvisual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-gnomevfs.html" title="gnomevfs">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6167328"></a><h2>Plugin Information</h2>
+<a name="idp16037392"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8874960"></a><h2>Elements</h2>
+<a name="idp5572320"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -99,6 +99,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index db58700..1a0929d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ogg</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
 <link rel="next" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16462400"></a><h2>Plugin Information</h2>
+<a name="idp16099872"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7521472"></a><h2>Elements</h2>
+<a name="idp9034736"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -95,6 +95,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index eb48a77..538ddc2 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pango</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
 <link rel="next" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8146592"></a><h2>Plugin Information</h2>
+<a name="idp7183568"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp5808768"></a><h2>Elements</h2>
+<a name="idp5326304"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -83,6 +83,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 0ef60f8..370cfb0 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playback</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
 <link rel="next" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16046368"></a><h2>Plugin Information</h2>
+<a name="idp16287072"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8533136"></a><h2>Elements</h2>
+<a name="idp6584032"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -83,6 +83,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 23e173a..7a6463c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
 <link rel="next" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6770112"></a><h2>Plugin Information</h2>
+<a name="idp7311728"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8992688"></a><h2>Elements</h2>
+<a name="idp5266736"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 09d0172..11b9ffe 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
 <link rel="next" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16445120"></a><h2>Plugin Information</h2>
+<a name="idp7637664"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp10588800"></a><h2>Elements</h2>
+<a name="idp16358640"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -87,6 +87,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 427589e..553ab71 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theora</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
 <link rel="next" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16198832"></a><h2>Plugin Information</h2>
+<a name="idp15169152"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8049072"></a><h2>Elements</h2>
+<a name="idp5440976"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -79,6 +79,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 0044a28..da9b103 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>typefindfunctions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
 <link rel="next" href="gst-plugins-base-plugins-plugin-uridecodebin.html" title="uridecodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16039248"></a><h2>Plugin Information</h2>
+<a name="idp16426512"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp9383744"></a><h2>Elements</h2>
+<a name="idp7759600"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody></tbody>
@@ -66,6 +66,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 279c7ed..9a730d3 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>uridecodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
 <link rel="next" href="gst-plugins-base-plugins-plugin-video4linux.html" title="video4linux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16533040"></a><h2>Plugin Information</h2>
+<a name="idp9920768"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6063392"></a><h2>Elements</h2>
+<a name="idp8033104"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 25dd48b..2b029e6 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>video4linux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-uridecodebin.html" title="uridecodebin">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6035936"></a><h2>Plugin Information</h2>
+<a name="idp11863936"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp15400144"></a><h2>Elements</h2>
+<a name="idp6493568"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index a3b4760..3fba12e 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-video4linux.html" title="video4linux">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8324784"></a><h2>Plugin Information</h2>
+<a name="idp10356032"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7228832"></a><h2>Elements</h2>
+<a name="idp5189344"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index b024ff1..f2bed76 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoscale</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp12451216"></a><h2>Plugin Information</h2>
+<a name="idp12241040"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp16181488"></a><h2>Elements</h2>
+<a name="idp11543760"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 964d1b6..5b2bb51 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
 <link rel="next" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7477376"></a><h2>Plugin Information</h2>
+<a name="idp7159872"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6038720"></a><h2>Elements</h2>
+<a name="idp6887056"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index af78900..8c11d7d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>volume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8681392"></a><h2>Plugin Information</h2>
+<a name="idp7669376"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7634480"></a><h2>Elements</h2>
+<a name="idp16106912"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 9e71804..728ebee 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7065984"></a><h2>Plugin Information</h2>
+<a name="idp6354512"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7763488"></a><h2>Elements</h2>
+<a name="idp8507344"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -83,6 +83,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5305152..c1d8b69 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
 <link rel="next" href="gst-plugins-base-plugins-plugin-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6557920"></a><h2>Plugin Information</h2>
+<a name="idp8142960"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp9465568"></a><h2>Elements</h2>
+<a name="idp8670048"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 6f50a3d..b08d8f0 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>xvimagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
 <link rel="next" href="ch03.html" title="gst-plugins-base Classes">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -29,7 +29,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5695120"></a><h2>Plugin Information</h2>
+<a name="idp5203920"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +39,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,7 +57,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6376944"></a><h2>Elements</h2>
+<a name="idp6635296"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
@@ -69,6 +69,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 65220f2..3989712 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subtitleoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-playbin2.html" title="playbin2">
 <link rel="next" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,7 +83,7 @@ DVD subpicture subtitles.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7086800"></a><h3>Examples</h3>
+<a name="idp9764400"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,7 +101,7 @@ DVD subpicture subtitles.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10635408"></a><h3>Element Information</h3>
+<a name="idp6545120"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -124,7 +124,7 @@ DVD subpicture subtitles.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12392960"></a><h3>Element Pads</h3>
+<a name="idp13490496"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -228,6 +228,6 @@ DVD subpicture subtitles.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index fb99897..fbe2ef7 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpclientsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
 <link rel="next" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13183280"></a><h3>Example launch line</h3>
+<a name="idp13086320"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -91,7 +91,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12497712"></a><h3>Element Information</h3>
+<a name="idp13088944"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -114,7 +114,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12505120"></a><h3>Element Pads</h3>
+<a name="idp13063600"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -181,6 +181,6 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 97ffb22..e0a43cd 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpclientsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
 <link rel="next" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12521392"></a><h3>Example launch line</h3>
+<a name="idp11884512"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,7 +92,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc protocol<span class="gtk
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12524112"></a><h3>Element Information</h3>
+<a name="idp11887184"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -115,7 +115,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc protocol<span class="gtk
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12440048"></a><h3>Element Pads</h3>
+<a name="idp11894592"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -182,6 +182,6 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc protocol<span class="gtk
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 83b798f..4ce4ead 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpserversink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
 <link rel="next" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -67,7 +67,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13281472"></a><h3>Example launch line</h3>
+<a name="idp13217536"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -91,7 +91,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc protocol<span class="gtk
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13284224"></a><h3>Element Information</h3>
+<a name="idp13220288"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -114,7 +114,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc protocol<span class="gtk
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13291632"></a><h3>Element Pads</h3>
+<a name="idp13227696"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -175,6 +175,6 @@ Opaque data structure.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e67600e..fe65666 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpserversrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
 <link rel="next" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -68,7 +68,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13211120"></a><h3>Example launch line</h3>
+<a name="idp12360272"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,7 +92,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13213920"></a><h3>Element Information</h3>
+<a name="idp12363072"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -115,7 +115,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12573296"></a><h3>Element Pads</h3>
+<a name="idp12370480"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -182,6 +182,6 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index d058883..75f18e4 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>textoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
 <link rel="next" href="gst-plugins-base-plugins-textrender.html" title="textrender">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -54,8 +54,8 @@ enum                <a class="link" href="gst-plugins-base-plugins-textoverlay.h
    +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
          +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                +----GstTextOverlay
-                     +----<a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay">GstTimeOverlay</a>
                      +----<a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay">GstClockOverlay</a>
+                     +----<a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay">GstTimeOverlay</a>
 </pre>
 </div>
 <div class="refsect1">
@@ -81,99 +81,16 @@ enum                <a class="link" href="gst-plugins-base-plugins-textoverlay.h
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color" title='The "color" property'>color</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos" title='The "xpos" property'>xpos</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos" title='The "ypos" property'>ypos</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--outline-color" title='The "outline-color" property'>outline-color</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shadow" title='The "shadow" property'>shadow</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textoverlay.description"></a><h2>Description</h2>
-<p>
-This plugin renders text on top of a video stream. This can be either
-static text or text from buffers received on the text sink pad, e.g.
-as produced by the subparse element. If the text sink pad is not linked,
-the text set via the "text" property will be rendered. If the text sink
-pad is linked, text will be rendered as it is received on that pad,
-honouring and matching the buffer timestamps of both input streams.
-</p>
-<p>
-The text can contain newline characters and text wrapping is enabled by
-default.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp13316752"></a><h3>Example launch lines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> textoverlay text<span class="gtkdoc opt">=</span><span class="string">&quot;Room A&quot;</span> valign<span class="gtkdoc opt">=</span>top halign<span class="gtkdoc opt">=</span>left <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Here is a simple pipeline that displays a static text in the top left
-corner of the video picture
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>subtitles<span class="gtkdoc opt">.</span>srt <span class="gtkdoc opt">!</span> subparse <span class="gtkdoc opt">!</span> txt<span class="gtkdoc opt">.</span>   videotestsrc <span class="gtkdoc opt">!</span> timeoverlay <span class="gtkdoc opt">!</span> textoverlay name<span class="gtkdoc opt">=</span>txt shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span>yes <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Here is another pipeline that displays subtitles from an .srt subtitle
-file, centered at the bottom of the picture and with a rectangular shading
-around the text in the background:
-<p>
-If you do not have such a subtitle file, create one looking like this
-in a text editor:
-</p>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="number">1</span>
-<span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">03</span><span class="gtkdoc opt">,</span><span class="number">000</span> <span class="gtkdoc opt">--&gt;</span> <span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">05</span><span class="gtkdoc opt">,</span><span class="number">000</span>
-Hello? <span class="gtkdoc opt">(</span><span class="number">3</span><span class="gtkdoc opt">-</span><span class="number">5</span>s<span class="gtkdoc opt">)</span>
-
-<span class="number">2</span>
-<span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">08</span><span class="gtkdoc opt">,</span><span class="number">000</span> <span class="gtkdoc opt">--&gt;</span> <span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">13</span><span class="gtkdoc opt">,</span><span class="number">000</span>
-Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subtitle<span class="gtkdoc opt">.</span> Don<span class="string">'t</span>
-<span class="string">you like it? (8-13s)</span>
-<span class="string"></span>
-<span class="string">3</span>
-<span class="string">00:00:18,826 --&gt; 00:01:02,886</span>
-<span class="string">Uh? What are you talking about?</span>
-<span class="string">I don'</span>t <span class="function">understand</span>  <span class="gtkdoc opt">(</span><span class="number">18</span><span class="gtkdoc opt">-</span><span class="number">62</span>s<span class="gtkdoc opt">)</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6601408"></a><h3>Element Information</h3>
+<a name="idp13778336"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,7 +113,7 @@ Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subt
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9587280"></a><h3>Element Pads</h3>
+<a name="idp12277856"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -243,6 +160,14 @@ Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subt
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
@@ -271,7 +196,11 @@ Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subt
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -296,6 +225,14 @@ Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subt
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
@@ -324,7 +261,11 @@ Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subt
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -339,7 +280,6 @@ Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subt
 <a name="GstTextOverlay-struct"></a><h3>struct GstTextOverlay</h3>
 <pre class="programlisting">struct GstTextOverlay;</pre>
 <p>
-Opaque textoverlay object structure
 </p>
 </div>
 <hr>
@@ -354,38 +294,7 @@ Opaque textoverlay object structure
 } GstTextOverlayVAlign;
 </pre>
 <p>
-Vertical alignment of the text.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_BASELINE</code></span></p></td>
-<td>draw text on the baseline
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_BOTTOM</code></span></p></td>
-<td>draw text on the bottom
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-TOP:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_TOP</code></span></p></td>
-<td>draw text on top
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-POS:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_POS</code></span></p></td>
-<td>draw text according to the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos" title='The "ypos" property'><span class="type">"ypos"</span></a> property
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_CENTER</code></span></p></td>
-<td>draw text vertically centered
-</td>
-</tr>
-</tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -399,38 +308,7 @@ Vertical alignment of the text.
 } GstTextOverlayHAlign;
 </pre>
 <p>
-Horizontal alignment of the text.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_LEFT</code></span></p></td>
-<td>align text left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_CENTER</code></span></p></td>
-<td>align text center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_RIGHT</code></span></p></td>
-<td>align text right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_UNUSED</code></span></p></td>
-<td>
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-POS:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_POS</code></span></p></td>
-<td>position text according to the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos" title='The "xpos" property'><span class="type">"xpos"</span></a> property
-</td>
-</tr>
-</tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -443,33 +321,7 @@ Horizontal alignment of the text.
 } GstTextOverlayWrapMode;
 </pre>
 <p>
-Whether to wrap the text and if so how.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_NONE</code></span></p></td>
-<td>no wrapping
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_WORD</code></span></p></td>
-<td>do word wrapping
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_CHAR</code></span></p></td>
-<td>do char wrapping
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR</code></span></p></td>
-<td>do word and char wrapping
-</td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 <div class="refsect1">
@@ -563,34 +415,22 @@ Whether to wrap the text and if so how.
 <div class="refsect2">
 <a name="GstTextOverlay--line-alignment"></a><h3>The <code class="literal">"line-alignment"</code> property</h3>
 <pre class="programlisting">  "line-alignment"           <span class="type">GstTextOverlayLineAlign</span>  : Read / Write</pre>
-<p>
-Alignment of text lines relative to each other (for multi-line text)
-</p>
+<p>Alignment of text lines relative to each other.</p>
 <p>Default value: center</p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
 <pre class="programlisting">  "silent"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-If set, no text is rendered. Useful to switch off text rendering
-temporarily without removing the textoverlay element from the pipeline.
-</p>
+<p>Whether to render the text string.</p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--wait-text"></a><h3>The <code class="literal">"wait-text"</code> property</h3>
 <pre class="programlisting">  "wait-text"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-If set, the video will block until a subtitle is received on the text pad.
-If video and subtitles are sent in sync, like from the same demuxer, this
-property should be set.
-</p>
+<p>Whether to wait for subtitles.</p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -610,42 +450,43 @@ property should be set.
 <div class="refsect2">
 <a name="GstTextOverlay--color"></a><h3>The <code class="literal">"color"</code> property</h3>
 <pre class="programlisting">  "color"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
-<p>
-Color of the rendered text.
-</p>
+<p>Color to use for text (big-endian ARGB).</p>
 <p>Default value: 4294967295</p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--xpos"></a><h3>The <code class="literal">"xpos"</code> property</h3>
 <pre class="programlisting">  "xpos"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
-<p>
-Horizontal position of the rendered text when using positioned alignment.
-</p>
+<p>Horizontal position when using position alignment.</p>
 <p>Allowed values: [0,1]</p>
 <p>Default value: 0.5</p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--ypos"></a><h3>The <code class="literal">"ypos"</code> property</h3>
 <pre class="programlisting">  "ypos"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
-<p>
-Vertical position of the rendered text when using positioned alignment.
-</p>
+<p>Vertical position when using position alignment.</p>
 <p>Allowed values: [0,1]</p>
 <p>Default value: 0.5</p>
-<p class="since">Since 0.10.31</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstTextOverlay--outline-color"></a><h3>The <code class="literal">"outline-color"</code> property</h3>
+<pre class="programlisting">  "outline-color"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>Color to use for outline the text (big-endian ARGB).</p>
+<p>Default value: 4278190080</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTextOverlay--shadow"></a><h3>The <code class="literal">"shadow"</code> property</h3>
+<pre class="programlisting">  "shadow"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Whether to create a shadow of the letters under the text.</p>
+<p>Default value: TRUE</p>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-textoverlay.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender"><span class="type">GstTextRender</span></a>, <a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay"><span class="type">GstClockOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay"><span class="type">GstTimeOverlay</span></a>, <span class="type">GstSubParse</span>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 210534b..c6b1fee 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>textrender</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
 <link rel="next" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textrender.description"></a><h2>Description</h2>
-<p>
-This plugin renders text received on the text sink pad to a video
-buffer (retaining the alpha channel), so it can later be overlayed
-on top of video streams using other elements.
-</p>
-<p>
-The text can contain newline characters. (FIXME: What about text 
-wrapping? It does not make sense in this context)
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6059632"></a><h3>Example launch lines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>subtitles<span class="gtkdoc opt">.</span>srt <span class="gtkdoc opt">!</span> subparse <span class="gtkdoc opt">!</span> textrender <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9372592"></a><h3>Element Information</h3>
+<a name="idp8494000"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -119,7 +92,7 @@ wrapping? It does not make sense in this context)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12613232"></a><h3>Element Pads</h3>
+<a name="idp13210432"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -181,7 +154,6 @@ wrapping? It does not make sense in this context)
 <a name="GstTextRender-struct"></a><h3>struct GstTextRender</h3>
 <pre class="programlisting">struct GstTextRender;</pre>
 <p>
-Opaque textrender data structure.
 </p>
 </div>
 </div>
@@ -231,13 +203,9 @@ Opaque textrender data structure.
 <p>Default value: 25</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-textrender.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 28db825..53f17ba 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoradec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-textrender.html" title="textrender">
 <link rel="next" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoradec.description"></a><h2>Description</h2>
-<p>
-This element decodes theora streams into raw video
-<a class="ulink" href="http://www.theora.org/" target="_top">Theora</a> is a royalty-free
-video codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>, based on the VP3 codec.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9236448"></a><h3>Example pipeline</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This example pipeline will decode an ogg stream and decodes the theora video. Refer to
-the theoraenc example to create the ogg file.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9481344"></a><h3>Element Information</h3>
+<a name="idp8405856"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -115,7 +87,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13905472"></a><h3>Element Pads</h3>
+<a name="idp7711168"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -169,7 +141,6 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstTheoraDec-struct"></a><h3>struct GstTheoraDec</h3>
 <pre class="programlisting">struct GstTheoraDec;</pre>
 <p>
-Opaque object data structure.
 </p>
 </div>
 </div>
@@ -182,13 +153,9 @@ Opaque object data structure.
 <p>Default value: TRUE</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-theoradec.see-also"></a><h2>See Also</h2>
-theoraenc, oggdemux
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index f3d7bc6..55f4c59 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoraenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
 <link rel="next" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -89,54 +89,10 @@ GstTheoraEnc implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraenc.description"></a><h2>Description</h2>
-<p>
-This element encodes raw video into a Theora stream.
-<a class="ulink" href="http://www.theora.org/" target="_top">Theora</a> is a royalty-free
-video codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>, based on the VP3 codec.
-</p>
-<p>
-The theora codec internally only supports encoding of images that are a
-multiple of 16 pixels in both X and Y direction. It is however perfectly
-possible to encode images with other dimensions because an arbitrary
-rectangular cropping region can be set up. This element will automatically
-set up a correct cropping region if the dimensions are not multiples of 16
-pixels.
-</p>
-<p>
-To control the quality of the encoding, the <span class="type">"bitrate"</span> and
-<span class="type">"quality"</span> properties can be used. These two properties are
-mutualy exclusive. Setting the bitrate property will produce a constant
-bitrate (CBR) stream while setting the quality property will produce a
-variable bitrate (VBR) stream.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp14365920"></a><h3>Example pipeline</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This example pipeline will encode a test video source to theora muxed in an
-ogg container. Refer to the theoradec documentation to decode the create
-stream.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14369280"></a><h3>Element Information</h3>
+<a name="idp14220288"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -159,7 +115,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14376736"></a><h3>Element Pads</h3>
+<a name="idp14227744"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -213,43 +169,19 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstTheoraEnc-struct"></a><h3>struct GstTheoraEnc</h3>
 <pre class="programlisting">struct GstTheoraEnc;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEncBorderMode"></a><h3>enum GstTheoraEncBorderMode</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
   BORDER_NONE,
   BORDER_BLACK,
   BORDER_MIRROR
-}
-GstTheoraEncBorderMode;
+} GstTheoraEncBorderMode;
 </pre>
 <p>
-Border color to add when sizes not multiple of 16.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="BORDER-NONE:CAPS"></a><span class="term"><code class="literal">BORDER_NONE</code></span></p></td>
-<td>no border
-</td>
-</tr>
-<tr>
-<td><p><a name="BORDER-BLACK:CAPS"></a><span class="term"><code class="literal">BORDER_BLACK</code></span></p></td>
-<td>black border
-</td>
-</tr>
-<tr>
-<td><p><a name="BORDER-MIRROR:CAPS"></a><span class="term"><code class="literal">BORDER_MIRROR</code></span></p></td>
-<td>Mirror image in border
-</td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 <div class="refsect1">
@@ -404,13 +336,9 @@ Border color to add when sizes not multiple of 16.
 <p>Default value: Single pass</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-theoraenc.see-also"></a><h2>See Also</h2>
-theoradec, oggmux
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 755f744..235b7d5 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoraparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
 <link rel="next" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraparse.description"></a><h2>Description</h2>
-<p>
-The theoraparse element will parse the header packets of the Theora
-stream and put them as the streamheader in the caps. This is used in the
-multifdsink case where you want to stream live theora streams to multiple
-clients, each client has to receive the streamheaders first before they can
-consume the theora packets.
-</p>
-<p>
-This element also makes sure that the buffers that it pushes out are properly
-timestamped and that their offset and offset_end are set. The buffers that
-theoraparse outputs have all of the metadata that oggmux expects to receive,
-which allows you to (for example) remux an ogg/theora file.
-</p>
-<p>
-In addition, this element allows you to fix badly synchronized streams. You
-pass in an array of (granule time, buffer time) synchronization points via
-the synchronization-points GValueArray property, and this element will adjust
-the granulepos values that it outputs. The adjustment will be made by
-offsetting all buffers that it outputs by a specified amount, and updating
-that offset from the value array whenever a keyframe is processed.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6468032"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> fakesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This pipeline shows that the streamheader is set in the caps, and that each
-buffer has the timestamp, duration, offset, and offset_end set.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse \
-           <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">-</span>remuxed<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This pipeline shows remuxing. video-remuxed.ogg might not be exactly the same
-as video.ogg, but they should produce exactly the same decoded data.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2008-05-28 (0.10.20)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idm18688"></a><h3>Element Information</h3>
+<a name="idp6266352"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -144,7 +87,7 @@ Last reviewed on 2008-05-28 (0.10.20)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13526480"></a><h3>Element Pads</h3>
+<a name="idp7342592"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -198,7 +141,6 @@ Last reviewed on 2008-05-28 (0.10.20)
 <a name="GstTheoraParse-struct"></a><h3>struct GstTheoraParse</h3>
 <pre class="programlisting">struct GstTheoraParse;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -210,13 +152,9 @@ Opaque data structure.
 <p>An array of (granuletime, buffertime) pairs.</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-theoraparse.see-also"></a><h2>See Also</h2>
-theoradec, oggdemux, vorbisparse
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index beb8acb..1b69130 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>timeoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
 <link rel="next" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-timeoverlay.description"></a><h2>Description</h2>
-<p>
-This element overlays the buffer time stamps of a video stream on
-top of itself. You can position the text and configure the font details
-using the properties of the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a> class. By default, the
-time stamp is displayed in the top left corner of the picture, with some
-padding to the left and to the top.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp14194400"></a><div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> timeoverlay <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Display the time stamps in the top left
-corner of the video picture.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> timeoverlay halign<span class="gtkdoc opt">=</span>right valign<span class="gtkdoc opt">=</span>bottom text<span class="gtkdoc opt">=</span><span class="string">&quot;Stream time:&quot;</span> shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Another pipeline that displays the time stamps with some leading
-text in the bottom right corner of the video picture, with the background
-of the text being shaded in order to make it more legible on top of a
-bright video background.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14192224"></a><h3>Element Information</h3>
+<a name="idp14026048"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -119,7 +80,7 @@ bright video background.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13857408"></a><h3>Element Pads</h3>
+<a name="idp14018464"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -141,6 +102,14 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
@@ -169,7 +138,11 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -194,6 +167,14 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
@@ -222,7 +203,11 @@ bright video background.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -237,17 +222,12 @@ bright video background.
 <a name="GstTimeOverlay-struct"></a><h3>struct GstTimeOverlay</h3>
 <pre class="programlisting">struct GstTimeOverlay;</pre>
 <p>
-Opaque timeoverlay data structure.
 </p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-timeoverlay.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay"><span class="type">GstClockOverlay</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index c4243d2..0095676 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>uridecodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
 <link rel="next" href="gst-plugins-base-plugins-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,12 +73,12 @@ GstURIDecodeBin implements
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps" title='The "caps" property'>caps</a>"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--subtitle-encoding" title='The "subtitle-encoding" property'>subtitle-encoding</a>"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--source" title='The "source" property'>source</a>"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read
-  "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>"          <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-size" title='The "buffer-size" property'>buffer-size</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--download" title='The "download" property'>download</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--use-buffering" title='The "use-buffering" property'>use-buffering</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--expose-all-streams" title='The "expose-all-streams" property'>expose-all-streams</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>"     <span class="type">guint64</span>               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -102,7 +102,7 @@ handle the given <a class="link" href="gst-plugins-base-plugins-uridecodebin.htm
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14708752"></a><h3>Element Information</h3>
+<a name="idp14538000"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -125,7 +125,7 @@ handle the given <a class="link" href="gst-plugins-base-plugins-uridecodebin.htm
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14716208"></a><h3>Element Pads</h3>
+<a name="idp14545456"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -233,7 +233,7 @@ return values for the autoplug-select signal.
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--buffer-duration"></a><h3>The <code class="literal">"buffer-duration"</code> property</h3>
-<pre class="programlisting">  "buffer-duration"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "buffer-duration"          <span class="type">gint64</span>                : Read / Write</pre>
 <p>Buffer duration when buffering streams (-1 default value).</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -270,7 +270,7 @@ return values for the autoplug-select signal.
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--ring-buffer-max-size"></a><h3>The <code class="literal">"ring-buffer-max-size"</code> property</h3>
-<pre class="programlisting">  "ring-buffer-max-size"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "ring-buffer-max-size"     <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).</p>
 <p>Allowed values: &lt;= G_MAXUINT</p>
 <p>Default value: 0</p>
@@ -336,7 +336,7 @@ signal).</td>
                                                         <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>         *caps,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
-This function is emited when an array of possible factories for <em class="parameter"><code>caps</code></em> on
+This function is emitted when an array of possible factories for <em class="parameter"><code>caps</code></em> on
 <em class="parameter"><code>pad</code></em> is needed. Uridecodebin will by default return an array with all
 compatible factories, sorted by rank.
 </p>
@@ -396,7 +396,7 @@ by default tried in the returned order or based on the index returned by
 <p>
 This signal is emitted once uridecodebin has found all the possible
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> that can be used to handle the given <em class="parameter"><code>caps</code></em>. For each of
-those factories, this signal is emited.
+those factories, this signal is emitted.
 </p>
 <p>
 The signal handler should return a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> enum
@@ -516,7 +516,7 @@ This signal is emitted when the data for the current uri is played.
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 Once decodebin2 has found the possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects to try
-for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emited. The purpose of the signal is for
+for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emitted. The purpose of the signal is for
 the application to perform additional sorting or filtering on the element
 factory array.
 </p>
@@ -603,6 +603,6 @@ the notify::source signal, but more convenient.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 1145731..6035c3d 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
 <link rel="next" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
          +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-               +----GstVideoRate
+               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
+                     +----GstVideoRate
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videorate.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'>drop</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'>duplicate</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'>in</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'>drop</a>"                     <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'>duplicate</a>"                <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'>in</a>"                       <span class="type">guint64</span>               : Read
   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--new-pref" title='The "new-pref" property'>new-pref</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'>out</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'>out</a>"                      <span class="type">guint64</span>               : Read
   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first" title='The "skip-to-first" property'>skip-to-first</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period" title='The "average-period" property'>average-period</a>"           <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only" title='The "drop-only" property'>drop-only</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps" title='The "force-fps" property'>force-fps</a>"                <span class="type">GstFraction</span>           : Read / Write / Construct
+  "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate" title='The "max-rate" property'>max-rate</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct
 </pre>
 </div>
 <div class="refsect1">
@@ -110,7 +115,7 @@ applications should be prepared for this.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8830336"></a><h3>Example pipelines</h3>
+<a name="idp14912624"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -144,7 +149,7 @@ Last reviewed on 2006-09-02 (0.10.11)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6062432"></a><h3>Element Information</h3>
+<a name="idp14917040"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -167,7 +172,7 @@ Last reviewed on 2006-09-02 (0.10.11)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14163520"></a><h3>Element Pads</h3>
+<a name="idp14924496"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -261,21 +266,21 @@ Opaque data structure.
 <a name="gst-plugins-base-plugins-videorate.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVideoRate--drop"></a><h3>The <code class="literal">"drop"</code> property</h3>
-<pre class="programlisting">  "drop"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "drop"                     <span class="type">guint64</span>               : Read</pre>
 <p>Number of dropped frames.</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--duplicate"></a><h3>The <code class="literal">"duplicate"</code> property</h3>
-<pre class="programlisting">  "duplicate"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "duplicate"                <span class="type">guint64</span>               : Read</pre>
 <p>Number of duplicated frames.</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--in"></a><h3>The <code class="literal">"in"</code> property</h3>
-<pre class="programlisting">  "in"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "in"                       <span class="type">guint64</span>               : Read</pre>
 <p>Number of input frames.</p>
 <p>Default value: 0</p>
 </div>
@@ -290,7 +295,7 @@ Opaque data structure.
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--out"></a><h3>The <code class="literal">"out"</code> property</h3>
-<pre class="programlisting">  "out"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "out"                      <span class="type">guint64</span>               : Read</pre>
 <p>Number of output frames.</p>
 <p>Default value: 0</p>
 </div>
@@ -311,10 +316,53 @@ Don't produce buffers before the first one we receive.
 <p>Default value: FALSE</p>
 <p class="since">Since 0.10.25</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--average-period"></a><h3>The <code class="literal">"average-period"</code> property</h3>
+<pre class="programlisting">  "average-period"           <span class="type">guint64</span>               : Read / Write</pre>
+<p>
+Arrange for maximum framerate by dropping frames beyond a certain framerate,
+where the framerate is calculated using a moving average over the
+configured.
+</p>
+<p>Allowed values: &lt;= G_MAXLONG</p>
+<p>Default value: 0</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--drop-only"></a><h3>The <code class="literal">"drop-only"</code> property</h3>
+<pre class="programlisting">  "drop-only"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>
+Only drop frames, no duplicates are produced.
+</p>
+<p>Default value: FALSE</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--force-fps"></a><h3>The <code class="literal">"force-fps"</code> property</h3>
+<pre class="programlisting">  "force-fps"                <span class="type">GstFraction</span>           : Read / Write / Construct</pre>
+<p>
+Forced output framerate
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--max-rate"></a><h3>The <code class="literal">"max-rate"</code> property</h3>
+<pre class="programlisting">  "max-rate"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct</pre>
+<p>
+maximum framerate to pass through
+</p>
+<p>Allowed values: &gt;= 1</p>
+<p>Default value: 2147483647</p>
+<p class="since">Since 0.10.36</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index aba1aee..c3ba9f3 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoscale</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videorate.html" title="videorate">
 <link rel="next" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,6 +61,10 @@ enum                <a class="link" href="gst-plugins-base-plugins-videoscale.ht
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method" title='The "method" property'>method</a>"                   <a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod" title="enum GstVideoScaleMethod"><span class="type">GstVideoScaleMethod</span></a>   : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders" title='The "add-borders" property'>add-borders</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither" title='The "dither" property'>dither</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct
+  "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope" title='The "envelope" property'>envelope</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write / Construct
+  "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen" title='The "sharpen" property'>sharpen</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write / Construct
+  "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness" title='The "sharpness" property'>sharpness</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write / Construct
 </pre>
 </div>
 <div class="refsect1">
@@ -79,7 +83,7 @@ pipeline.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15315136"></a><h3>Example pipelines</h3>
+<a name="idp14852496"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +119,7 @@ Last reviewed on 2006-03-02 (0.10.4)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15311504"></a><h3>Element Information</h3>
+<a name="idp14848880"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -138,7 +142,7 @@ Last reviewed on 2006-03-02 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15302912"></a><h3>Element Pads</h3>
+<a name="idp14841968"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -433,7 +437,8 @@ Opaque data structure
 <pre class="programlisting">typedef enum {
   GST_VIDEO_SCALE_NEAREST,
   GST_VIDEO_SCALE_BILINEAR,
-  GST_VIDEO_SCALE_4TAP
+  GST_VIDEO_SCALE_4TAP,
+  GST_VIDEO_SCALE_LANCZOS
 } GstVideoScaleMethod;
 </pre>
 <p>
@@ -457,6 +462,11 @@ The videoscale method to use.
 <td>use a 4-tap filter for scaling (slow).
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-VIDEO-SCALE-LANCZOS:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_SCALE_LANCZOS</code></span></p></td>
+<td>use a multitap Lanczos filter for scaling (slow).
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -476,6 +486,37 @@ The videoscale method to use.
 <p>Add black borders if necessary to keep the display aspect ratio.</p>
 <p>Default value: FALSE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--dither"></a><h3>The <code class="literal">"dither"</code> property</h3>
+<pre class="programlisting">  "dither"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct</pre>
+<p>Add dither (only used for Lanczos method).</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--envelope"></a><h3>The <code class="literal">"envelope"</code> property</h3>
+<pre class="programlisting">  "envelope"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write / Construct</pre>
+<p>Size of filter envelope.</p>
+<p>Allowed values: [0,5]</p>
+<p>Default value: 2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--sharpen"></a><h3>The <code class="literal">"sharpen"</code> property</h3>
+<pre class="programlisting">  "sharpen"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write / Construct</pre>
+<p>Sharpening.</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--sharpness"></a><h3>The <code class="literal">"sharpness"</code> property</h3>
+<pre class="programlisting">  "sharpness"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write / Construct</pre>
+<p>Sharpness of filter.</p>
+<p>Allowed values: [0,2]</p>
+<p>Default value: 1</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videoscale.see-also"></a><h2>See Also</h2>
@@ -484,6 +525,6 @@ videorate, ffmpegcolorspace
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index e16f148..1de54de 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
 <link rel="next" href="gst-plugins-base-plugins-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,7 +61,7 @@ enum                <a class="link" href="gst-plugins-base-plugins-videotestsrc.
 <a name="gst-plugins-base-plugins-videotestsrc.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern" title='The "pattern" property'>pattern</a>"                  <a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern" title="enum GstVideoTestSrcPattern"><span class="type">GstVideoTestSrcPattern</span></a>  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--is-live" title='The "is-live" property'>is-live</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--peer-alloc" title='The "peer-alloc" property'>peer-alloc</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--colorspec" title='The "colorspec" property'>colorspec</a>"                <a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec" title="enum GstVideoTestSrcColorSpec"><span class="type">GstVideoTestSrcColorSpec</span></a>  : Read / Write
@@ -85,14 +85,14 @@ enum                <a class="link" href="gst-plugins-base-plugins-videotestsrc.
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videotestsrc.description"></a><h2>Description</h2>
 <p>
-The videotestsrc element is used to produce test video data in a wide variaty
+The videotestsrc element is used to produce test video data in a wide variety
 of formats. The video test data produced can be controlled with the "pattern"
 property.
 </p>
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15490528"></a><h3>Example launch line</h3>
+<a name="idp15476256"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@ property.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15488160"></a><h3>Element Information</h3>
+<a name="idp15473888"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -133,7 +133,7 @@ property.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15479360"></a><h3>Element Pads</h3>
+<a name="idp15465088"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -516,7 +516,7 @@ The color specification to use.
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3>
-<pre class="programlisting">  "timestamp-offset"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "timestamp-offset"         <span class="type">gint64</span>                : Read / Write</pre>
 <p>An offset added to timestamps set on buffers (in ns).</p>
 <p>Default value: 0</p>
 </div>
@@ -658,6 +658,6 @@ patterns.  Default is white (0xffffffff).
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 13e0f60..64f60ef 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>volume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,7 +78,7 @@ The volume element changes the volume of the audio data.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15336800"></a><h3>Example launch line</h3>
+<a name="idp5784592"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,7 +98,7 @@ the same pipeline without the volume element.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6725840"></a><h3>Element Information</h3>
+<a name="idp6771392"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -121,7 +121,7 @@ the same pipeline without the volume element.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13916672"></a><h3>Element Pads</h3>
+<a name="idp9320000"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -231,6 +231,6 @@ Opaque data structure.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index d5eb437..b0d6bfa 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-volume.html" title="volume">
 <link rel="next" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
          +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-               +----GstVorbisDec
+               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+                     +----GstVorbisDec
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisdec.description"></a><h2>Description</h2>
-<p>
-This element decodes a Vorbis stream to raw float audio.
-<a class="ulink" href="http://www.vorbis.com/" target="_top">Vorbis</a> is a royalty-free
-audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9378016"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Decode an Ogg/Vorbis. To create an Ogg/Vorbis file refer to the documentation of vorbisenc.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8007488"></a><h3>Element Information</h3>
+<a name="idp9506784"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -106,7 +80,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15561504"></a><h3>Element Pads</h3>
+<a name="idp10364544"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -160,17 +134,12 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstVorbisDec-struct"></a><h3>struct GstVorbisDec</h3>
 <pre class="programlisting">struct GstVorbisDec;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbisdec.see-also"></a><h2>See Also</h2>
-vorbisenc, oggdemux
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 0d0abbc..664b50f 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
 <link rel="next" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -52,7 +52,8 @@
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
          +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-               +----GstVorbisEnc
+               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
+                     +----GstVorbisEnc
 </pre>
 </div>
 <div class="refsect1">
@@ -74,49 +75,10 @@ GstVorbisEnc implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisenc.description"></a><h2>Description</h2>
-<p>
-This element encodes raw float audio into a Vorbis stream.
-<a class="ulink" href="http://www.vorbis.com/" target="_top">Vorbis</a> is a royalty-free
-audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp15009216"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc wave<span class="gtkdoc opt">=</span>sine num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Encode a test sine signal to Ogg/Vorbis.  Note that the resulting file
-will be really small because a sine signal compresses very well.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v alsasrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Record from a sound card using ALSA and encode to Ogg/Vorbis.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15013472"></a><h3>Element Information</h3>
+<a name="idp15533792"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -139,7 +101,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15020880"></a><h3>Element Pads</h3>
+<a name="idp15550768"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -157,7 +119,7 @@ Last reviewed on 2006-03-01 (0.10.4)
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 256 ], endianness=(int)1234, width=(int)32</td>
+<td>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 255 ], endianness=(int)1234, width=(int)32</td>
 </tr>
 </tbody>
 </table></div>
@@ -193,7 +155,6 @@ Last reviewed on 2006-03-01 (0.10.4)
 <a name="GstVorbisEnc-struct"></a><h3>struct GstVorbisEnc</h3>
 <pre class="programlisting">struct GstVorbisEnc;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
@@ -245,13 +206,9 @@ Opaque data structure.
 <p>Default value: 0.3</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbisenc.see-also"></a><h2>See Also</h2>
-vorbisdec, oggmux
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 274f03f..e38ad0c 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
 <link rel="next" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisparse.description"></a><h2>Description</h2>
-<p>
-The vorbisparse element will parse the header packets of the Vorbis
-stream and put them as the streamheader in the caps. This is used in the
-multifdsink case where you want to stream live vorbis streams to multiple
-clients, each client has to receive the streamheaders first before they can
-consume the vorbis packets.
-</p>
-<p>
-This element also makes sure that the buffers that it pushes out are properly
-timestamped and that their offset and offset_end are set. The buffers that
-vorbisparse outputs have all of the metadata that oggmux expects to receive,
-which allows you to (for example) remux an ogg/vorbis file.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp7959088"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisparse <span class="gtkdoc opt">!</span> fakesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This pipeline shows that the streamheader is set in the caps, and that each
-buffer has the timestamp, duration, offset, and offset_end set.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisparse \
-           <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">-</span>remuxed<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This pipeline shows remuxing. sine-remuxed.ogg might not be exactly the same
-as sine.ogg, but they should produce exactly the same decoded data.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-04-01 (0.10.4.1)
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10657648"></a><h3>Element Information</h3>
+<a name="idp12296176"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -129,7 +80,7 @@ Last reviewed on 2006-04-01 (0.10.4.1)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14996624"></a><h3>Element Pads</h3>
+<a name="idp9306656"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -183,17 +134,12 @@ Last reviewed on 2006-04-01 (0.10.4.1)
 <a name="GstVorbisParse-struct"></a><h3>struct GstVorbisParse</h3>
 <pre class="programlisting">struct GstVorbisParse;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbisparse.see-also"></a><h2>See Also</h2>
-vorbisdec, oggdemux, theoraparse
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 39b1f82..7ea3862 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbistag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
 <link rel="next" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,46 +62,10 @@ GstVorbisTag implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbistag.description"></a><h2>Description</h2>
-<p>
-The vorbistags element can change the tag contained within a raw
-vorbis stream. Specifically, it modifies the comments header packet
-of the vorbis stream.
-</p>
-<p>
-The element will also process the stream as the <span class="type">vorbisparse</span> element does
-so it can be used when remuxing an Ogg Vorbis stream, without additional
-elements.
-</p>
-<p>
-Applications can set the tags to write using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html"><span class="type">GstTagSetter</span></a> interface.
-Tags contained withing the vorbis bitstream will be picked up
-automatically (and merged according to the merge mode set via the tag
-setter interface).
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9228848"></a><h3>Example pipelines</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbistag <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>bar<span class="gtkdoc opt">.</span>ogg</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This element is not useful with gst-launch, because it does not support
-setting the tags on a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html"><span class="type">GstTagSetter</span></a> interface. Conceptually, the element
-will usually be used in this order though.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8789296"></a><h3>Element Information</h3>
+<a name="idp8217872"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -124,7 +88,7 @@ will usually be used in this order though.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14668272"></a><h3>Element Pads</h3>
+<a name="idp6805408"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -178,17 +142,12 @@ will usually be used in this order though.
 <a name="GstVorbisTag-struct"></a><h3>struct GstVorbisTag</h3>
 <pre class="programlisting">struct GstVorbisTag;</pre>
 <p>
-Opaque data structure.
 </p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbistag.see-also"></a><h2>See Also</h2>
-<span class="type">oggdemux</span>, <span class="type">oggmux</span>, <span class="type">vorbisparse</span>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html"><span class="type">GstTagSetter</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 42d6ec7..1be94a0 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
 <link rel="next" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,131 +72,16 @@ GstXImageSink implements
   "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-events" title='The "handle-events" property'>handle-events</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose" title='The "handle-expose" property'>handle-expose</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height" title='The "window-height" property'>window-height</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width" title='The "window-width" property'>window-width</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height" title='The "window-height" property'>window-height</a>"            <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width" title='The "window-width" property'>window-width</a>"             <span class="type">guint64</span>               : Read
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-ximagesink.description"></a><h2>Description</h2>
-<p>
-XImageSink renders video frames to a drawable (XWindow) on a local or remote
-display. This element can receive a Window ID from the application through
-the XOverlay interface and will then render video frames in this drawable.
-If no Window ID was provided by the application, the element will create its
-own internal window and render into it.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp15989760"></a><h3>Scaling</h3>
-<p>
-As standard XImage rendering to a drawable is not scaled, XImageSink will use
-reverse caps negotiation to try to get scaled video frames for the drawable.
-This is accomplished by asking the peer pad if it accepts some different caps
-which in most cases implies that there is a scaling element in the pipeline,
-or that an element generating the video frames can generate them with a 
-different geometry. This mechanism is handled during buffer allocations, for
-each allocation request the video sink will check the drawable geometry, look
-at the <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'><span class="type">"force-aspect-ratio"</span></a> property, calculate the geometry of
-desired video frames and then check that the peer pad accept those new caps.
-If it does it will then allocate a buffer in video memory with this new
-geometry and return it with the new caps.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp15992704"></a><h3>Events</h3>
-<p>
-XImageSink creates a thread to handle events coming from the drawable. There
-are several kind of events that can be grouped in 2 big categories: input 
-events and window state related events. Input events will be translated to
-navigation events and pushed upstream for other elements to react on them.
-This includes events such as pointer moves, key press/release, clicks etc...
-Other events are used to handle the drawable appearance even when the data
-is not flowing (GST_STATE_PAUSED). That means that even when the element is
-paused, it will receive expose events from the drawable and draw the latest
-frame with correct borders/aspect-ratio.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp15994688"></a><h3>Pixel aspect ratio</h3>
-<p>
-When changing state to GST_STATE_READY, XImageSink will open a connection to
-the display specified in the <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display" title='The "display" property'><span class="type">"display"</span></a> property or the default
-display if nothing specified. Once this connection is open it will inspect 
-the display configuration including the physical display geometry and 
-then calculate the pixel aspect ratio. When caps negotiation will occur, the
-video sink will set the calculated pixel aspect ratio on the caps to make 
-sure that incoming video frames will have the correct pixel aspect ratio for
-this display. Sometimes the calculated pixel aspect ratio can be wrong, it is
-then possible to enforce a specific pixel aspect ratio using the
-<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'><span class="type">"pixel-aspect-ratio"</span></a> property.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp15998368"></a><h3>Examples</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> ximagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- A pipeline to test reverse negotiation. When the test video signal appears
-you can resize the window and see that scaled buffers of the desired size are
-going to arrive with a short delay. This illustrates how buffers of desired
-size are allocated along the way. If you take away the queue, scaling will
-happen almost immediately.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> navigationtest <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> ximagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- A pipeline to test navigation events.
-While moving the mouse pointer over the test signal you will see a black box
-following the mouse pointer. If you press the mouse button somewhere on the 
-video and release it somewhere else a green box will appear where you pressed
-the button and a red one where you released it. (The navigationtest element
-is part of gst-plugins-good.)
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>rgb<span class="gtkdoc opt">,</span> pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=(</span>fraction<span class="gtkdoc opt">)</span><span class="number">4</span><span class="gtkdoc opt">/</span><span class="number">3</span> <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> ximagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This is faking a 4/3 pixel aspect ratio caps on video frames produced by
-videotestsrc, in most cases the pixel aspect ratio of the display will be
-1/1. This means that videoscale will have to do the scaling to convert 
-incoming frames to a size that will match the display pixel aspect ratio
-(from 320x240 to 320x180 in this case). Note that you might have to escape 
-some characters for your shell like '\(fraction\)'.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16003856"></a><h3>Element Information</h3>
+<a name="idp14442752"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -219,7 +104,7 @@ some characters for your shell like '\(fraction\)'.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16011312"></a><h3>Element Pads</h3>
+<a name="idp14450208"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -252,12 +137,7 @@ some characters for your shell like '\(fraction\)'.
 <a name="GstXImageSink-struct"></a><h3>struct GstXImageSink</h3>
 <pre class="programlisting">struct GstXImageSink;</pre>
 <p>
-The <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink"><span class="type">GstXImageSink</span></a> data structure.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
 </div>
 </div>
 <div class="refsect1">
@@ -279,7 +159,7 @@ The <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink
 <div class="refsect2">
 <a name="GstXImageSink--synchronous"></a><h3>The <code class="literal">"synchronous"</code> property</h3>
 <pre class="programlisting">  "synchronous"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>When enabled, runs the X display in synchronous mode. (used only for debugging).</p>
+<p>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
@@ -306,27 +186,21 @@ The <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--window-height"></a><h3>The <code class="literal">"window-height"</code> property</h3>
-<pre class="programlisting">  "window-height"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
-<p>
-Actual height of the video window.
-</p>
+<pre class="programlisting">  "window-height"            <span class="type">guint64</span>               : Read</pre>
+<p>Height of the window.</p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--window-width"></a><h3>The <code class="literal">"window-width"</code> property</h3>
-<pre class="programlisting">  "window-width"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
-<p>
-Actual width of the video window.
-</p>
+<pre class="programlisting">  "window-width"             <span class="type">guint64</span>               : Read</pre>
+<p>Width of the window.</p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index ee13e99..a17c8be 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>xvimagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
 <link rel="next" href="ch02.html" title="gst-plugins-base Plugins">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,154 +82,16 @@ GstXvImageSink implements
   "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--autopaint-colorkey" title='The "autopaint-colorkey" property'>autopaint-colorkey</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--colorkey" title='The "colorkey" property'>colorkey</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--draw-borders" title='The "draw-borders" property'>draw-borders</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height" title='The "window-height" property'>window-height</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
-  "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width" title='The "window-width" property'>window-width</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height" title='The "window-height" property'>window-height</a>"            <span class="type">guint64</span>               : Read
+  "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width" title='The "window-width" property'>window-width</a>"             <span class="type">guint64</span>               : Read
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-xvimagesink.description"></a><h2>Description</h2>
-<p>
-XvImageSink renders video frames to a drawable (XWindow) on a local display
-using the XVideo extension. Rendering to a remote display is theorically
-possible but i doubt that the XVideo extension is actually available when
-connecting to a remote display. This element can receive a Window ID from the
-application through the XOverlay interface and will then render video frames
-in this drawable. If no Window ID was provided by the application, the
-element will create its own internal window and render into it.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp16288528"></a><h3>Scaling</h3>
-<p>
-The XVideo extension, when it's available, handles hardware accelerated
-scaling of video frames. This means that the element will just accept
-incoming video frames no matter their geometry and will then put them to the
-drawable scaling them on the fly. Using the <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'><span class="type">"force-aspect-ratio"</span></a>
-property it is possible to enforce scaling with a constant aspect ratio,
-which means drawing black borders around the video frame.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp16291104"></a><h3>Events</h3>
-<p>
-XvImageSink creates a thread to handle events coming from the drawable. There
-are several kind of events that can be grouped in 2 big categories: input
-events and window state related events. Input events will be translated to
-navigation events and pushed upstream for other elements to react on them.
-This includes events such as pointer moves, key press/release, clicks etc...
-Other events are used to handle the drawable appearance even when the data
-is not flowing (GST_STATE_PAUSED). That means that even when the element is
-paused, it will receive expose events from the drawable and draw the latest
-frame with correct borders/aspect-ratio.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp16293088"></a><h3>Pixel aspect ratio</h3>
-<p>
-When changing state to GST_STATE_READY, XvImageSink will open a connection to
-the display specified in the <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--display" title='The "display" property'><span class="type">"display"</span></a> property or the
-default display if nothing specified. Once this connection is open it will
-inspect the display configuration including the physical display geometry and
-then calculate the pixel aspect ratio. When receiving video frames with a
-different pixel aspect ratio, XvImageSink will use hardware scaling to
-display the video frames correctly on display's pixel aspect ratio.
-Sometimes the calculated pixel aspect ratio can be wrong, it is
-then possible to enforce a specific pixel aspect ratio using the
-<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'><span class="type">"pixel-aspect-ratio"</span></a> property.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp16296736"></a><h3>Examples</h3>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- A pipeline to test hardware scaling.
-When the test video signal appears you can resize the window and see that
-video frames are scaled through hardware (no extra CPU cost).
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> xvimagesink force<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Same pipeline with <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'><span class="type">"force-aspect-ratio"</span></a> property set to true
-You can observe the borders drawn around the scaled image respecting aspect
-ratio.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> navigationtest <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- A pipeline to test navigation events.
-While moving the mouse pointer over the test signal you will see a black box
-following the mouse pointer. If you press the mouse button somewhere on the
-video and release it somewhere else a green box will appear where you pressed
-the button and a red one where you released it. (The navigationtest element
-is part of gst-plugins-good.) You can observe here that even if the images
-are scaled through hardware the pointer coordinates are converted back to the
-original video frame geometry so that the box can be drawn to the correct
-position. This also handles borders correctly, limiting coordinates to the
-image area
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>yuv<span class="gtkdoc opt">,</span> pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=(</span>fraction<span class="gtkdoc opt">)</span><span class="number">4</span><span class="gtkdoc opt">/</span><span class="number">3</span> <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- This is faking a 4/3 pixel aspect ratio caps on video frames produced by
-videotestsrc, in most cases the pixel aspect ratio of the display will be
-1/1. This means that XvImageSink will have to do the scaling to convert
-incoming frames to a size that will match the display pixel aspect ratio
-(from 320x240 to 320x180 in this case). Note that you might have to escape
-some characters for your shell like '\(fraction\)'.
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> xvimagesink hue<span class="gtkdoc opt">=</span><span class="number">100</span> saturation<span class="gtkdoc opt">=-</span><span class="number">100</span> brightness<span class="gtkdoc opt">=</span><span class="number">100</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
- Demonstrates how to use the colorbalance interface.
-</div>
-<p>
-</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16304880"></a><h3>Element Information</h3>
+<a name="idp16140224"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -252,7 +114,7 @@ some characters for your shell like '\(fraction\)'.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16312336"></a><h3>Element Pads</h3>
+<a name="idp16147680"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -289,12 +151,7 @@ some characters for your shell like '\(fraction\)'.
 <a name="GstXvImageSink-struct"></a><h3>struct GstXvImageSink</h3>
 <pre class="programlisting">struct GstXvImageSink;</pre>
 <p>
-The <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink"><span class="type">GstXvImageSink</span></a> data structure.
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
 </div>
 </div>
 <div class="refsect1">
@@ -348,7 +205,7 @@ The <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSi
 <div class="refsect2">
 <a name="GstXvImageSink--synchronous"></a><h3>The <code class="literal">"synchronous"</code> property</h3>
 <pre class="programlisting">  "synchronous"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>When enabled, runs the X display in synchronous mode. (used only for debugging).</p>
+<p>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
@@ -383,78 +240,55 @@ The <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSi
 <div class="refsect2">
 <a name="GstXvImageSink--double-buffer"></a><h3>The <code class="literal">"double-buffer"</code> property</h3>
 <pre class="programlisting">  "double-buffer"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Whether to double-buffer the output.
-</p>
+<p>Whether to double-buffer the output.</p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--handle-expose"></a><h3>The <code class="literal">"handle-expose"</code> property</h3>
 <pre class="programlisting">  "handle-expose"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-When enabled, the current frame will always be drawn in response to X
-Expose.
-</p>
+<p>When enabled, the current frame will always be drawn in response to X Expose events.</p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--autopaint-colorkey"></a><h3>The <code class="literal">"autopaint-colorkey"</code> property</h3>
 <pre class="programlisting">  "autopaint-colorkey"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Whether to autofill overlay with colorkey
-</p>
+<p>Whether to autofill overlay with colorkey.</p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--colorkey"></a><h3>The <code class="literal">"colorkey"</code> property</h3>
 <pre class="programlisting">  "colorkey"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>
-Color to use for the overlay mask.
-</p>
+<p>Color to use for the overlay mask.</p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--draw-borders"></a><h3>The <code class="literal">"draw-borders"</code> property</h3>
 <pre class="programlisting">  "draw-borders"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Draw black borders when using GstXvImageSink:force-aspect-ratio to fill
-unused parts of the video area.
-</p>
+<p>Draw black borders to fill unused area in force-aspect-ratio mode.</p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--window-height"></a><h3>The <code class="literal">"window-height"</code> property</h3>
-<pre class="programlisting">  "window-height"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
-<p>
-Actual height of the video window.
-</p>
+<pre class="programlisting">  "window-height"            <span class="type">guint64</span>               : Read</pre>
+<p>Height of the window.</p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--window-width"></a><h3>The <code class="literal">"window-width"</code> property</h3>
-<pre class="programlisting">  "window-width"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
-<p>
-Actual width of the video window.
-</p>
+<pre class="programlisting">  "window-width"             <span class="type">guint64</span>               : Read</pre>
+<p>Width of the window.</p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins.devhelp b/docs/plugins/html/gst-plugins-base-plugins.devhelp
deleted file mode 100644 (file)
index 8bf91ef..0000000
+++ /dev/null
@@ -1,684 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 0.10 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-base-plugins">
-  <chapters>
-    <sub name="gst-plugins-base Elements" link="ch01.html">
-      <sub name="adder" link="gst-plugins-base-plugins-adder.html"/>
-      <sub name="appsrc" link="gst-plugins-base-plugins-appsrc.html"/>
-      <sub name="appsink" link="gst-plugins-base-plugins-appsink.html"/>
-      <sub name="alsamixer" link="gst-plugins-base-plugins-alsamixer.html"/>
-      <sub name="alsasink" link="gst-plugins-base-plugins-alsasink.html"/>
-      <sub name="alsasrc" link="gst-plugins-base-plugins-alsasrc.html"/>
-      <sub name="audioconvert" link="gst-plugins-base-plugins-audioconvert.html"/>
-      <sub name="audiorate" link="gst-plugins-base-plugins-audiorate.html"/>
-      <sub name="audioresample" link="gst-plugins-base-plugins-audioresample.html"/>
-      <sub name="audiotestsrc" link="gst-plugins-base-plugins-audiotestsrc.html"/>
-      <sub name="cdparanoiasrc" link="gst-plugins-base-plugins-cdparanoiasrc.html"/>
-      <sub name="clockoverlay" link="gst-plugins-base-plugins-clockoverlay.html"/>
-      <sub name="decodebin" link="gst-plugins-base-plugins-decodebin.html"/>
-      <sub name="decodebin2" link="gst-plugins-base-plugins-decodebin2.html"/>
-      <sub name="encodebin" link="gst-plugins-base-plugins-encodebin.html"/>
-      <sub name="ffmpegcolorspace" link="gst-plugins-base-plugins-ffmpegcolorspace.html"/>
-      <sub name="gdpdepay" link="gst-plugins-base-plugins-gdpdepay.html"/>
-      <sub name="gdppay" link="gst-plugins-base-plugins-gdppay.html"/>
-      <sub name="giosink" link="gst-plugins-base-plugins-giosink.html"/>
-      <sub name="giosrc" link="gst-plugins-base-plugins-giosrc.html"/>
-      <sub name="giostreamsink" link="gst-plugins-base-plugins-giostreamsink.html"/>
-      <sub name="giostreamsrc" link="gst-plugins-base-plugins-giostreamsrc.html"/>
-      <sub name="gnomevfssink" link="gst-plugins-base-plugins-gnomevfssink.html"/>
-      <sub name="gnomevfssrc" link="gst-plugins-base-plugins-gnomevfssrc.html"/>
-      <sub name="multifdsink" link="gst-plugins-base-plugins-multifdsink.html"/>
-      <sub name="oggdemux" link="gst-plugins-base-plugins-oggdemux.html"/>
-      <sub name="oggmux" link="gst-plugins-base-plugins-oggmux.html"/>
-      <sub name="playbin" link="gst-plugins-base-plugins-playbin.html"/>
-      <sub name="playbin2" link="gst-plugins-base-plugins-playbin2.html"/>
-      <sub name="subtitleoverlay" link="gst-plugins-base-plugins-subtitleoverlay.html"/>
-      <sub name="tcpclientsrc" link="gst-plugins-base-plugins-tcpclientsrc.html"/>
-      <sub name="tcpclientsink" link="gst-plugins-base-plugins-tcpclientsink.html"/>
-      <sub name="tcpserversrc" link="gst-plugins-base-plugins-tcpserversrc.html"/>
-      <sub name="tcpserversink" link="gst-plugins-base-plugins-tcpserversink.html"/>
-      <sub name="textoverlay" link="gst-plugins-base-plugins-textoverlay.html"/>
-      <sub name="textrender" link="gst-plugins-base-plugins-textrender.html"/>
-      <sub name="theoradec" link="gst-plugins-base-plugins-theoradec.html"/>
-      <sub name="theoraenc" link="gst-plugins-base-plugins-theoraenc.html"/>
-      <sub name="theoraparse" link="gst-plugins-base-plugins-theoraparse.html"/>
-      <sub name="timeoverlay" link="gst-plugins-base-plugins-timeoverlay.html"/>
-      <sub name="uridecodebin" link="gst-plugins-base-plugins-uridecodebin.html"/>
-      <sub name="videorate" link="gst-plugins-base-plugins-videorate.html"/>
-      <sub name="videoscale" link="gst-plugins-base-plugins-videoscale.html"/>
-      <sub name="videotestsrc" link="gst-plugins-base-plugins-videotestsrc.html"/>
-      <sub name="volume" link="gst-plugins-base-plugins-volume.html"/>
-      <sub name="vorbisdec" link="gst-plugins-base-plugins-vorbisdec.html"/>
-      <sub name="vorbisenc" link="gst-plugins-base-plugins-vorbisenc.html"/>
-      <sub name="vorbisparse" link="gst-plugins-base-plugins-vorbisparse.html"/>
-      <sub name="vorbistag" link="gst-plugins-base-plugins-vorbistag.html"/>
-      <sub name="ximagesink" link="gst-plugins-base-plugins-ximagesink.html"/>
-      <sub name="xvimagesink" link="gst-plugins-base-plugins-xvimagesink.html"/>
-    </sub>
-    <sub name="gst-plugins-base Plugins" link="ch02.html">
-      <sub name="adder" link="gst-plugins-base-plugins-plugin-adder.html"/>
-      <sub name="alsa" link="gst-plugins-base-plugins-plugin-alsa.html"/>
-      <sub name="app" link="gst-plugins-base-plugins-plugin-app.html"/>
-      <sub name="audioconvert" link="gst-plugins-base-plugins-plugin-audioconvert.html"/>
-      <sub name="audiorate" link="gst-plugins-base-plugins-plugin-audiorate.html"/>
-      <sub name="audioresample" link="gst-plugins-base-plugins-plugin-audioresample.html"/>
-      <sub name="audiotestsrc" link="gst-plugins-base-plugins-plugin-audiotestsrc.html"/>
-      <sub name="cdparanoia" link="gst-plugins-base-plugins-plugin-cdparanoia.html"/>
-      <sub name="decodebin" link="gst-plugins-base-plugins-plugin-decodebin.html"/>
-      <sub name="encoding" link="gst-plugins-base-plugins-plugin-encoding.html"/>
-      <sub name="ffmpegcolorspace" link="gst-plugins-base-plugins-plugin-ffmpegcolorspace.html"/>
-      <sub name="gdp" link="gst-plugins-base-plugins-plugin-gdp.html"/>
-      <sub name="gio" link="gst-plugins-base-plugins-plugin-gio.html"/>
-      <sub name="gnomevfs" link="gst-plugins-base-plugins-plugin-gnomevfs.html"/>
-      <sub name="libvisual" link="gst-plugins-base-plugins-plugin-libvisual.html"/>
-      <sub name="ogg" link="gst-plugins-base-plugins-plugin-ogg.html"/>
-      <sub name="pango" link="gst-plugins-base-plugins-plugin-pango.html"/>
-      <sub name="playback" link="gst-plugins-base-plugins-plugin-playback.html"/>
-      <sub name="subparse" link="gst-plugins-base-plugins-plugin-subparse.html"/>
-      <sub name="tcp" link="gst-plugins-base-plugins-plugin-tcp.html"/>
-      <sub name="theora" link="gst-plugins-base-plugins-plugin-theora.html"/>
-      <sub name="typefindfunctions" link="gst-plugins-base-plugins-plugin-typefindfunctions.html"/>
-      <sub name="uridecodebin" link="gst-plugins-base-plugins-plugin-uridecodebin.html"/>
-      <sub name="video4linux" link="gst-plugins-base-plugins-plugin-video4linux.html"/>
-      <sub name="videorate" link="gst-plugins-base-plugins-plugin-videorate.html"/>
-      <sub name="videoscale" link="gst-plugins-base-plugins-plugin-videoscale.html"/>
-      <sub name="videotestsrc" link="gst-plugins-base-plugins-plugin-videotestsrc.html"/>
-      <sub name="volume" link="gst-plugins-base-plugins-plugin-volume.html"/>
-      <sub name="vorbis" link="gst-plugins-base-plugins-plugin-vorbis.html"/>
-      <sub name="ximagesink" link="gst-plugins-base-plugins-plugin-ximagesink.html"/>
-      <sub name="xvimagesink" link="gst-plugins-base-plugins-plugin-xvimagesink.html"/>
-    </sub>
-    <sub name="gst-plugins-base Classes" link="ch03.html">
-      <sub name="GstPlayBaseBin" link="GstPlayBaseBin.html"/>
-    </sub>
-  </chapters>
-  <functions>
-    <function name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp4775216"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-adder.html#idp4772432"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp7769952"/>
-    <function name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
-    <function name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp5517840"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp5525328"/>
-    <function name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
-    <function name="The &quot;block&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
-    <function name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
-    <function name="The &quot;format&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--format"/>
-    <function name="The &quot;is-live&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--is-live"/>
-    <function name="The &quot;max-bytes&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-bytes"/>
-    <function name="The &quot;max-latency&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency"/>
-    <function name="The &quot;min-latency&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency"/>
-    <function name="The &quot;size&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size"/>
-    <function name="The &quot;stream-type&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type"/>
-    <function name="The &quot;emit-signals&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals"/>
-    <function name="The &quot;min-percent&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent"/>
-    <function name="The &quot;end-of-stream&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-end-of-stream"/>
-    <function name="The &quot;enough-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-enough-data"/>
-    <function name="The &quot;need-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
-    <function name="The &quot;push-buffer&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
-    <function name="The &quot;seek-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9669776"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9677184"/>
-    <function name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
-    <function name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
-    <function name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
-    <function name="The &quot;emit-signals&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--emit-signals"/>
-    <function name="The &quot;eos&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--eos"/>
-    <function name="The &quot;max-buffers&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--max-buffers"/>
-    <function name="The &quot;eos&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-eos"/>
-    <function name="The &quot;new-buffer&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-buffer"/>
-    <function name="The &quot;new-preroll&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-preroll"/>
-    <function name="The &quot;pull-buffer&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer"/>
-    <function name="The &quot;pull-preroll&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-preroll"/>
-    <function name="The &quot;new-buffer-list&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-buffer-list"/>
-    <function name="The &quot;pull-buffer-list&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer-list"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp9594784"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp9602240"/>
-    <function name="struct GstAlsaMixerElement" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct"/>
-    <function name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device"/>
-    <function name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-alsasink.html#idp6507408"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp7524000"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp7531456"/>
-    <function name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
-    <function name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
-    <function name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
-    <function name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-alsasrc.html#idp8699328"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp8702512"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9886976"/>
-    <function name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
-    <function name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
-    <function name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
-    <function name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp9937248"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp7421920"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp7007232"/>
-    <function name="struct GstAudioConvert" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"/>
-    <function name="enum GstAudioConvertDithering" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering"/>
-    <function name="enum GstAudioConvertNoiseShaping" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping"/>
-    <function name="The &quot;dithering&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
-    <function name="The &quot;noise-shaping&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp10131792"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10134512"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10141968"/>
-    <function name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
-    <function name="The &quot;add&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add"/>
-    <function name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop"/>
-    <function name="The &quot;in&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--in"/>
-    <function name="The &quot;out&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--out"/>
-    <function name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent"/>
-    <function name="The &quot;tolerance&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance"/>
-    <function name="The &quot;skip-to-first&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp9934288"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp9932064"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp7787632"/>
-    <function name="struct GstAudioResample" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"/>
-    <function name="The &quot;filter-length&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length"/>
-    <function name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10290800"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10294688"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10302144"/>
-    <function name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
-    <function name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
-    <function name="The &quot;freq&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq"/>
-    <function name="The &quot;is-live&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live"/>
-    <function name="The &quot;samplesperbuffer&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--samplesperbuffer"/>
-    <function name="The &quot;timestamp-offset&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--timestamp-offset"/>
-    <function name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--volume"/>
-    <function name="The &quot;wave&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave"/>
-    <function name="The &quot;can-activate-pull&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
-    <function name="The &quot;can-activate-push&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10403712"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10411120"/>
-    <function name="struct GstCdParanoiaSrc" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-struct"/>
-    <function name="The &quot;generic-device&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device"/>
-    <function name="The &quot;paranoia-mode&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--paranoia-mode"/>
-    <function name="The &quot;read-speed&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--read-speed"/>
-    <function name="The &quot;search-overlap&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--search-overlap"/>
-    <function name="The &quot;cache-size&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size"/>
-    <function name="The &quot;transport-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-transport-error"/>
-    <function name="The &quot;uncorrected-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-uncorrected-error"/>
-    <function name="Example launch lines" link="gst-plugins-base-plugins-clockoverlay.html#idp6583856"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp6581168"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp6573712"/>
-    <function name="struct GstClockOverlay" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct"/>
-    <function name="The &quot;time-format&quot; property" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp5296880"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp5304336"/>
-    <function name="struct GstDecodeBin" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-struct"/>
-    <function name="The &quot;threaded&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--threaded"/>
-    <function name="The &quot;sink-caps&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps"/>
-    <function name="The &quot;new-decoded-pad&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-new-decoded-pad"/>
-    <function name="The &quot;removed-decoded-pad&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-removed-decoded-pad"/>
-    <function name="The &quot;unknown-type&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-unknown-type"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-decodebin2.html#idp10887472"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-decodebin2.html#idp10894992"/>
-    <function name="struct GstDecodeBin2" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-struct"/>
-    <function name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--caps"/>
-    <function name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--subtitle-encoding"/>
-    <function name="The &quot;sink-caps&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--sink-caps"/>
-    <function name="The &quot;high-percent&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--high-percent"/>
-    <function name="The &quot;low-percent&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--low-percent"/>
-    <function name="The &quot;max-size-buffers&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-buffers"/>
-    <function name="The &quot;max-size-bytes&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-bytes"/>
-    <function name="The &quot;max-size-time&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-time"/>
-    <function name="The &quot;use-buffering&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--use-buffering"/>
-    <function name="The &quot;post-stream-topology&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--post-stream-topology"/>
-    <function name="The &quot;expose-all-streams&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--expose-all-streams"/>
-    <function name="The &quot;autoplug-continue&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-continue"/>
-    <function name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-sort"/>
-    <function name="The &quot;new-decoded-pad&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-new-decoded-pad"/>
-    <function name="The &quot;removed-decoded-pad&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-removed-decoded-pad"/>
-    <function name="The &quot;unknown-type&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-unknown-type"/>
-    <function name="The &quot;autoplug-factories&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-factories"/>
-    <function name="The &quot;autoplug-select&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-select"/>
-    <function name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-drained"/>
-    <function name="Features" link="gst-plugins-base-plugins-encodebin.html#idp6809216"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp11211984"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp11219392"/>
-    <function name="GstEncodeBin" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"/>
-    <function name="The &quot;audio-jitter-tolerance&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance"/>
-    <function name="The &quot;avoid-reencoding&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding"/>
-    <function name="The &quot;profile&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile"/>
-    <function name="The &quot;queue-buffers-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max"/>
-    <function name="The &quot;queue-bytes-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max"/>
-    <function name="The &quot;queue-time-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max"/>
-    <function name="The &quot;request-pad&quot; signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10768768"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10766048"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10758336"/>
-    <function name="struct GstFFMpegCsp" link="gst-plugins-base-plugins-ffmpegcolorspace.html#GstFFMpegCsp-struct"/>
-    <function name="" link="gst-plugins-base-plugins-gdpdepay.html#idp7288064"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp6887008"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp6465872"/>
-    <function name="struct GstGDPDepay" link="gst-plugins-base-plugins-gdpdepay.html#GstGDPDepay-struct"/>
-    <function name="" link="gst-plugins-base-plugins-gdppay.html#idp7837536"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp6322768"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11401568"/>
-    <function name="struct GstGDPPay" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay-struct"/>
-    <function name="The &quot;crc-header&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-header"/>
-    <function name="The &quot;crc-payload&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-payload"/>
-    <function name="The &quot;version&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--version"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp11111376"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp10531904"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp10539424"/>
-    <function name="struct GstGioSink" link="gst-plugins-base-plugins-giosink.html#GstGioSink-struct"/>
-    <function name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--location"/>
-    <function name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--file"/>
-    <function name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp11463456"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11468304"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11475824"/>
-    <function name="struct GstGioSrc" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc-struct"/>
-    <function name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location"/>
-    <function name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file"/>
-    <function name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp11498976"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11503440"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11510848"/>
-    <function name="struct GstGioStreamSink" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink-struct"/>
-    <function name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream"/>
-    <function name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp11630736"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp11635136"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11537408"/>
-    <function name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
-    <function name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
-    <function name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssink.html#idp11679088"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-gnomevfssink.html#idp11683472"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-gnomevfssink.html#idp11690928"/>
-    <function name="struct GstGnomeVFSSink" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-struct"/>
-    <function name="The &quot;handle&quot; property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--handle"/>
-    <function name="The &quot;location&quot; property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--location"/>
-    <function name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--uri"/>
-    <function name="The &quot;allow-overwrite&quot; signal" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite"/>
-    <function name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11778080"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11782928"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11790448"/>
-    <function name="struct GstGnomeVFSSrc" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc-struct"/>
-    <function name="The &quot;handle&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--handle"/>
-    <function name="The &quot;iradio-genre&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-genre"/>
-    <function name="The &quot;iradio-mode&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-mode"/>
-    <function name="The &quot;iradio-name&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-name"/>
-    <function name="The &quot;iradio-title&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-title"/>
-    <function name="The &quot;iradio-url&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-url"/>
-    <function name="The &quot;location&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--location"/>
-    <function name="The &quot;random-access&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--random-access"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp12152560"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12159968"/>
-    <function name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
-    <function name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
-    <function name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
-    <function name="enum GstClientStatus" link="gst-plugins-base-plugins-multifdsink.html#GstClientStatus"/>
-    <function name="enum GstTCPProtocol" link="gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"/>
-    <function name="enum GstTCPUnitType" link="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType"/>
-    <function name="The &quot;buffers-max&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-max"/>
-    <function name="The &quot;buffers-queued&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-queued"/>
-    <function name="The &quot;buffers-soft-max&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-soft-max"/>
-    <function name="The &quot;bytes-served&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served"/>
-    <function name="The &quot;bytes-to-serve&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve"/>
-    <function name="The &quot;mode&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--mode"/>
-    <function name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--protocol"/>
-    <function name="The &quot;recover-policy&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy"/>
-    <function name="The &quot;sync-clients&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-clients"/>
-    <function name="The &quot;sync-method&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method"/>
-    <function name="The &quot;timeout&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout"/>
-    <function name="The &quot;buffers-min&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-min"/>
-    <function name="The &quot;burst-unit&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-unit"/>
-    <function name="The &quot;burst-value&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value"/>
-    <function name="The &quot;bytes-min&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min"/>
-    <function name="The &quot;time-min&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min"/>
-    <function name="The &quot;unit-type&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--unit-type"/>
-    <function name="The &quot;units-max&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max"/>
-    <function name="The &quot;units-soft-max&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max"/>
-    <function name="The &quot;qos-dscp&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--qos-dscp"/>
-    <function name="The &quot;handle-read&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--handle-read"/>
-    <function name="The &quot;resend-streamheader&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--resend-streamheader"/>
-    <function name="The &quot;num-fds&quot; property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--num-fds"/>
-    <function name="The &quot;add&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add"/>
-    <function name="The &quot;clear&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-clear"/>
-    <function name="The &quot;client-added&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-added"/>
-    <function name="The &quot;client-removed&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-removed"/>
-    <function name="The &quot;get-stats&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-get-stats"/>
-    <function name="The &quot;remove&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove"/>
-    <function name="The &quot;client-fd-removed&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-fd-removed"/>
-    <function name="The &quot;add-full&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
-    <function name="The &quot;remove-flush&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-oggdemux.html#idp9282128"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp7461456"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp5045200"/>
-    <function name="struct GstOggDemux" link="gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-oggmux.html#idp11580192"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11578016"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp5957200"/>
-    <function name="struct GstOggMux" link="gst-plugins-base-plugins-oggmux.html#GstOggMux-struct"/>
-    <function name="The &quot;max-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay"/>
-    <function name="The &quot;max-page-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
-    <function name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12073328"/>
-    <function name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12645456"/>
-    <function name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12656016"/>
-    <function name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12665680"/>
-    <function name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12668448"/>
-    <function name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12670416"/>
-    <function name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12671840"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12676736"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12684192"/>
-    <function name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
-    <function name="The &quot;audio-sink&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
-    <function name="The &quot;frame&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--frame"/>
-    <function name="The &quot;subtitle-font-desc&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--subtitle-font-desc"/>
-    <function name="The &quot;video-sink&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-sink"/>
-    <function name="The &quot;vis-plugin&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--vis-plugin"/>
-    <function name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--volume"/>
-    <function name="The &quot;connection-speed&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--connection-speed"/>
-    <function name="Usage" link="gst-plugins-base-plugins-playbin2.html#idp12984144"/>
-    <function name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin2.html#idp13000256"/>
-    <function name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin2.html#idp13010816"/>
-    <function name="Buffering" link="gst-plugins-base-plugins-playbin2.html#idp13012928"/>
-    <function name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin2.html#idp13015696"/>
-    <function name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin2.html#idp13017664"/>
-    <function name="Handling redirects" link="gst-plugins-base-plugins-playbin2.html#idp13019088"/>
-    <function name="Examples" link="gst-plugins-base-plugins-playbin2.html#idp13020768"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-playbin2.html#idp13025664"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-playbin2.html#idp13033120"/>
-    <function name="struct GstPlayBin2" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-struct"/>
-    <function name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin2.html#GstPlayFlags"/>
-    <function name="The &quot;audio-sink&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--audio-sink"/>
-    <function name="The &quot;connection-speed&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--connection-speed"/>
-    <function name="The &quot;current-audio&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--current-audio"/>
-    <function name="The &quot;current-text&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--current-text"/>
-    <function name="The &quot;current-video&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--current-video"/>
-    <function name="The &quot;flags&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--flags"/>
-    <function name="The &quot;frame&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--frame"/>
-    <function name="The &quot;n-audio&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--n-audio"/>
-    <function name="The &quot;n-text&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--n-text"/>
-    <function name="The &quot;n-video&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--n-video"/>
-    <function name="The &quot;source&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--source"/>
-    <function name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subtitle-encoding"/>
-    <function name="The &quot;subtitle-font-desc&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subtitle-font-desc"/>
-    <function name="The &quot;suburi&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--suburi"/>
-    <function name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--uri"/>
-    <function name="The &quot;video-sink&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--video-sink"/>
-    <function name="The &quot;vis-plugin&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--vis-plugin"/>
-    <function name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--volume"/>
-    <function name="The &quot;mute&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--mute"/>
-    <function name="The &quot;buffer-duration&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-duration"/>
-    <function name="The &quot;buffer-size&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-size"/>
-    <function name="The &quot;text-sink&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--text-sink"/>
-    <function name="The &quot;subpic-sink&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subpic-sink"/>
-    <function name="The &quot;av-offset&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--av-offset"/>
-    <function name="The &quot;ring-buffer-max-size&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--ring-buffer-max-size"/>
-    <function name="The &quot;about-to-finish&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-about-to-finish"/>
-    <function name="The &quot;audio-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-audio-changed"/>
-    <function name="The &quot;get-audio-tags&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-audio-tags"/>
-    <function name="The &quot;get-text-tags&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-text-tags"/>
-    <function name="The &quot;get-video-tags&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-video-tags"/>
-    <function name="The &quot;text-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-text-changed"/>
-    <function name="The &quot;video-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-video-changed"/>
-    <function name="The &quot;convert-frame&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-convert-frame"/>
-    <function name="The &quot;get-audio-pad&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-audio-pad"/>
-    <function name="The &quot;get-text-pad&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-text-pad"/>
-    <function name="The &quot;get-video-pad&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-video-pad"/>
-    <function name="The &quot;audio-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-audio-tags-changed"/>
-    <function name="The &quot;text-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-text-tags-changed"/>
-    <function name="The &quot;video-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-video-tags-changed"/>
-    <function name="The &quot;source-setup&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-source-setup"/>
-    <function name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp7086800"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp10635408"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp12392960"/>
-    <function name="struct GstSubtitleOverlay" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay-struct"/>
-    <function name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
-    <function name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
-    <function name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12521392"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12524112"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12440048"/>
-    <function name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
-    <function name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
-    <function name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
-    <function name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp13183280"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12497712"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12505120"/>
-    <function name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
-    <function name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
-    <function name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
-    <function name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp13211120"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp13213920"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12573296"/>
-    <function name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
-    <function name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
-    <function name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
-    <function name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13281472"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13284224"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13291632"/>
-    <function name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
-    <function name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
-    <function name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
-    <function name="Example launch lines" link="gst-plugins-base-plugins-textoverlay.html#idp13316752"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp6601408"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp9587280"/>
-    <function name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
-    <function name="enum GstTextOverlayVAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign"/>
-    <function name="enum GstTextOverlayHAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign"/>
-    <function name="enum GstTextOverlayWrapMode" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayWrapMode"/>
-    <function name="The &quot;deltax&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltax"/>
-    <function name="The &quot;deltay&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltay"/>
-    <function name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--font-desc"/>
-    <function name="The &quot;halign&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--halign"/>
-    <function name="The &quot;shaded-background&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shaded-background"/>
-    <function name="The &quot;text&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--text"/>
-    <function name="The &quot;valign&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valign"/>
-    <function name="The &quot;wrap-mode&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wrap-mode"/>
-    <function name="The &quot;xpad&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpad"/>
-    <function name="The &quot;ypad&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypad"/>
-    <function name="The &quot;halignment&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--halignment"/>
-    <function name="The &quot;valignment&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valignment"/>
-    <function name="The &quot;line-alignment&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--line-alignment"/>
-    <function name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--silent"/>
-    <function name="The &quot;wait-text&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wait-text"/>
-    <function name="The &quot;auto-resize&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--auto-resize"/>
-    <function name="The &quot;vertical-render&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--vertical-render"/>
-    <function name="The &quot;color&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color"/>
-    <function name="The &quot;xpos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos"/>
-    <function name="The &quot;ypos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos"/>
-    <function name="Example launch lines" link="gst-plugins-base-plugins-textrender.html#idp6059632"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp9372592"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp12613232"/>
-    <function name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
-    <function name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
-    <function name="The &quot;halignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
-    <function name="The &quot;line-alignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--line-alignment"/>
-    <function name="The &quot;valignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
-    <function name="The &quot;xpad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
-    <function name="The &quot;ypad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
-    <function name="Example pipeline" link="gst-plugins-base-plugins-theoradec.html#idp9236448"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp9481344"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13905472"/>
-    <function name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
-    <function name="The &quot;crop&quot; property" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop"/>
-    <function name="Example pipeline" link="gst-plugins-base-plugins-theoraenc.html#idp14365920"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14369280"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14376736"/>
-    <function name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
-    <function name="enum GstTheoraEncBorderMode" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode"/>
-    <function name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
-    <function name="The &quot;border&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border"/>
-    <function name="The &quot;center&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--center"/>
-    <function name="The &quot;keyframe-auto&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-auto"/>
-    <function name="The &quot;keyframe-force&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-force"/>
-    <function name="The &quot;keyframe-freq&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-freq"/>
-    <function name="The &quot;keyframe-mindistance&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-mindistance"/>
-    <function name="The &quot;keyframe-threshold&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-threshold"/>
-    <function name="The &quot;noise-sensitivity&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--noise-sensitivity"/>
-    <function name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--quality"/>
-    <function name="The &quot;quick&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--quick"/>
-    <function name="The &quot;sharpness&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--sharpness"/>
-    <function name="The &quot;speed-level&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--speed-level"/>
-    <function name="The &quot;cap-overflow&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-overflow"/>
-    <function name="The &quot;cap-underflow&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-underflow"/>
-    <function name="The &quot;drop-frames&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--drop-frames"/>
-    <function name="The &quot;rate-buffer&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--rate-buffer"/>
-    <function name="The &quot;vp3-compatible&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible"/>
-    <function name="The &quot;multipass-cache-file&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file"/>
-    <function name="The &quot;multipass-mode&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-theoraparse.html#idp6468032"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idm18688"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp13526480"/>
-    <function name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
-    <function name="The &quot;synchronization-points&quot; property" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points"/>
-    <function name="" link="gst-plugins-base-plugins-timeoverlay.html#idp14194400"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp14192224"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp13857408"/>
-    <function name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14708752"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14716208"/>
-    <function name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
-    <function name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
-    <function name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri"/>
-    <function name="The &quot;connection-speed&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--connection-speed"/>
-    <function name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps"/>
-    <function name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--subtitle-encoding"/>
-    <function name="The &quot;source&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--source"/>
-    <function name="The &quot;buffer-duration&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration"/>
-    <function name="The &quot;buffer-size&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-size"/>
-    <function name="The &quot;download&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--download"/>
-    <function name="The &quot;use-buffering&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--use-buffering"/>
-    <function name="The &quot;expose-all-streams&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--expose-all-streams"/>
-    <function name="The &quot;ring-buffer-max-size&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--ring-buffer-max-size"/>
-    <function name="The &quot;autoplug-continue&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-continue"/>
-    <function name="The &quot;autoplug-factories&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-factories"/>
-    <function name="The &quot;autoplug-select&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-select"/>
-    <function name="The &quot;unknown-type&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-unknown-type"/>
-    <function name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
-    <function name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort"/>
-    <function name="The &quot;source-setup&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp8830336"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp6062432"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14163520"/>
-    <function name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
-    <function name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
-    <function name="The &quot;duplicate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate"/>
-    <function name="The &quot;in&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--in"/>
-    <function name="The &quot;new-pref&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--new-pref"/>
-    <function name="The &quot;out&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--out"/>
-    <function name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent"/>
-    <function name="The &quot;skip-to-first&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp15315136"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp15311504"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp15302912"/>
-    <function name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
-    <function name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
-    <function name="The &quot;method&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
-    <function name="The &quot;add-borders&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15490528"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15488160"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15479360"/>
-    <function name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
-    <function name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
-    <function name="enum GstVideoTestSrcColorSpec" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec"/>
-    <function name="The &quot;pattern&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern"/>
-    <function name="The &quot;timestamp-offset&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset"/>
-    <function name="The &quot;is-live&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--is-live"/>
-    <function name="The &quot;peer-alloc&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--peer-alloc"/>
-    <function name="The &quot;colorspec&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--colorspec"/>
-    <function name="The &quot;k0&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--k0"/>
-    <function name="The &quot;kt&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt"/>
-    <function name="The &quot;kt2&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt2"/>
-    <function name="The &quot;kx&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kx"/>
-    <function name="The &quot;kx2&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kx2"/>
-    <function name="The &quot;kxt&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kxt"/>
-    <function name="The &quot;kxy&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kxy"/>
-    <function name="The &quot;ky&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--ky"/>
-    <function name="The &quot;ky2&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--ky2"/>
-    <function name="The &quot;kyt&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kyt"/>
-    <function name="The &quot;xoffset&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--xoffset"/>
-    <function name="The &quot;yoffset&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--yoffset"/>
-    <function name="The &quot;background-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
-    <function name="The &quot;foreground-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color"/>
-    <function name="The &quot;horizontal-speed&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed"/>
-    <function name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp15336800"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-volume.html#idp6725840"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp13916672"/>
-    <function name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
-    <function name="The &quot;mute&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
-    <function name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-vorbisdec.html#idp9378016"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp8007488"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp15561504"/>
-    <function name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-vorbisenc.html#idp15009216"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15013472"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15020880"/>
-    <function name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
-    <function name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
-    <function name="The &quot;last-message&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
-    <function name="The &quot;managed&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--managed"/>
-    <function name="The &quot;max-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
-    <function name="The &quot;min-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
-    <function name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-vorbisparse.html#idp7959088"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp10657648"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp14996624"/>
-    <function name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
-    <function name="Example pipelines" link="gst-plugins-base-plugins-vorbistag.html#idp9228848"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp8789296"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp14668272"/>
-    <function name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
-    <function name="Scaling" link="gst-plugins-base-plugins-ximagesink.html#idp15989760"/>
-    <function name="Events" link="gst-plugins-base-plugins-ximagesink.html#idp15992704"/>
-    <function name="Pixel aspect ratio" link="gst-plugins-base-plugins-ximagesink.html#idp15994688"/>
-    <function name="Examples" link="gst-plugins-base-plugins-ximagesink.html#idp15998368"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp16003856"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp16011312"/>
-    <function name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
-    <function name="The &quot;display&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
-    <function name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio"/>
-    <function name="The &quot;synchronous&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--synchronous"/>
-    <function name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio"/>
-    <function name="The &quot;handle-events&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-events"/>
-    <function name="The &quot;handle-expose&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose"/>
-    <function name="The &quot;window-height&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
-    <function name="The &quot;window-width&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
-    <function name="Scaling" link="gst-plugins-base-plugins-xvimagesink.html#idp16288528"/>
-    <function name="Events" link="gst-plugins-base-plugins-xvimagesink.html#idp16291104"/>
-    <function name="Pixel aspect ratio" link="gst-plugins-base-plugins-xvimagesink.html#idp16293088"/>
-    <function name="Examples" link="gst-plugins-base-plugins-xvimagesink.html#idp16296736"/>
-    <function name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16304880"/>
-    <function name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16312336"/>
-    <function name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
-    <function name="The &quot;brightness&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
-    <function name="The &quot;contrast&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast"/>
-    <function name="The &quot;display&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--display"/>
-    <function name="The &quot;hue&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--hue"/>
-    <function name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--pixel-aspect-ratio"/>
-    <function name="The &quot;saturation&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--saturation"/>
-    <function name="The &quot;synchronous&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--synchronous"/>
-    <function name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio"/>
-    <function name="The &quot;device&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--device"/>
-    <function name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--device-name"/>
-    <function name="The &quot;handle-events&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--handle-events"/>
-    <function name="The &quot;double-buffer&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--double-buffer"/>
-    <function name="The &quot;handle-expose&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--handle-expose"/>
-    <function name="The &quot;autopaint-colorkey&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--autopaint-colorkey"/>
-    <function name="The &quot;colorkey&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--colorkey"/>
-    <function name="The &quot;draw-borders&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--draw-borders"/>
-    <function name="The &quot;window-height&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height"/>
-    <function name="The &quot;window-width&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width"/>
-    <function name="struct GstPlayBaseBin" link="GstPlayBaseBin.html#GstPlayBaseBin-struct"/>
-    <function name="The &quot;connection-speed&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--connection-speed"/>
-    <function name="The &quot;current-audio&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--current-audio"/>
-    <function name="The &quot;current-text&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--current-text"/>
-    <function name="The &quot;current-video&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--current-video"/>
-    <function name="The &quot;nstreams&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--nstreams"/>
-    <function name="The &quot;queue-min-threshold&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--queue-min-threshold"/>
-    <function name="The &quot;queue-size&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--queue-size"/>
-    <function name="The &quot;queue-threshold&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--queue-threshold"/>
-    <function name="The &quot;source&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--source"/>
-    <function name="The &quot;stream-info&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--stream-info"/>
-    <function name="The &quot;stream-info-value-array&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--stream-info-value-array"/>
-    <function name="The &quot;subtitle-encoding&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--subtitle-encoding"/>
-    <function name="The &quot;suburi&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--suburi"/>
-    <function name="The &quot;uri&quot; property" link="GstPlayBaseBin.html#GstPlayBaseBin--uri"/>
-  </functions>
-</book>
index 636b559..f4c016c 100644 (file)
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp4775216"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp4772432"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp7769952"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idm11744"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idm14528"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp7769280"/>
     <keyword type="struct" name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp5517840"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp5525328"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp8801728"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp8809136"/>
     <keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
     <keyword type="property" name="The &quot;block&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
     <keyword type="signal" name="The &quot;need-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
     <keyword type="signal" name="The &quot;push-buffer&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
     <keyword type="signal" name="The &quot;seek-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9669776"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9677184"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9575968"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9583376"/>
     <keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
     <keyword type="signal" name="The &quot;pull-preroll&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-preroll"/>
     <keyword type="signal" name="The &quot;new-buffer-list&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-buffer-list"/>
     <keyword type="signal" name="The &quot;pull-buffer-list&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer-list"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp9594784"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp9602240"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp7095728"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp7103184"/>
     <keyword type="struct" name="struct GstAlsaMixerElement" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-alsasink.html#idp6507408"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp7524000"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp7531456"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp6692992"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp9721504"/>
     <keyword type="struct" name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
     <keyword type="property" name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-alsasrc.html#idp8699328"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp8702512"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9886976"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp4783184"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9856432"/>
     <keyword type="struct" name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
     <keyword type="property" name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp9937248"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp7421920"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp7007232"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp9950880"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp6613792"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp5527392"/>
     <keyword type="struct" name="struct GstAudioConvert" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"/>
     <keyword type="enum" name="enum GstAudioConvertDithering" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering"/>
     <keyword type="enum" name="enum GstAudioConvertNoiseShaping" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping"/>
     <keyword type="property" name="The &quot;dithering&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
     <keyword type="property" name="The &quot;noise-shaping&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp10131792"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10134512"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10141968"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp10065952"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10068672"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10076128"/>
     <keyword type="struct" name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
     <keyword type="property" name="The &quot;add&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent"/>
     <keyword type="property" name="The &quot;tolerance&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance"/>
     <keyword type="property" name="The &quot;skip-to-first&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp9934288"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp9932064"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp7787632"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp8557472"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp8555248"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp6067952"/>
     <keyword type="struct" name="struct GstAudioResample" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"/>
     <keyword type="property" name="The &quot;filter-length&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10290800"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10294688"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10302144"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10528400"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10222736"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10230192"/>
     <keyword type="struct" name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
     <keyword type="enum" name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
     <keyword type="property" name="The &quot;freq&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq"/>
     <keyword type="property" name="The &quot;wave&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave"/>
     <keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
     <keyword type="property" name="The &quot;can-activate-push&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10403712"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10411120"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10447776"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10455184"/>
     <keyword type="struct" name="struct GstCdParanoiaSrc" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-struct"/>
     <keyword type="property" name="The &quot;generic-device&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device"/>
     <keyword type="property" name="The &quot;paranoia-mode&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--paranoia-mode"/>
     <keyword type="property" name="The &quot;cache-size&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size"/>
     <keyword type="signal" name="The &quot;transport-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-transport-error"/>
     <keyword type="signal" name="The &quot;uncorrected-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-uncorrected-error"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-clockoverlay.html#idp6583856"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp6581168"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp6573712"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp10410336"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp10403552"/>
     <keyword type="struct" name="struct GstClockOverlay" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct"/>
     <keyword type="property" name="The &quot;time-format&quot; property" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp5296880"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp5304336"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp10626496"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp10633952"/>
     <keyword type="struct" name="struct GstDecodeBin" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-struct"/>
     <keyword type="property" name="The &quot;threaded&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--threaded"/>
     <keyword type="property" name="The &quot;sink-caps&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps"/>
     <keyword type="signal" name="The &quot;new-decoded-pad&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-new-decoded-pad"/>
     <keyword type="signal" name="The &quot;removed-decoded-pad&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-removed-decoded-pad"/>
     <keyword type="signal" name="The &quot;unknown-type&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-unknown-type"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin2.html#idp10887472"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin2.html#idp10894992"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin2.html#idp10756320"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin2.html#idp10763840"/>
     <keyword type="struct" name="struct GstDecodeBin2" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--caps"/>
     <keyword type="property" name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--subtitle-encoding"/>
     <keyword type="signal" name="The &quot;autoplug-factories&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-factories"/>
     <keyword type="signal" name="The &quot;autoplug-select&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-select"/>
     <keyword type="signal" name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-drained"/>
-    <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp6809216"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp11211984"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp11219392"/>
+    <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp7547488"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp5633232"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp5640640"/>
     <keyword type="struct" name="GstEncodeBin" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"/>
     <keyword type="property" name="The &quot;audio-jitter-tolerance&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance"/>
     <keyword type="property" name="The &quot;avoid-reencoding&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding"/>
     <keyword type="property" name="The &quot;queue-buffers-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max"/>
     <keyword type="property" name="The &quot;queue-bytes-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max"/>
     <keyword type="property" name="The &quot;queue-time-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max"/>
+    <keyword type="property" name="The &quot;flags&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags"/>
     <keyword type="signal" name="The &quot;request-pad&quot; signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10768768"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10766048"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10758336"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp8758528"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp8756320"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp8748608"/>
     <keyword type="struct" name="struct GstFFMpegCsp" link="gst-plugins-base-plugins-ffmpegcolorspace.html#GstFFMpegCsp-struct"/>
-    <keyword type="" name="" link="gst-plugins-base-plugins-gdpdepay.html#idp7288064"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp6887008"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp6465872"/>
+    <keyword type="" name="" link="gst-plugins-base-plugins-gdpdepay.html#idp5432624"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp9410320"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp8532512"/>
     <keyword type="struct" name="struct GstGDPDepay" link="gst-plugins-base-plugins-gdpdepay.html#GstGDPDepay-struct"/>
-    <keyword type="" name="" link="gst-plugins-base-plugins-gdppay.html#idp7837536"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp6322768"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11401568"/>
+    <keyword type="" name="" link="gst-plugins-base-plugins-gdppay.html#idp9711888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp7115488"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11021744"/>
     <keyword type="struct" name="struct GstGDPPay" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay-struct"/>
     <keyword type="property" name="The &quot;crc-header&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-header"/>
     <keyword type="property" name="The &quot;crc-payload&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-payload"/>
     <keyword type="property" name="The &quot;version&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--version"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp11111376"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp10531904"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp10539424"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp11203328"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp11489664"/>
     <keyword type="struct" name="struct GstGioSink" link="gst-plugins-base-plugins-giosink.html#GstGioSink-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--location"/>
     <keyword type="property" name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--file"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp11463456"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11468304"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11475824"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11039536"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11093520"/>
     <keyword type="struct" name="struct GstGioSrc" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location"/>
     <keyword type="property" name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file"/>
-    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp11498976"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11503440"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11510848"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11743776"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11046784"/>
     <keyword type="struct" name="struct GstGioStreamSink" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink-struct"/>
     <keyword type="property" name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream"/>
-    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp11630736"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp11635136"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11537408"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp5514880"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp10976752"/>
     <keyword type="struct" name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
     <keyword type="property" name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssink.html#idp11679088"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssink.html#idp11683472"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssink.html#idp11690928"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssink.html#idp11435584"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssink.html#idp11710784"/>
     <keyword type="struct" name="struct GstGnomeVFSSink" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-struct"/>
     <keyword type="property" name="The &quot;handle&quot; property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--handle"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--location"/>
     <keyword type="property" name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--uri"/>
     <keyword type="signal" name="The &quot;allow-overwrite&quot; signal" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11778080"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11782928"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11790448"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11375920"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11650544"/>
     <keyword type="struct" name="struct GstGnomeVFSSrc" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc-struct"/>
     <keyword type="property" name="The &quot;handle&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--handle"/>
     <keyword type="property" name="The &quot;iradio-genre&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-genre"/>
     <keyword type="property" name="The &quot;iradio-url&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-url"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--location"/>
     <keyword type="property" name="The &quot;random-access&quot; property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--random-access"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp12152560"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12159968"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp12022864"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12030272"/>
     <keyword type="struct" name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
     <keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
     <keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
     <keyword type="signal" name="The &quot;client-fd-removed&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-fd-removed"/>
     <keyword type="signal" name="The &quot;add-full&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
     <keyword type="signal" name="The &quot;remove-flush&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-oggdemux.html#idp9282128"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp7461456"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp5045200"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp5542432"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp10334672"/>
     <keyword type="struct" name="struct GstOggDemux" link="gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-oggmux.html#idp11580192"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11578016"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp5957200"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11180832"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp12591488"/>
     <keyword type="struct" name="struct GstOggMux" link="gst-plugins-base-plugins-oggmux.html#GstOggMux-struct"/>
     <keyword type="property" name="The &quot;max-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay"/>
     <keyword type="property" name="The &quot;max-page-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
-    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12073328"/>
-    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12645456"/>
-    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12656016"/>
-    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12665680"/>
-    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12668448"/>
-    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12670416"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12671840"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12676736"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12684192"/>
+    <keyword type="property" name="The &quot;max-tolerance&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance"/>
+    <keyword type="property" name="The &quot;skeleton&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12513120"/>
+    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12529232"/>
+    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12539792"/>
+    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12549456"/>
+    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12552224"/>
+    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12554192"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12555616"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12560512"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12567968"/>
     <keyword type="struct" name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
     <keyword type="property" name="The &quot;audio-sink&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
     <keyword type="property" name="The &quot;frame&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--frame"/>
     <keyword type="property" name="The &quot;vis-plugin&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--vis-plugin"/>
     <keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--volume"/>
     <keyword type="property" name="The &quot;connection-speed&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--connection-speed"/>
-    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin2.html#idp12984144"/>
-    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin2.html#idp13000256"/>
-    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin2.html#idp13010816"/>
-    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin2.html#idp13012928"/>
-    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin2.html#idp13015696"/>
-    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin2.html#idp13017664"/>
-    <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin2.html#idp13019088"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin2.html#idp13020768"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin2.html#idp13025664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin2.html#idp13033120"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin2.html#idp12868672"/>
+    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin2.html#idp12884784"/>
+    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin2.html#idp12895344"/>
+    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin2.html#idp12897456"/>
+    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin2.html#idp12900224"/>
+    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin2.html#idp12902192"/>
+    <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin2.html#idp12903616"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin2.html#idp12905296"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin2.html#idp12910192"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin2.html#idp12917648"/>
     <keyword type="struct" name="struct GstPlayBin2" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-struct"/>
     <keyword type="enum" name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin2.html#GstPlayFlags"/>
     <keyword type="property" name="The &quot;audio-sink&quot; property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--audio-sink"/>
     <keyword type="signal" name="The &quot;text-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-text-tags-changed"/>
     <keyword type="signal" name="The &quot;video-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-video-tags-changed"/>
     <keyword type="signal" name="The &quot;source-setup&quot; signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-source-setup"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp7086800"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp10635408"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp12392960"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp9764400"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6545120"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp13490496"/>
     <keyword type="struct" name="struct GstSubtitleOverlay" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay-struct"/>
     <keyword type="property" name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
     <keyword type="property" name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12521392"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12524112"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12440048"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11884512"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11887184"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11894592"/>
     <keyword type="struct" name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
     <keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp13183280"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12497712"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12505120"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp13086320"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp13088944"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp13063600"/>
     <keyword type="struct" name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
     <keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp13211120"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp13213920"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12573296"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp12360272"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp12363072"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12370480"/>
     <keyword type="struct" name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
     <keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13281472"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13284224"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13291632"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13217536"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13220288"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13227696"/>
     <keyword type="struct" name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-textoverlay.html#idp13316752"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp6601408"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp9587280"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp13778336"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp12277856"/>
     <keyword type="struct" name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
     <keyword type="enum" name="enum GstTextOverlayVAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign"/>
     <keyword type="enum" name="enum GstTextOverlayHAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign"/>
     <keyword type="property" name="The &quot;color&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color"/>
     <keyword type="property" name="The &quot;xpos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos"/>
     <keyword type="property" name="The &quot;ypos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-textrender.html#idp6059632"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp9372592"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp12613232"/>
+    <keyword type="property" name="The &quot;outline-color&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--outline-color"/>
+    <keyword type="property" name="The &quot;shadow&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shadow"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp8494000"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp13210432"/>
     <keyword type="struct" name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
     <keyword type="property" name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
     <keyword type="property" name="The &quot;halignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
     <keyword type="property" name="The &quot;valignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
     <keyword type="property" name="The &quot;xpad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
     <keyword type="property" name="The &quot;ypad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
-    <keyword type="" name="Example pipeline" link="gst-plugins-base-plugins-theoradec.html#idp9236448"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp9481344"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13905472"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp8405856"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp7711168"/>
     <keyword type="struct" name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
     <keyword type="property" name="The &quot;crop&quot; property" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop"/>
-    <keyword type="" name="Example pipeline" link="gst-plugins-base-plugins-theoraenc.html#idp14365920"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14369280"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14376736"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14220288"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14227744"/>
     <keyword type="struct" name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
     <keyword type="enum" name="enum GstTheoraEncBorderMode" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode"/>
     <keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
     <keyword type="property" name="The &quot;vp3-compatible&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible"/>
     <keyword type="property" name="The &quot;multipass-cache-file&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file"/>
     <keyword type="property" name="The &quot;multipass-mode&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-theoraparse.html#idp6468032"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idm18688"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp13526480"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idp6266352"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp7342592"/>
     <keyword type="struct" name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
     <keyword type="property" name="The &quot;synchronization-points&quot; property" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points"/>
-    <keyword type="" name="" link="gst-plugins-base-plugins-timeoverlay.html#idp14194400"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp14192224"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp13857408"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp14026048"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp14018464"/>
     <keyword type="struct" name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14708752"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14716208"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14538000"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14545456"/>
     <keyword type="struct" name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
     <keyword type="enum" name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
     <keyword type="property" name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri"/>
     <keyword type="signal" name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
     <keyword type="signal" name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort"/>
     <keyword type="signal" name="The &quot;source-setup&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp8830336"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp6062432"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14163520"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp14912624"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp14917040"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14924496"/>
     <keyword type="struct" name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
     <keyword type="property" name="The &quot;duplicate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate"/>
     <keyword type="property" name="The &quot;out&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--out"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent"/>
     <keyword type="property" name="The &quot;skip-to-first&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp15315136"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp15311504"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp15302912"/>
+    <keyword type="property" name="The &quot;average-period&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period"/>
+    <keyword type="property" name="The &quot;drop-only&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only"/>
+    <keyword type="property" name="The &quot;force-fps&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps"/>
+    <keyword type="property" name="The &quot;max-rate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp14852496"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp14848880"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp14841968"/>
     <keyword type="struct" name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
     <keyword type="enum" name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
     <keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
     <keyword type="property" name="The &quot;add-borders&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15490528"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15488160"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15479360"/>
+    <keyword type="property" name="The &quot;dither&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither"/>
+    <keyword type="property" name="The &quot;envelope&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope"/>
+    <keyword type="property" name="The &quot;sharpen&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen"/>
+    <keyword type="property" name="The &quot;sharpness&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15476256"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15473888"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15465088"/>
     <keyword type="struct" name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
     <keyword type="enum" name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
     <keyword type="enum" name="enum GstVideoTestSrcColorSpec" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec"/>
     <keyword type="property" name="The &quot;background-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
     <keyword type="property" name="The &quot;foreground-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color"/>
     <keyword type="property" name="The &quot;horizontal-speed&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp15336800"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp6725840"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp13916672"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp5784592"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp6771392"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp9320000"/>
     <keyword type="struct" name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
     <keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
     <keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbisdec.html#idp9378016"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp8007488"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp15561504"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp9506784"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp10364544"/>
     <keyword type="struct" name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbisenc.html#idp15009216"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15013472"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15020880"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15533792"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15550768"/>
     <keyword type="struct" name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
     <keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
     <keyword type="property" name="The &quot;last-message&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
     <keyword type="property" name="The &quot;max-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
     <keyword type="property" name="The &quot;min-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbisparse.html#idp7959088"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp10657648"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp14996624"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp12296176"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp9306656"/>
     <keyword type="struct" name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbistag.html#idp9228848"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp8789296"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp14668272"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp8217872"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp6805408"/>
     <keyword type="struct" name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
-    <keyword type="" name="Scaling" link="gst-plugins-base-plugins-ximagesink.html#idp15989760"/>
-    <keyword type="" name="Events" link="gst-plugins-base-plugins-ximagesink.html#idp15992704"/>
-    <keyword type="" name="Pixel aspect ratio" link="gst-plugins-base-plugins-ximagesink.html#idp15994688"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-ximagesink.html#idp15998368"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp16003856"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp16011312"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp14442752"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp14450208"/>
     <keyword type="struct" name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
     <keyword type="property" name="The &quot;display&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
     <keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio"/>
     <keyword type="property" name="The &quot;handle-expose&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose"/>
     <keyword type="property" name="The &quot;window-height&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
     <keyword type="property" name="The &quot;window-width&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
-    <keyword type="" name="Scaling" link="gst-plugins-base-plugins-xvimagesink.html#idp16288528"/>
-    <keyword type="" name="Events" link="gst-plugins-base-plugins-xvimagesink.html#idp16291104"/>
-    <keyword type="" name="Pixel aspect ratio" link="gst-plugins-base-plugins-xvimagesink.html#idp16293088"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-xvimagesink.html#idp16296736"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16304880"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16312336"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16140224"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16147680"/>
     <keyword type="struct" name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
     <keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
     <keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_SINE_TAB" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SINE-TAB:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_TICKS" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-TICKS:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-GAUSSIAN-WHITE-NOISE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_RED_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS"/>
     <keyword type="constant" name="GST_RECOVER_POLICY_NONE" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-NONE:CAPS"/>
     <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_LATEST" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"/>
     <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"/>
     <keyword type="constant" name="GST_PLAY_FLAG_DOWNLOAD" link="gst-plugins-base-plugins-playbin2.html#GST-PLAY-FLAG-DOWNLOAD:CAPS"/>
     <keyword type="constant" name="GST_PLAY_FLAG_BUFFERING" link="gst-plugins-base-plugins-playbin2.html#GST-PLAY-FLAG-BUFFERING:CAPS"/>
     <keyword type="constant" name="GST_PLAY_FLAG_DEINTERLACE" link="gst-plugins-base-plugins-playbin2.html#GST-PLAY-FLAG-DEINTERLACE:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_BASELINE" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_BOTTOM" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_TOP" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-TOP:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_POS" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-POS:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_CENTER" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_LEFT" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_CENTER" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_RIGHT" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_UNUSED" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_POS" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-POS:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_NONE" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_WORD" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_CHAR" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS"/>
-    <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS"/>
-    <keyword type="constant" name="BORDER_NONE" link="gst-plugins-base-plugins-theoraenc.html#BORDER-NONE:CAPS"/>
-    <keyword type="constant" name="BORDER_BLACK" link="gst-plugins-base-plugins-theoraenc.html#BORDER-BLACK:CAPS"/>
-    <keyword type="constant" name="BORDER_MIRROR" link="gst-plugins-base-plugins-theoraenc.html#BORDER-MIRROR:CAPS"/>
     <keyword type="constant" name="GST_AUTOPLUG_SELECT_TRY" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"/>
     <keyword type="constant" name="GST_AUTOPLUG_SELECT_EXPOSE" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"/>
     <keyword type="constant" name="GST_AUTOPLUG_SELECT_SKIP" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_SCALE_NEAREST" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-NEAREST:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_SCALE_BILINEAR" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-BILINEAR:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_SCALE_4TAP" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-4TAP:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_SCALE_LANCZOS" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-LANCZOS:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TEST_SRC_SMPTE" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SMPTE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TEST_SRC_SNOW" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SNOW:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_TEST_SRC_BLACK" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-BLACK:CAPS"/>
index c8379df..594d7eb 100644 (file)
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base Plugins 0.10 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
 <link rel="next" href="ch01.html" title="gst-plugins-base Elements">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 0.10 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Plugins 0.10 (0.10.34)
+      for GStreamer Base Plugins 0.10 (0.10.36)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
     </p></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.17</div>
+          Generated by GTK-Doc V1.18</div>
 </body>
 </html>
\ No newline at end of file
index 5122a29..6ea0c9f 100644 (file)
@@ -73,7 +73,6 @@
 <ANCHOR id="gst-plugins-base-plugins-alsamixer.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.property-details">
 <ANCHOR id="GstAlsaMixerElement--device" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device">
 <ANCHOR id="GstAlsaMixerElement--device-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name">
-<ANCHOR id="gst-plugins-base-plugins-alsamixer.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.see-also">
 <ANCHOR id="gst-plugins-base-plugins-alsasink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html">
 <ANCHOR id="gst-plugins-base-plugins-alsasink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.synopsis">
 <ANCHOR id="GstAlsaSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink">
@@ -87,7 +86,6 @@
 <ANCHOR id="GstAlsaSink--device" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device">
 <ANCHOR id="GstAlsaSink--device-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name">
 <ANCHOR id="GstAlsaSink--card-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name">
-<ANCHOR id="gst-plugins-base-plugins-alsasink.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.see-also">
 <ANCHOR id="gst-plugins-base-plugins-alsasrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html">
 <ANCHOR id="gst-plugins-base-plugins-alsasrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.synopsis">
 <ANCHOR id="GstAlsaSrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc">
 <ANCHOR id="GstAlsaSrc--device" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device">
 <ANCHOR id="GstAlsaSrc--device-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name">
 <ANCHOR id="GstAlsaSrc--card-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name">
-<ANCHOR id="gst-plugins-base-plugins-alsasrc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.see-also">
 <ANCHOR id="gst-plugins-base-plugins-audioconvert" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audioconvert.html">
 <ANCHOR id="gst-plugins-base-plugins-audioconvert.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audioconvert.html#gst-plugins-base-plugins-audioconvert.synopsis">
 <ANCHOR id="GstAudioConvert" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audioconvert.html#GstAudioConvert">
 <ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-SINE-TAB:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SINE-TAB:CAPS">
 <ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-TICKS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-TICKS:CAPS">
 <ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-GAUSSIAN-WHITE-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-GAUSSIAN-WHITE-NOISE:CAPS">
+<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS">
+<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS">
+<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-audiotestsrc.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#gst-plugins-base-plugins-audiotestsrc.property-details">
 <ANCHOR id="GstAudioTestSrc--freq" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq">
 <ANCHOR id="GstAudioTestSrc--is-live" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live">
 <ANCHOR id="GstClockOverlay-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct">
 <ANCHOR id="gst-plugins-base-plugins-clockoverlay.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#gst-plugins-base-plugins-clockoverlay.property-details">
 <ANCHOR id="GstClockOverlay--time-format" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format">
-<ANCHOR id="gst-plugins-base-plugins-clockoverlay.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#gst-plugins-base-plugins-clockoverlay.see-also">
 <ANCHOR id="gst-plugins-base-plugins-decodebin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-decodebin.html">
 <ANCHOR id="gst-plugins-base-plugins-decodebin.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-decodebin.html#gst-plugins-base-plugins-decodebin.synopsis">
 <ANCHOR id="GstDecodeBin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-decodebin.html#GstDecodeBin">
 <ANCHOR id="GstEncodeBin--queue-buffers-max" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max">
 <ANCHOR id="GstEncodeBin--queue-bytes-max" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max">
 <ANCHOR id="GstEncodeBin--queue-time-max" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max">
+<ANCHOR id="GstEncodeBin--flags" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags">
 <ANCHOR id="gst-plugins-base-plugins-encodebin.signal-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#gst-plugins-base-plugins-encodebin.signal-details">
 <ANCHOR id="GstEncodeBin-request-pad" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad">
 <ANCHOR id="gst-plugins-base-plugins-ffmpegcolorspace" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ffmpegcolorspace.html">
 <ANCHOR id="gst-plugins-base-plugins-giosink.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#gst-plugins-base-plugins-giosink.property-details">
 <ANCHOR id="GstGioSink--location" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#GstGioSink--location">
 <ANCHOR id="GstGioSink--file" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#GstGioSink--file">
-<ANCHOR id="gst-plugins-base-plugins-giosink.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#gst-plugins-base-plugins-giosink.see-also">
 <ANCHOR id="gst-plugins-base-plugins-giosrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html">
 <ANCHOR id="gst-plugins-base-plugins-giosrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#gst-plugins-base-plugins-giosrc.synopsis">
 <ANCHOR id="GstGioSrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#GstGioSrc">
 <ANCHOR id="gst-plugins-base-plugins-giosrc.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#gst-plugins-base-plugins-giosrc.property-details">
 <ANCHOR id="GstGioSrc--location" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#GstGioSrc--location">
 <ANCHOR id="GstGioSrc--file" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#GstGioSrc--file">
-<ANCHOR id="gst-plugins-base-plugins-giosrc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#gst-plugins-base-plugins-giosrc.see-also">
 <ANCHOR id="gst-plugins-base-plugins-giostreamsink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giostreamsink.html">
 <ANCHOR id="gst-plugins-base-plugins-giostreamsink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giostreamsink.html#gst-plugins-base-plugins-giostreamsink.synopsis">
 <ANCHOR id="GstGioStreamSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink">
 <ANCHOR id="GstGnomeVFSSink--uri" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--uri">
 <ANCHOR id="gst-plugins-base-plugins-gnomevfssink.signal-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#gst-plugins-base-plugins-gnomevfssink.signal-details">
 <ANCHOR id="GstGnomeVFSSink-allow-overwrite" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite">
-<ANCHOR id="gst-plugins-base-plugins-gnomevfssink.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#gst-plugins-base-plugins-gnomevfssink.see-also">
 <ANCHOR id="gst-plugins-base-plugins-gnomevfssrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html">
 <ANCHOR id="gst-plugins-base-plugins-gnomevfssrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#gst-plugins-base-plugins-gnomevfssrc.synopsis">
 <ANCHOR id="GstGnomeVFSSrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc">
 <ANCHOR id="GstGnomeVFSSrc--iradio-url" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-url">
 <ANCHOR id="GstGnomeVFSSrc--location" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--location">
 <ANCHOR id="GstGnomeVFSSrc--random-access" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--random-access">
-<ANCHOR id="gst-plugins-base-plugins-gnomevfssrc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#gst-plugins-base-plugins-gnomevfssrc.see-also">
 <ANCHOR id="gst-plugins-base-plugins-multifdsink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-multifdsink.html">
 <ANCHOR id="gst-plugins-base-plugins-multifdsink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-multifdsink.html#gst-plugins-base-plugins-multifdsink.synopsis">
 <ANCHOR id="GstMultiFdSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink">
 <ANCHOR id="gst-plugins-base-plugins-oggdemux.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#gst-plugins-base-plugins-oggdemux.description">
 <ANCHOR id="gst-plugins-base-plugins-oggdemux.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#gst-plugins-base-plugins-oggdemux.details">
 <ANCHOR id="GstOggDemux-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct">
-<ANCHOR id="gst-plugins-base-plugins-oggdemux.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#gst-plugins-base-plugins-oggdemux.see-also">
 <ANCHOR id="gst-plugins-base-plugins-oggmux" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html">
 <ANCHOR id="gst-plugins-base-plugins-oggmux.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#gst-plugins-base-plugins-oggmux.synopsis">
 <ANCHOR id="GstOggMux" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux">
 <ANCHOR id="gst-plugins-base-plugins-oggmux.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#gst-plugins-base-plugins-oggmux.property-details">
 <ANCHOR id="GstOggMux--max-delay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay">
 <ANCHOR id="GstOggMux--max-page-delay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay">
-<ANCHOR id="gst-plugins-base-plugins-oggmux.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#gst-plugins-base-plugins-oggmux.see-also">
+<ANCHOR id="GstOggMux--max-tolerance" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance">
+<ANCHOR id="GstOggMux--skeleton" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton">
 <ANCHOR id="gst-plugins-base-plugins-playbin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-playbin.html">
 <ANCHOR id="gst-plugins-base-plugins-playbin.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-playbin.html#gst-plugins-base-plugins-playbin.synopsis">
 <ANCHOR id="GstPlayBin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-playbin.html#GstPlayBin">
 <ANCHOR id="gst-plugins-base-plugins-textoverlay.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#gst-plugins-base-plugins-textoverlay.details">
 <ANCHOR id="GstTextOverlay-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct">
 <ANCHOR id="GstTextOverlayVAlign" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-TOP:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-TOP:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-POS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-POS:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS">
 <ANCHOR id="GstTextOverlayHAlign" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-POS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-POS:CAPS">
 <ANCHOR id="GstTextOverlayWrapMode" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayWrapMode">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-textoverlay.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#gst-plugins-base-plugins-textoverlay.property-details">
 <ANCHOR id="GstTextOverlay--deltax" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltax">
 <ANCHOR id="GstTextOverlay--deltay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltay">
 <ANCHOR id="GstTextOverlay--color" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color">
 <ANCHOR id="GstTextOverlay--xpos" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos">
 <ANCHOR id="GstTextOverlay--ypos" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos">
-<ANCHOR id="gst-plugins-base-plugins-textoverlay.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#gst-plugins-base-plugins-textoverlay.see-also">
+<ANCHOR id="GstTextOverlay--outline-color" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--outline-color">
+<ANCHOR id="GstTextOverlay--shadow" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shadow">
 <ANCHOR id="gst-plugins-base-plugins-textrender" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html">
 <ANCHOR id="gst-plugins-base-plugins-textrender.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#gst-plugins-base-plugins-textrender.synopsis">
 <ANCHOR id="GstTextRender" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender">
 <ANCHOR id="GstTextRender--valignment" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender--valignment">
 <ANCHOR id="GstTextRender--xpad" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender--xpad">
 <ANCHOR id="GstTextRender--ypad" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender--ypad">
-<ANCHOR id="gst-plugins-base-plugins-textrender.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#gst-plugins-base-plugins-textrender.see-also">
 <ANCHOR id="gst-plugins-base-plugins-theoradec" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html">
 <ANCHOR id="gst-plugins-base-plugins-theoradec.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#gst-plugins-base-plugins-theoradec.synopsis">
 <ANCHOR id="GstTheoraDec" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#GstTheoraDec">
 <ANCHOR id="GstTheoraDec-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct">
 <ANCHOR id="gst-plugins-base-plugins-theoradec.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#gst-plugins-base-plugins-theoradec.property-details">
 <ANCHOR id="GstTheoraDec--crop" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop">
-<ANCHOR id="gst-plugins-base-plugins-theoradec.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#gst-plugins-base-plugins-theoradec.see-also">
 <ANCHOR id="gst-plugins-base-plugins-theoraenc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html">
 <ANCHOR id="gst-plugins-base-plugins-theoraenc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.synopsis">
 <ANCHOR id="GstTheoraEnc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc">
 <ANCHOR id="gst-plugins-base-plugins-theoraenc.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.details">
 <ANCHOR id="GstTheoraEnc-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct">
 <ANCHOR id="GstTheoraEncBorderMode" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode">
-<ANCHOR id="BORDER-NONE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#BORDER-NONE:CAPS">
-<ANCHOR id="BORDER-BLACK:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#BORDER-BLACK:CAPS">
-<ANCHOR id="BORDER-MIRROR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#BORDER-MIRROR:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-theoraenc.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.property-details">
 <ANCHOR id="GstTheoraEnc--bitrate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate">
 <ANCHOR id="GstTheoraEnc--border" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border">
 <ANCHOR id="GstTheoraEnc--vp3-compatible" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible">
 <ANCHOR id="GstTheoraEnc--multipass-cache-file" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file">
 <ANCHOR id="GstTheoraEnc--multipass-mode" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode">
-<ANCHOR id="gst-plugins-base-plugins-theoraenc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.see-also">
 <ANCHOR id="gst-plugins-base-plugins-theoraparse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html">
 <ANCHOR id="gst-plugins-base-plugins-theoraparse.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#gst-plugins-base-plugins-theoraparse.synopsis">
 <ANCHOR id="GstTheoraParse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#GstTheoraParse">
 <ANCHOR id="GstTheoraParse-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct">
 <ANCHOR id="gst-plugins-base-plugins-theoraparse.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#gst-plugins-base-plugins-theoraparse.property-details">
 <ANCHOR id="GstTheoraParse--synchronization-points" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points">
-<ANCHOR id="gst-plugins-base-plugins-theoraparse.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#gst-plugins-base-plugins-theoraparse.see-also">
 <ANCHOR id="gst-plugins-base-plugins-timeoverlay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html">
 <ANCHOR id="gst-plugins-base-plugins-timeoverlay.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.synopsis">
 <ANCHOR id="GstTimeOverlay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay">
 <ANCHOR id="gst-plugins-base-plugins-timeoverlay.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.description">
 <ANCHOR id="gst-plugins-base-plugins-timeoverlay.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.details">
 <ANCHOR id="GstTimeOverlay-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct">
-<ANCHOR id="gst-plugins-base-plugins-timeoverlay.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.see-also">
 <ANCHOR id="gst-plugins-base-plugins-uridecodebin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-uridecodebin.html">
 <ANCHOR id="gst-plugins-base-plugins-uridecodebin.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-uridecodebin.html#gst-plugins-base-plugins-uridecodebin.synopsis">
 <ANCHOR id="GstURIDecodeBin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin">
 <ANCHOR id="GstVideoRate--out" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--out">
 <ANCHOR id="GstVideoRate--silent" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--silent">
 <ANCHOR id="GstVideoRate--skip-to-first" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first">
+<ANCHOR id="GstVideoRate--average-period" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period">
+<ANCHOR id="GstVideoRate--drop-only" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only">
+<ANCHOR id="GstVideoRate--force-fps" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps">
+<ANCHOR id="GstVideoRate--max-rate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate">
 <ANCHOR id="gst-plugins-base-plugins-videoscale" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html">
 <ANCHOR id="gst-plugins-base-plugins-videoscale.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#gst-plugins-base-plugins-videoscale.synopsis">
 <ANCHOR id="GstVideoScale" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale">
 <ANCHOR id="GST-VIDEO-SCALE-NEAREST:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-NEAREST:CAPS">
 <ANCHOR id="GST-VIDEO-SCALE-BILINEAR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-BILINEAR:CAPS">
 <ANCHOR id="GST-VIDEO-SCALE-4TAP:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-4TAP:CAPS">
+<ANCHOR id="GST-VIDEO-SCALE-LANCZOS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-LANCZOS:CAPS">
 <ANCHOR id="gst-plugins-base-plugins-videoscale.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#gst-plugins-base-plugins-videoscale.property-details">
 <ANCHOR id="GstVideoScale--method" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--method">
 <ANCHOR id="GstVideoScale--add-borders" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders">
+<ANCHOR id="GstVideoScale--dither" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither">
+<ANCHOR id="GstVideoScale--envelope" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope">
+<ANCHOR id="GstVideoScale--sharpen" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen">
+<ANCHOR id="GstVideoScale--sharpness" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness">
 <ANCHOR id="gst-plugins-base-plugins-videoscale.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#gst-plugins-base-plugins-videoscale.see-also">
 <ANCHOR id="gst-plugins-base-plugins-videotestsrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videotestsrc.html">
 <ANCHOR id="gst-plugins-base-plugins-videotestsrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videotestsrc.html#gst-plugins-base-plugins-videotestsrc.synopsis">
 <ANCHOR id="gst-plugins-base-plugins-vorbisdec.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#gst-plugins-base-plugins-vorbisdec.description">
 <ANCHOR id="gst-plugins-base-plugins-vorbisdec.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#gst-plugins-base-plugins-vorbisdec.details">
 <ANCHOR id="GstVorbisDec-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct">
-<ANCHOR id="gst-plugins-base-plugins-vorbisdec.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#gst-plugins-base-plugins-vorbisdec.see-also">
 <ANCHOR id="gst-plugins-base-plugins-vorbisenc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html">
 <ANCHOR id="gst-plugins-base-plugins-vorbisenc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#gst-plugins-base-plugins-vorbisenc.synopsis">
 <ANCHOR id="GstVorbisEnc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc">
 <ANCHOR id="GstVorbisEnc--max-bitrate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate">
 <ANCHOR id="GstVorbisEnc--min-bitrate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate">
 <ANCHOR id="GstVorbisEnc--quality" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality">
-<ANCHOR id="gst-plugins-base-plugins-vorbisenc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#gst-plugins-base-plugins-vorbisenc.see-also">
 <ANCHOR id="gst-plugins-base-plugins-vorbisparse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html">
 <ANCHOR id="gst-plugins-base-plugins-vorbisparse.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.synopsis">
 <ANCHOR id="GstVorbisParse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse">
 <ANCHOR id="gst-plugins-base-plugins-vorbisparse.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.description">
 <ANCHOR id="gst-plugins-base-plugins-vorbisparse.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.details">
 <ANCHOR id="GstVorbisParse-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct">
-<ANCHOR id="gst-plugins-base-plugins-vorbisparse.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.see-also">
 <ANCHOR id="gst-plugins-base-plugins-vorbistag" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html">
 <ANCHOR id="gst-plugins-base-plugins-vorbistag.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.synopsis">
 <ANCHOR id="GstVorbisTag" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#GstVorbisTag">
 <ANCHOR id="gst-plugins-base-plugins-vorbistag.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.description">
 <ANCHOR id="gst-plugins-base-plugins-vorbistag.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.details">
 <ANCHOR id="GstVorbisTag-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct">
-<ANCHOR id="gst-plugins-base-plugins-vorbistag.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.see-also">
 <ANCHOR id="gst-plugins-base-plugins-ximagesink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ximagesink.html">
 <ANCHOR id="gst-plugins-base-plugins-ximagesink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ximagesink.html#gst-plugins-base-plugins-ximagesink.synopsis">
 <ANCHOR id="GstXImageSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ximagesink.html#GstXImageSink">
index d550573..e55c6fd 100644 (file)
@@ -3,7 +3,7 @@
   <description>Adds multiple streams</description>
   <filename>../../gst/adder/.libs/libgstadder.so</filename>
   <basename>libgstadder.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 78eaa69..1f04e6d 100644 (file)
@@ -3,7 +3,7 @@
   <description>ALSA plugin library</description>
   <filename>../../ext/alsa/.libs/libgstalsa.so</filename>
   <basename>libgstalsa.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 80f5001..99301b1 100644 (file)
@@ -3,7 +3,7 @@
   <description>Elements used to communicate with applications</description>
   <filename>../../gst/app/.libs/libgstapp.so</filename>
   <basename>libgstapp.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index f2867ba..373c697 100644 (file)
@@ -3,7 +3,7 @@
   <description>Convert audio to different formats</description>
   <filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
   <basename>libgstaudioconvert.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 68f0ef8..00d9f6e 100644 (file)
@@ -3,7 +3,7 @@
   <description>Adjusts audio frames</description>
   <filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
   <basename>libgstaudiorate.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 82b53e9..f257476 100644 (file)
@@ -3,7 +3,7 @@
   <description>Resamples audio</description>
   <filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
   <basename>libgstaudioresample.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 9f6f4d3..95f38b8 100644 (file)
@@ -3,7 +3,7 @@
   <description>Creates audio test signals of given frequency and volume</description>
   <filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
   <basename>libgstaudiotestsrc.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 5e90eca..852657e 100644 (file)
@@ -3,7 +3,7 @@
   <description>Read audio from CD in paranoid mode</description>
   <filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
   <basename>libgstcdparanoia.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index f37abd0..7ad14c7 100644 (file)
@@ -3,7 +3,7 @@
   <description>decoder bin</description>
   <filename>../../gst/playback/.libs/libgstdecodebin.so</filename>
   <basename>libgstdecodebin.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index a5db521..63923a4 100644 (file)
@@ -3,7 +3,7 @@
   <description>various encoding-related elements</description>
   <filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
   <basename>libgstencodebin.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 25ae9e3..fd4a87a 100644 (file)
@@ -3,7 +3,7 @@
   <description>colorspace conversion copied from FFMpeg 0.4.9-pre1</description>
   <filename>../../gst/ffmpegcolorspace/.libs/libgstffmpegcolorspace.so</filename>
   <basename>libgstffmpegcolorspace.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>FFMpeg</package>
index c1ed224..4f0530a 100644 (file)
@@ -3,7 +3,7 @@
   <description>Payload/depayload GDP packets</description>
   <filename>../../gst/gdp/.libs/libgstgdp.so</filename>
   <basename>libgstgdp.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index b2661d0..e0d6844 100644 (file)
@@ -3,7 +3,7 @@
   <description>GIO elements</description>
   <filename>../../ext/gio/.libs/libgstgio.so</filename>
   <basename>libgstgio.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index b6847f4..9fab8cb 100644 (file)
@@ -3,7 +3,7 @@
   <description>elements to read from and write to  Gnome-VFS uri&apos;s</description>
   <filename>../../ext/gnomevfs/.libs/libgstgnomevfs.so</filename>
   <basename>libgstgnomevfs.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index d1f4a3e..10ea0ae 100644 (file)
@@ -3,7 +3,7 @@
   <description>libvisual visualization plugins</description>
   <filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
   <basename>libgstlibvisual.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 691d07e..2b2d462 100644 (file)
@@ -3,7 +3,7 @@
   <description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
   <filename>../../ext/ogg/.libs/libgstogg.so</filename>
   <basename>libgstogg.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -62,7 +62,7 @@
           <name>sink_%d</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-theora; audio/x-vorbis; audio/x-flac; audio/x-speex; audio/x-celt; application/x-ogm-video; application/x-ogm-audio; video/x-dirac; video/x-smoke; video/x-vp8; text/x-cmml, encoded=(boolean)true; subtitle/x-kate; application/x-kate</details>
+          <details>video/x-theora; audio/x-vorbis; audio/x-flac; audio/x-speex; audio/x-celt; application/x-ogm-video; application/x-ogm-audio; video/x-dirac; video/x-smoke; video/x-vp8; text/x-cmml, encoded=(boolean)true; subtitle/x-kate; application/x-kate; audio/x-opus</details>
         </caps>
         <caps>
           <name>src</name>
index fe62a8b..9c0e2bd 100644 (file)
@@ -3,7 +3,7 @@
   <description>Pango-based text rendering and overlay</description>
   <filename>../../ext/pango/.libs/libgstpango.so</filename>
   <basename>libgstpango.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
           <name>video_sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
           <name>video_sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
           <name>video_sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
index 83d07d3..cd2dbf2 100644 (file)
@@ -3,7 +3,7 @@
   <description>various playback elements</description>
   <filename>../../gst/playback/.libs/libgstplaybin.so</filename>
   <basename>libgstplaybin.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index ec7a1ca..862a0aa 100644 (file)
@@ -3,7 +3,7 @@
   <description>Subtitle parsing</description>
   <filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
   <basename>libgstsubparse.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 82cf63d..8b4647a 100644 (file)
@@ -3,7 +3,7 @@
   <description>transfer data over the network via TCP</description>
   <filename>../../gst/tcp/.libs/libgsttcp.so</filename>
   <basename>libgsttcp.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index a972089..b1c3ec8 100644 (file)
@@ -3,7 +3,7 @@
   <description>Theora plugin library</description>
   <filename>../../ext/theora/.libs/libgsttheora.so</filename>
   <basename>libgsttheora.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index bcce4f3..535a49f 100644 (file)
@@ -3,7 +3,7 @@
   <description>default typefind functions</description>
   <filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
   <basename>libgsttypefindfunctions.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index caac56d..bbe1fbc 100644 (file)
@@ -3,7 +3,7 @@
   <description>URI Decoder bin</description>
   <filename>../../gst/playback/.libs/libgstdecodebin2.so</filename>
   <basename>libgstdecodebin2.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index d469b97..689fc2c 100644 (file)
@@ -3,7 +3,7 @@
   <description>Adjusts video frames</description>
   <filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
   <basename>libgstvideorate.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 76f0298..7d1d524 100644 (file)
@@ -3,7 +3,7 @@
   <description>Resizes video</description>
   <filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
   <basename>libgstvideoscale.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 7d90f1e..31b0d19 100644 (file)
@@ -3,7 +3,7 @@
   <description>Creates a test video stream</description>
   <filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
   <basename>libgstvideotestsrc.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 8bbfc58..e7414e7 100644 (file)
@@ -3,7 +3,7 @@
   <description>plugin for controlling audio volume</description>
   <filename>../../gst/volume/.libs/libgstvolume.so</filename>
   <basename>libgstvolume.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index f94b83f..664011f 100644 (file)
@@ -3,7 +3,7 @@
   <description>Vorbis plugin library</description>
   <filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
   <basename>libgstvorbis.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -41,7 +41,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 256 ], endianness=(int)1234, width=(int)32</details>
+          <details>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 255 ], endianness=(int)1234, width=(int)32</details>
         </caps>
         <caps>
           <name>src</name>
index 07578e6..8a23410 100644 (file)
@@ -3,7 +3,7 @@
   <description>X11 video output element based on standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
   <basename>libgstximagesink.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
index 8b3a91b..8e11797 100644 (file)
@@ -3,7 +3,7 @@
   <description>XFree86 video output plugin using Xv extension</description>
   <filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
   <basename>libgstxvimagesink.so</basename>
-  <version>0.10.34</version>
+  <version>0.10.36</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/scanobj-build.stamp b/docs/plugins/scanobj-build.stamp
new file mode 100644 (file)
index 0000000..e69de29
index e7e971d..e677f10 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -60,6 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -84,11 +85,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -192,6 +193,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -252,6 +254,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -261,9 +264,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -286,6 +292,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -358,10 +365,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -395,7 +405,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -481,6 +490,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/parallel-subdirs.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -705,10 +715,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 8806f90..82668c9 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -116,8 +123,8 @@ am_libgstalsa_la_OBJECTS = libgstalsa_la-gstalsadeviceprobe.lo \
        libgstalsa_la-gstalsaplugin.lo libgstalsa_la-gstalsasink.lo \
        libgstalsa_la-gstalsasrc.lo libgstalsa_la-gstalsa.lo
 libgstalsa_la_OBJECTS = $(am_libgstalsa_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstalsa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -133,21 +140,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstalsa_la_SOURCES)
 DIST_SOURCES = $(libgstalsa_la_SOURCES)
@@ -215,6 +222,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -275,6 +283,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -284,9 +293,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -309,6 +321,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -381,10 +394,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -418,7 +434,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -540,7 +555,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstalsa.la: $(libgstalsa_la_OBJECTS) $(libgstalsa_la_DEPENDENCIES) 
+libgstalsa.la: $(libgstalsa_la_OBJECTS) $(libgstalsa_la_DEPENDENCIES) $(EXTRA_libgstalsa_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstalsa_la_LINK) -rpath $(plugindir) $(libgstalsa_la_OBJECTS) $(libgstalsa_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -562,98 +577,86 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstalsa_la-gstalsadeviceprobe.lo: gstalsadeviceprobe.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsadeviceprobe.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Tpo -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Tpo $(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsadeviceprobe.c' object='libgstalsa_la-gstalsadeviceprobe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsadeviceprobe.c' object='libgstalsa_la-gstalsadeviceprobe.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
 
 libgstalsa_la-gstalsamixer.lo: gstalsamixer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixer.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixer.Tpo -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixer.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsamixer.c' object='libgstalsa_la-gstalsamixer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsamixer.c' object='libgstalsa_la-gstalsamixer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
 
 libgstalsa_la-gstalsamixerelement.lo: gstalsamixerelement.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixerelement.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Tpo -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsamixerelement.c' object='libgstalsa_la-gstalsamixerelement.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsamixerelement.c' object='libgstalsa_la-gstalsamixerelement.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
 
 libgstalsa_la-gstalsamixertrack.lo: gstalsamixertrack.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixertrack.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Tpo -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsamixertrack.c' object='libgstalsa_la-gstalsamixertrack.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsamixertrack.c' object='libgstalsa_la-gstalsamixertrack.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
 
 libgstalsa_la-gstalsamixeroptions.lo: gstalsamixeroptions.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Tpo -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsamixeroptions.c' object='libgstalsa_la-gstalsamixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsamixeroptions.c' object='libgstalsa_la-gstalsamixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
 
 libgstalsa_la-gstalsaplugin.lo: gstalsaplugin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsaplugin.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsaplugin.Tpo -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsaplugin.Tpo $(DEPDIR)/libgstalsa_la-gstalsaplugin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsaplugin.c' object='libgstalsa_la-gstalsaplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsaplugin.c' object='libgstalsa_la-gstalsaplugin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
 
 libgstalsa_la-gstalsasink.lo: gstalsasink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsasink.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsasink.Tpo -c -o libgstalsa_la-gstalsasink.lo `test -f 'gstalsasink.c' || echo '$(srcdir)/'`gstalsasink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsasink.Tpo $(DEPDIR)/libgstalsa_la-gstalsasink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsasink.c' object='libgstalsa_la-gstalsasink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsasink.c' object='libgstalsa_la-gstalsasink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasink.lo `test -f 'gstalsasink.c' || echo '$(srcdir)/'`gstalsasink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasink.lo `test -f 'gstalsasink.c' || echo '$(srcdir)/'`gstalsasink.c
 
 libgstalsa_la-gstalsasrc.lo: gstalsasrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsasrc.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsasrc.Tpo -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsasrc.Tpo $(DEPDIR)/libgstalsa_la-gstalsasrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsasrc.c' object='libgstalsa_la-gstalsasrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsasrc.c' object='libgstalsa_la-gstalsasrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
 
 libgstalsa_la-gstalsa.lo: gstalsa.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsa.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsa.Tpo -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsa.Tpo $(DEPDIR)/libgstalsa_la-gstalsa.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstalsa.c' object='libgstalsa_la-gstalsa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstalsa.c' object='libgstalsa_la-gstalsa.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -760,10 +763,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 83596a3..4b22d34 100644 (file)
@@ -26,6 +26,8 @@
 #include "gstalsadeviceprobe.h"
 #include "gst/interfaces/propertyprobe.h"
 
+G_LOCK_DEFINE_STATIC (probe_lock);
+
 static const GList *
 gst_alsa_device_property_probe_get_properties (GstPropertyProbe * probe)
 {
@@ -34,7 +36,7 @@ gst_alsa_device_property_probe_get_properties (GstPropertyProbe * probe)
 
   /* well, not perfect, but better than no locking at all.
    * In the worst case we leak a list node, so who cares? */
-  GST_CLASS_LOCK (GST_OBJECT_CLASS (klass));
+  G_LOCK (probe_lock);
 
   if (!list) {
     GParamSpec *pspec;
@@ -43,7 +45,7 @@ gst_alsa_device_property_probe_get_properties (GstPropertyProbe * probe)
     list = g_list_append (NULL, pspec);
   }
 
-  GST_CLASS_UNLOCK (GST_OBJECT_CLASS (klass));
+  G_UNLOCK (probe_lock);
 
   return list;
 }
index b30a7bb..6b77545 100644 (file)
 #include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include "gstalsamixer.h"
+#include "gst/glib-compat-private.h"
 #include <errno.h>
 
 static void gst_alsa_mixer_update_option (GstAlsaMixer * mixer,
@@ -130,14 +135,14 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
 
   count = snd_mixer_get_count (handle);
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   /* Check if we have a playback mixer labelled as 'Master' */
   element = snd_mixer_first_elem (handle);
   for (i = 0; i < count; i++) {
     if (snd_mixer_selem_has_playback_volume (element) &&
         strcmp (snd_mixer_selem_get_name (element), "Master") == 0) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
@@ -148,7 +153,7 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
   for (i = 0; i < count; i++) {
     if (snd_mixer_selem_has_playback_volume (element) &&
         strcmp (snd_mixer_selem_get_name (element), "Front") == 0) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
@@ -159,7 +164,7 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
   for (i = 0; i < count; i++) {
     if (snd_mixer_selem_has_playback_volume (element) &&
         strcmp (snd_mixer_selem_get_name (element), "PCM") == 0) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
@@ -170,7 +175,7 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
   for (i = 0; i < count; i++) {
     if (snd_mixer_selem_has_playback_volume (element) &&
         strcmp (snd_mixer_selem_get_name (element), "Speaker") == 0) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
@@ -183,7 +188,7 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
     if (snd_mixer_selem_has_playback_volume (element) &&
         snd_mixer_selem_has_playback_switch (element) &&
         !snd_mixer_selem_is_playback_mono (element)) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
@@ -194,7 +199,7 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
   for (i = 0; i < count; i++) {
     if (snd_mixer_selem_has_playback_volume (element) &&
         snd_mixer_selem_has_playback_switch (element)) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
@@ -204,13 +209,13 @@ gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
   element = snd_mixer_first_elem (handle);
   for (i = 0; i < count; i++) {
     if (snd_mixer_selem_has_playback_volume (element)) {
-      g_static_rec_mutex_unlock (mixer->rec_mutex);
+      GST_ALSA_MIXER_UNLOCK (mixer);
       return element;
     }
     element = snd_mixer_elem_next (element);
   }
 
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
   /* Looks like we're out of luck ... */
   return NULL;
 }
@@ -222,7 +227,7 @@ gst_alsa_mixer_update (GstAlsaMixer * mixer, snd_mixer_elem_t * elem)
 
   g_return_if_fail (mixer != NULL);
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   for (item = mixer->tracklist; item != NULL; item = item->next) {
     if (GST_IS_ALSA_MIXER_TRACK (item->data)) {
@@ -238,7 +243,7 @@ gst_alsa_mixer_update (GstAlsaMixer * mixer, snd_mixer_elem_t * elem)
     }
   }
 
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 static int
@@ -287,7 +292,7 @@ gst_alsa_mixer_ensure_track_list (GstAlsaMixer * mixer)
   if (mixer->tracklist)
     return;
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   master = gst_alsa_mixer_find_master_mixer (mixer, mixer->handle);
 
@@ -409,7 +414,7 @@ gst_alsa_mixer_ensure_track_list (GstAlsaMixer * mixer)
     snd_mixer_elem_set_callback_private (temp, mixer);
   }
 
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 static void
@@ -421,13 +426,13 @@ task_monitor_alsa (gpointer data)
   GstAlsaMixer *mixer = (GstAlsaMixer *) data;
   gint ret;
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   nfds = snd_mixer_poll_descriptors_count (mixer->handle);
   if (nfds <= 0) {
     GST_ERROR ("snd_mixer_poll_descriptors_count <= 0: %d", nfds);
     /* FIXME: sleep ? stop monitoring ? */
-    g_static_rec_mutex_unlock (mixer->rec_mutex);
+    GST_ALSA_MIXER_UNLOCK (mixer);
     return;
   }
 
@@ -439,7 +444,7 @@ task_monitor_alsa (gpointer data)
     GST_ELEMENT_ERROR (mixer, RESOURCE, READ, (NULL), ("alsa error: %s",
             snd_strerror (rnfds)));
     gst_task_pause (mixer->task);
-    g_static_rec_mutex_unlock (mixer->rec_mutex);
+    GST_ALSA_MIXER_UNLOCK (mixer);
     return;
   }
 
@@ -447,7 +452,7 @@ task_monitor_alsa (gpointer data)
   pfds[rnfds].events = POLLIN | POLLPRI | POLLHUP | POLLERR;
   pfds[rnfds].revents = 0;
 
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 
   GST_LOG ("task loop");
   ret = poll (pfds, rnfds + 1, -1);
@@ -458,7 +463,7 @@ task_monitor_alsa (gpointer data)
     return;
   }
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   ret =
       snd_mixer_poll_descriptors_revents (mixer->handle, pfds, nfds, &revents);
@@ -474,7 +479,7 @@ task_monitor_alsa (gpointer data)
     gst_task_pause (mixer->task);
   }
 
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 /* API */
@@ -491,14 +496,15 @@ gst_alsa_mixer_new (const char *device, GstAlsaMixerDirection dir)
   if (pipe (ret->pfd) == -1)
     goto error;
 
-  ret->rec_mutex = g_new (GStaticRecMutex, 1);
-  g_static_rec_mutex_init (ret->rec_mutex);
-
-  ret->task_mutex = g_new (GStaticRecMutex, 1);
-  g_static_rec_mutex_init (ret->task_mutex);
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+  g_static_rec_mutex_init (&ret->rec_mutex);
+#else
+  g_rec_mutex_init (&ret->rec_mutex);
+#endif
+  g_static_rec_mutex_init (&ret->task_mutex);
 
   ret->task = gst_task_create (task_monitor_alsa, ret);
-  gst_task_set_lock (ret->task, ret->task_mutex);
+  gst_task_set_lock (ret->task, &ret->task_mutex);
 
   ret->device = g_strdup (device);
   ret->dir = dir;
@@ -540,9 +546,7 @@ gst_alsa_mixer_free (GstAlsaMixer * mixer)
     mixer->task = NULL;
   }
 
-  g_static_rec_mutex_free (mixer->task_mutex);
-  g_free (mixer->task_mutex);
-  mixer->task_mutex = NULL;
+  g_static_rec_mutex_free (&mixer->task_mutex);
 
   if (mixer->pfd[0] > 0) {
     close (mixer->pfd[0]);
@@ -579,10 +583,11 @@ gst_alsa_mixer_free (GstAlsaMixer * mixer)
     snd_mixer_close (mixer->handle);
     mixer->handle = NULL;
   }
-
-  g_static_rec_mutex_free (mixer->rec_mutex);
-  g_free (mixer->rec_mutex);
-  mixer->rec_mutex = NULL;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+  g_static_rec_mutex_free (&mixer->rec_mutex);
+#else
+  g_rec_mutex_clear (&mixer->rec_mutex);
+#endif
 
   g_free (mixer);
 }
@@ -606,7 +611,7 @@ gst_alsa_mixer_get_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
 
   g_return_if_fail (mixer->handle != NULL);
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   gst_alsa_mixer_track_update (alsa_track);
 
@@ -642,7 +647,7 @@ gst_alsa_mixer_get_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
         volumes[i] = alsa_track->volumes[i];
     }
   }
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 static gboolean
@@ -670,7 +675,7 @@ gst_alsa_mixer_set_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
 
   g_return_if_fail (mixer->handle != NULL);
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   gst_alsa_mixer_track_update (alsa_track);
 
@@ -718,7 +723,7 @@ gst_alsa_mixer_set_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
         alsa_track->volumes[i] = volumes[i];
     }
   }
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 void
@@ -729,12 +734,12 @@ gst_alsa_mixer_set_mute (GstAlsaMixer * mixer, GstMixerTrack * track,
 
   g_return_if_fail (mixer->handle != NULL);
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   gst_alsa_mixer_track_update (alsa_track);
 
   if (! !(mute) == ! !(track->flags & GST_MIXER_TRACK_MUTE)) {
-    g_static_rec_mutex_unlock (mixer->rec_mutex);
+    GST_ALSA_MIXER_UNLOCK (mixer);
     return;
   }
   if (mute) {
@@ -765,12 +770,12 @@ gst_alsa_mixer_set_mute (GstAlsaMixer * mixer, GstMixerTrack * track,
 
     for (i = 0; i < ((GstMixerTrack *) ctrl_track)->num_channels; i++) {
       long vol =
-          mute ? ((GstMixerTrack *) ctrl_track)->
-          min_volume : ctrl_track->volumes[i];
+          mute ? ((GstMixerTrack *) ctrl_track)->min_volume : ctrl_track->
+          volumes[i];
       snd_mixer_selem_set_playback_volume (ctrl_track->element, i, vol);
     }
   }
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 void
@@ -781,12 +786,12 @@ gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
 
   g_return_if_fail (mixer->handle != NULL);
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
 
   gst_alsa_mixer_track_update (alsa_track);
 
   if (! !(record) == ! !(track->flags & GST_MIXER_TRACK_RECORD)) {
-    g_static_rec_mutex_unlock (mixer->rec_mutex);
+    GST_ALSA_MIXER_UNLOCK (mixer);
     return;
   }
 
@@ -800,7 +805,7 @@ gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
     snd_mixer_selem_set_capture_switch_all (alsa_track->element,
         record ? 1 : 0);
 
-    /* update all tracks in same exlusive cswitch group */
+    /* update all tracks in same exclusive cswitch group */
     if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL) {
       GList *item;
 
@@ -826,7 +831,7 @@ gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
       snd_mixer_selem_set_capture_volume (alsa_track->element, i, vol);
     }
   }
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 void
@@ -848,9 +853,9 @@ gst_alsa_mixer_set_option (GstAlsaMixer * mixer,
   if (idx == -1)
     return;
 
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
   snd_mixer_selem_set_enum_item (alsa_opts->element, 0, idx);
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
 }
 
 const gchar *
@@ -861,9 +866,9 @@ gst_alsa_mixer_get_option (GstAlsaMixer * mixer, GstMixerOptions * opts)
   GstAlsaMixerOptions *alsa_opts = GST_ALSA_MIXER_OPTIONS (opts);
 
   g_return_val_if_fail (mixer->handle != NULL, NULL);
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
   ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx);
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
   if (ret == 0)
     return g_list_nth_data (opts->values, idx);
   else
@@ -890,9 +895,9 @@ gst_alsa_mixer_update_option (GstAlsaMixer * mixer,
     GST_WARNING ("Cannot send update notifications, no GstMixer * given");
     return;
   }
-  g_static_rec_mutex_lock (mixer->rec_mutex);
+  GST_ALSA_MIXER_LOCK (mixer);
   ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx);
-  g_static_rec_mutex_unlock (mixer->rec_mutex);
+  GST_ALSA_MIXER_UNLOCK (mixer);
   if (ret == 0) {
     option = g_list_nth_data (GST_MIXER_OPTIONS (alsa_opts)->values, idx);
     gst_mixer_option_changed (mixer->interface, GST_MIXER_OPTIONS (alsa_opts),
index ccc3784..dc20cf2 100644 (file)
@@ -53,8 +53,13 @@ struct _GstAlsaMixer
   snd_mixer_t *         handle;
 
   GstTask *            task;
-  GStaticRecMutex *    task_mutex;
-  GStaticRecMutex *    rec_mutex;
+  GStaticRecMutex      task_mutex;
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+  GStaticRecMutex      rec_mutex;
+#else
+  GRecMutex            rec_mutex;
+#endif
 
   int                  pfd[2];
 
@@ -65,6 +70,13 @@ struct _GstAlsaMixer
   GstAlsaMixerDirection dir;
 };
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+#define GST_ALSA_MIXER_LOCK(mixer)   g_static_rec_mutex_lock (&mixer->rec_mutex)
+#define GST_ALSA_MIXER_UNLOCK(mixer) g_static_rec_mutex_unlock (&mixer->rec_mutex)
+#else
+#define GST_ALSA_MIXER_LOCK(mixer)   g_rec_mutex_lock (&mixer->rec_mutex)
+#define GST_ALSA_MIXER_UNLOCK(mixer) g_rec_mutex_unlock (&mixer->rec_mutex)
+#endif
 
 GstAlsaMixer*   gst_alsa_mixer_new              (const gchar *device,
                                                  GstAlsaMixerDirection dir);
index 2fb37df..53fd1c2 100644 (file)
@@ -52,6 +52,7 @@
 #include "gstalsadeviceprobe.h"
 
 #include <gst/gst-i18n-plugin.h>
+#include "gst/glib-compat-private.h"
 
 #define DEFAULT_DEVICE         "default"
 #define DEFAULT_DEVICE_NAME    ""
@@ -172,8 +173,8 @@ gst_alsasink_base_init (gpointer g_class)
       "Audio sink (ALSA)", "Sink/Audio",
       "Output to a sound card via ALSA", "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&alsasink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &alsasink_sink_factory);
 }
 
 static void
@@ -373,8 +374,6 @@ retry:
   rrate = alsa->rate;
   CHECK (snd_pcm_hw_params_set_rate_near (alsa->handle, params, &rrate, NULL),
       no_rate);
-  if (rrate != alsa->rate)
-    goto rate_match;
 
 #ifndef GST_DISABLE_GST_DEBUG
   /* get and dump some limits */
@@ -504,13 +503,6 @@ no_rate:
             alsa->rate, snd_strerror (err)));
     return err;
   }
-rate_match:
-  {
-    GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
-        ("Rate doesn't match (requested %iHz, get %iHz)", alsa->rate, err));
-    snd_pcm_hw_params_free (params);
-    return -EINVAL;
-  }
 buffer_size:
   {
     GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
index d9e6bc8..917f0dc 100644 (file)
@@ -48,6 +48,7 @@
 
 #include "gstalsasrc.h"
 #include "gstalsadeviceprobe.h"
+#include "gst/glib-compat-private.h"
 
 #include <gst/gst-i18n-plugin.h>
 
@@ -191,8 +192,8 @@ gst_alsasrc_base_init (gpointer g_class)
       "Audio source (ALSA)", "Source/Audio",
       "Read from a sound card via ALSA", "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&alsasrc_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &alsasrc_src_factory);
 }
 
 static void
index cfd4a37..a60d024 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -111,8 +118,8 @@ libgstcdparanoia_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/cdda/libgstcdda-
 am_libgstcdparanoia_la_OBJECTS =  \
        libgstcdparanoia_la-gstcdparanoiasrc.lo
 libgstcdparanoia_la_OBJECTS = $(am_libgstcdparanoia_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstcdparanoia_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -128,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstcdparanoia_la_SOURCES)
 DIST_SOURCES = $(libgstcdparanoia_la_SOURCES)
@@ -210,6 +217,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -270,6 +278,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -279,9 +288,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -304,6 +316,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -376,10 +389,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -413,7 +429,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -516,7 +531,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstcdparanoia.la: $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_DEPENDENCIES) 
+libgstcdparanoia.la: $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_DEPENDENCIES) $(EXTRA_libgstcdparanoia_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstcdparanoia_la_LINK) -rpath $(plugindir) $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -530,34 +545,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstcdparanoia_la-gstcdparanoiasrc.lo: gstcdparanoiasrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) -MT libgstcdparanoia_la-gstcdparanoiasrc.lo -MD -MP -MF $(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Tpo -c -o libgstcdparanoia_la-gstcdparanoiasrc.lo `test -f 'gstcdparanoiasrc.c' || echo '$(srcdir)/'`gstcdparanoiasrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Tpo $(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstcdparanoiasrc.c' object='libgstcdparanoia_la-gstcdparanoiasrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstcdparanoiasrc.c' object='libgstcdparanoia_la-gstcdparanoiasrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) -c -o libgstcdparanoia_la-gstcdparanoiasrc.lo `test -f 'gstcdparanoiasrc.c' || echo '$(srcdir)/'`gstcdparanoiasrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) -c -o libgstcdparanoia_la-gstcdparanoiasrc.lo `test -f 'gstcdparanoiasrc.c' || echo '$(srcdir)/'`gstcdparanoiasrc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -664,10 +675,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 5ea182d..864ebc7 100644 (file)
@@ -529,13 +529,12 @@ plugin_init (GstPlugin * plugin)
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 #endif
 
-
   return TRUE;
 }
 
-
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
     "cdparanoia",
     "Read audio from CD in paranoid mode",
-    plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
+    plugin_init, GST_PLUGINS_BASE_VERSION, "LGPL", GST_PACKAGE_NAME,
+    GST_PACKAGE_ORIGIN)
index 6cec23c..e61dff8 100644 (file)
@@ -27,6 +27,12 @@ G_BEGIN_DECLS
 #define size16 gint16
 #define size32 gint32
 
+/* on OSX the cdparanoia headers include IOKit framework headers (in particular
+ * SCSICmds_INQUIRY_Definitions.h) which define a structure that has a member
+ * named VERSION, so we must #undef VERSION here for things to compile on OSX */
+static char GST_PLUGINS_BASE_VERSION[] = VERSION;
+#undef VERSION
+
 #ifdef CDPARANOIA_HEADERS_IN_DIR
   #include <cdda/cdda_interface.h>
   #include <cdda/cdda_paranoia.h>
index cff115f..d836401 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -59,6 +59,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -104,6 +105,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -115,8 +122,8 @@ am_libgstgio_la_OBJECTS = libgstgio_la-gstgio.lo \
        libgstgio_la-gstgiostreamsink.lo \
        libgstgio_la-gstgiostreamsrc.lo
 libgstgio_la_OBJECTS = $(am_libgstgio_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstgio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -132,21 +139,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstgio_la_SOURCES)
 DIST_SOURCES = $(libgstgio_la_SOURCES)
@@ -214,6 +221,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -274,6 +282,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -283,9 +292,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -308,6 +320,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -380,10 +393,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -417,7 +433,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -530,7 +545,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstgio.la: $(libgstgio_la_OBJECTS) $(libgstgio_la_DEPENDENCIES) 
+libgstgio.la: $(libgstgio_la_OBJECTS) $(libgstgio_la_DEPENDENCIES) $(EXTRA_libgstgio_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstgio_la_LINK) -rpath $(plugindir) $(libgstgio_la_OBJECTS) $(libgstgio_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -550,82 +565,72 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstgio_la-gstgio.lo: gstgio.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgio.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgio.Tpo -c -o libgstgio_la-gstgio.lo `test -f 'gstgio.c' || echo '$(srcdir)/'`gstgio.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgio.Tpo $(DEPDIR)/libgstgio_la-gstgio.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgio.c' object='libgstgio_la-gstgio.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgio.c' object='libgstgio_la-gstgio.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgio.lo `test -f 'gstgio.c' || echo '$(srcdir)/'`gstgio.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgio.lo `test -f 'gstgio.c' || echo '$(srcdir)/'`gstgio.c
 
 libgstgio_la-gstgiobasesink.lo: gstgiobasesink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiobasesink.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiobasesink.Tpo -c -o libgstgio_la-gstgiobasesink.lo `test -f 'gstgiobasesink.c' || echo '$(srcdir)/'`gstgiobasesink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiobasesink.Tpo $(DEPDIR)/libgstgio_la-gstgiobasesink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgiobasesink.c' object='libgstgio_la-gstgiobasesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgiobasesink.c' object='libgstgio_la-gstgiobasesink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesink.lo `test -f 'gstgiobasesink.c' || echo '$(srcdir)/'`gstgiobasesink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesink.lo `test -f 'gstgiobasesink.c' || echo '$(srcdir)/'`gstgiobasesink.c
 
 libgstgio_la-gstgiobasesrc.lo: gstgiobasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiobasesrc.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiobasesrc.Tpo -c -o libgstgio_la-gstgiobasesrc.lo `test -f 'gstgiobasesrc.c' || echo '$(srcdir)/'`gstgiobasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiobasesrc.Tpo $(DEPDIR)/libgstgio_la-gstgiobasesrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgiobasesrc.c' object='libgstgio_la-gstgiobasesrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgiobasesrc.c' object='libgstgio_la-gstgiobasesrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesrc.lo `test -f 'gstgiobasesrc.c' || echo '$(srcdir)/'`gstgiobasesrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesrc.lo `test -f 'gstgiobasesrc.c' || echo '$(srcdir)/'`gstgiobasesrc.c
 
 libgstgio_la-gstgiosink.lo: gstgiosink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiosink.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiosink.Tpo -c -o libgstgio_la-gstgiosink.lo `test -f 'gstgiosink.c' || echo '$(srcdir)/'`gstgiosink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiosink.Tpo $(DEPDIR)/libgstgio_la-gstgiosink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgiosink.c' object='libgstgio_la-gstgiosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgiosink.c' object='libgstgio_la-gstgiosink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosink.lo `test -f 'gstgiosink.c' || echo '$(srcdir)/'`gstgiosink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosink.lo `test -f 'gstgiosink.c' || echo '$(srcdir)/'`gstgiosink.c
 
 libgstgio_la-gstgiosrc.lo: gstgiosrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiosrc.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiosrc.Tpo -c -o libgstgio_la-gstgiosrc.lo `test -f 'gstgiosrc.c' || echo '$(srcdir)/'`gstgiosrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiosrc.Tpo $(DEPDIR)/libgstgio_la-gstgiosrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgiosrc.c' object='libgstgio_la-gstgiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgiosrc.c' object='libgstgio_la-gstgiosrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosrc.lo `test -f 'gstgiosrc.c' || echo '$(srcdir)/'`gstgiosrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosrc.lo `test -f 'gstgiosrc.c' || echo '$(srcdir)/'`gstgiosrc.c
 
 libgstgio_la-gstgiostreamsink.lo: gstgiostreamsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiostreamsink.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiostreamsink.Tpo -c -o libgstgio_la-gstgiostreamsink.lo `test -f 'gstgiostreamsink.c' || echo '$(srcdir)/'`gstgiostreamsink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiostreamsink.Tpo $(DEPDIR)/libgstgio_la-gstgiostreamsink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgiostreamsink.c' object='libgstgio_la-gstgiostreamsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgiostreamsink.c' object='libgstgio_la-gstgiostreamsink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsink.lo `test -f 'gstgiostreamsink.c' || echo '$(srcdir)/'`gstgiostreamsink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsink.lo `test -f 'gstgiostreamsink.c' || echo '$(srcdir)/'`gstgiostreamsink.c
 
 libgstgio_la-gstgiostreamsrc.lo: gstgiostreamsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiostreamsrc.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiostreamsrc.Tpo -c -o libgstgio_la-gstgiostreamsrc.lo `test -f 'gstgiostreamsrc.c' || echo '$(srcdir)/'`gstgiostreamsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiostreamsrc.Tpo $(DEPDIR)/libgstgio_la-gstgiostreamsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgiostreamsrc.c' object='libgstgio_la-gstgiostreamsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgiostreamsrc.c' object='libgstgio_la-gstgiostreamsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsrc.lo `test -f 'gstgiostreamsrc.c' || echo '$(srcdir)/'`gstgiostreamsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsrc.lo `test -f 'gstgiostreamsrc.c' || echo '$(srcdir)/'`gstgiostreamsrc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -732,10 +737,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 40a64eb..40add1c 100644 (file)
@@ -55,8 +55,7 @@ gst_gio_base_sink_base_init (gpointer gclass)
   GST_DEBUG_CATEGORY_INIT (gst_gio_base_sink_debug, "gio_base_sink", 0,
       "GIO base sink");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 }
 
 static void
index 133e12c..a51b104 100644 (file)
@@ -61,8 +61,7 @@ gst_gio_base_src_base_init (gpointer gclass)
   GST_DEBUG_CATEGORY_INIT (gst_gio_base_src_debug, "gio_base_src", 0,
       "GIO base source");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 }
 
 static void
index 3ba6916..5a8305d 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -112,8 +119,8 @@ am_libgstgnomevfs_la_OBJECTS = libgstgnomevfs_la-gstgnomevfs.lo \
        libgstgnomevfs_la-gstgnomevfssrc.lo \
        libgstgnomevfs_la-gstgnomevfsuri.lo
 libgstgnomevfs_la_OBJECTS = $(am_libgstgnomevfs_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstgnomevfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -129,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstgnomevfs_la_SOURCES)
 DIST_SOURCES = $(libgstgnomevfs_la_SOURCES)
@@ -211,6 +218,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -271,6 +279,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -280,9 +289,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -305,6 +317,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -377,10 +390,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -414,7 +430,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -522,7 +537,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstgnomevfs.la: $(libgstgnomevfs_la_OBJECTS) $(libgstgnomevfs_la_DEPENDENCIES) 
+libgstgnomevfs.la: $(libgstgnomevfs_la_OBJECTS) $(libgstgnomevfs_la_DEPENDENCIES) $(EXTRA_libgstgnomevfs_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstgnomevfs_la_LINK) -rpath $(plugindir) $(libgstgnomevfs_la_OBJECTS) $(libgstgnomevfs_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -539,58 +554,51 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstgnomevfs_la-gstgnomevfs.lo: gstgnomevfs.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfs.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfs.Tpo -c -o libgstgnomevfs_la-gstgnomevfs.lo `test -f 'gstgnomevfs.c' || echo '$(srcdir)/'`gstgnomevfs.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfs.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfs.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgnomevfs.c' object='libgstgnomevfs_la-gstgnomevfs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgnomevfs.c' object='libgstgnomevfs_la-gstgnomevfs.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfs.lo `test -f 'gstgnomevfs.c' || echo '$(srcdir)/'`gstgnomevfs.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfs.lo `test -f 'gstgnomevfs.c' || echo '$(srcdir)/'`gstgnomevfs.c
 
 libgstgnomevfs_la-gstgnomevfssink.lo: gstgnomevfssink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfssink.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssink.Tpo -c -o libgstgnomevfs_la-gstgnomevfssink.lo `test -f 'gstgnomevfssink.c' || echo '$(srcdir)/'`gstgnomevfssink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssink.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgnomevfssink.c' object='libgstgnomevfs_la-gstgnomevfssink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgnomevfssink.c' object='libgstgnomevfs_la-gstgnomevfssink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssink.lo `test -f 'gstgnomevfssink.c' || echo '$(srcdir)/'`gstgnomevfssink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssink.lo `test -f 'gstgnomevfssink.c' || echo '$(srcdir)/'`gstgnomevfssink.c
 
 libgstgnomevfs_la-gstgnomevfssrc.lo: gstgnomevfssrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfssrc.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssrc.Tpo -c -o libgstgnomevfs_la-gstgnomevfssrc.lo `test -f 'gstgnomevfssrc.c' || echo '$(srcdir)/'`gstgnomevfssrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssrc.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgnomevfssrc.c' object='libgstgnomevfs_la-gstgnomevfssrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgnomevfssrc.c' object='libgstgnomevfs_la-gstgnomevfssrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssrc.lo `test -f 'gstgnomevfssrc.c' || echo '$(srcdir)/'`gstgnomevfssrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssrc.lo `test -f 'gstgnomevfssrc.c' || echo '$(srcdir)/'`gstgnomevfssrc.c
 
 libgstgnomevfs_la-gstgnomevfsuri.lo: gstgnomevfsuri.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfsuri.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfsuri.Tpo -c -o libgstgnomevfs_la-gstgnomevfsuri.lo `test -f 'gstgnomevfsuri.c' || echo '$(srcdir)/'`gstgnomevfsuri.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfsuri.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfsuri.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgnomevfsuri.c' object='libgstgnomevfs_la-gstgnomevfsuri.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgnomevfsuri.c' object='libgstgnomevfs_la-gstgnomevfsuri.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfsuri.lo `test -f 'gstgnomevfsuri.c' || echo '$(srcdir)/'`gstgnomevfsuri.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfsuri.lo `test -f 'gstgnomevfsuri.c' || echo '$(srcdir)/'`gstgnomevfsuri.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -697,10 +705,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 1a5f31f..205f1bb 100644 (file)
@@ -131,8 +131,7 @@ gst_gnome_vfs_sink_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_details_simple (element_class,
       "GnomeVFS Sink", "Sink/File",
index 4b2507c..9be426a 100644 (file)
@@ -70,6 +70,7 @@
 #include "gst/gst-i18n-plugin.h"
 
 #include "gstgnomevfssrc.h"
+#include <gnome-vfs-module-2.0/libgnomevfs/gnome-vfs-cancellable-ops.h>
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -132,6 +133,8 @@ static gboolean gst_gnome_vfs_src_stop (GstBaseSrc * src);
 static gboolean gst_gnome_vfs_src_start (GstBaseSrc * src);
 static gboolean gst_gnome_vfs_src_is_seekable (GstBaseSrc * src);
 static gboolean gst_gnome_vfs_src_check_get_range (GstBaseSrc * src);
+static gboolean gst_gnome_vfs_src_unlock (GstBaseSrc * basesrc);
+static gboolean gst_gnome_vfs_src_unlock_stop (GstBaseSrc * basesrc);
 static gboolean gst_gnome_vfs_src_get_size (GstBaseSrc * src, guint64 * size);
 static GstFlowReturn gst_gnome_vfs_src_create (GstBaseSrc * basesrc,
     guint64 offset, guint size, GstBuffer ** buffer);
@@ -176,8 +179,7 @@ gst_gnome_vfs_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
   gst_element_class_set_details_simple (element_class,
       "GnomeVFS Source", "Source/File",
       "Read from any GnomeVFS-supported file",
@@ -241,6 +243,9 @@ gst_gnome_vfs_src_class_init (GstGnomeVFSSrcClass * klass)
 
   gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_start);
   gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_stop);
+  gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_unlock);
+  gstbasesrc_class->unlock_stop =
+      GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_unlock_stop);
   gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_get_size);
   gstbasesrc_class->is_seekable =
       GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_is_seekable);
@@ -255,7 +260,9 @@ gst_gnome_vfs_src_init (GstGnomeVFSSrc * gnomevfssrc)
 {
   gnomevfssrc->uri = NULL;
   gnomevfssrc->uri_name = NULL;
+  gnomevfssrc->context = NULL;
   gnomevfssrc->handle = NULL;
+  gnomevfssrc->interrupted = FALSE;
   gnomevfssrc->curoffset = 0;
   gnomevfssrc->seekable = FALSE;
 
@@ -604,6 +611,7 @@ gst_gnome_vfs_src_create (GstBaseSrc * basesrc, guint64 offset, guint size,
   guint8 *data;
   guint todo;
   GstGnomeVFSSrc *src;
+  gboolean interrupted = FALSE;
 
   src = GST_GNOME_VFS_SRC (basesrc);
 
@@ -633,9 +641,22 @@ gst_gnome_vfs_src_create (GstBaseSrc * basesrc, guint64 offset, guint size,
   data = GST_BUFFER_DATA (buf);
 
   todo = size;
-  while (todo > 0) {
+  while (!src->interrupted && todo > 0) {
     /* this can return less that we ask for */
-    res = gnome_vfs_read (src->handle, data, todo, &readbytes);
+    res =
+        gnome_vfs_read_cancellable (src->handle, data, todo, &readbytes,
+        src->context);
+
+    if (G_UNLIKELY (res == GNOME_VFS_ERROR_CANCELLED)) {
+      GST_DEBUG_OBJECT (src, "interrupted");
+
+      /* Just take what we've so far gotten and return */
+      size = size - todo;
+      GST_BUFFER_SIZE (buf) = size;
+      todo = 0;
+      interrupted = TRUE;
+      break;
+    }
 
     if (G_UNLIKELY (res == GNOME_VFS_ERROR_EOF || (res == GNOME_VFS_OK
                 && readbytes == 0)))
@@ -652,6 +673,10 @@ gst_gnome_vfs_src_create (GstBaseSrc * basesrc, guint64 offset, guint size,
     }
     GST_LOG ("  got size %" G_GUINT64_FORMAT, readbytes);
   }
+
+  if (interrupted)
+    goto interrupted;
+
   GST_BUFFER_OFFSET (buf) = src->curoffset;
   src->curoffset += size;
 
@@ -681,6 +706,11 @@ read_failed:
         ("Failed to read data: %s", gnome_vfs_result_to_string (res)));
     return GST_FLOW_ERROR;
   }
+interrupted:
+  {
+    gst_buffer_unref (buf);
+    return GST_FLOW_WRONG_STATE;
+  }
 eos:
   {
     gst_buffer_unref (buf);
@@ -766,6 +796,37 @@ undecided:
   }
 }
 
+/* Interrupt a blocking request. */
+static gboolean
+gst_gnome_vfs_src_unlock (GstBaseSrc * basesrc)
+{
+  GstGnomeVFSSrc *src;
+
+  src = GST_GNOME_VFS_SRC (basesrc);
+  GST_DEBUG_OBJECT (src, "unlock()");
+  src->interrupted = TRUE;
+  if (src->context) {
+    GnomeVFSCancellation *cancel =
+        gnome_vfs_context_get_cancellation (src->context);
+    if (cancel)
+      gnome_vfs_cancellation_cancel (cancel);
+  }
+  return TRUE;
+}
+
+/* Interrupt interrupt. */
+static gboolean
+gst_gnome_vfs_src_unlock_stop (GstBaseSrc * basesrc)
+{
+  GstGnomeVFSSrc *src;
+
+  src = GST_GNOME_VFS_SRC (basesrc);
+  GST_DEBUG_OBJECT (src, "unlock_stop()");
+
+  src->interrupted = FALSE;
+  return TRUE;
+}
+
 static gboolean
 gst_gnome_vfs_src_get_size (GstBaseSrc * basesrc, guint64 * size)
 {
@@ -819,6 +880,7 @@ gst_gnome_vfs_src_start (GstBaseSrc * basesrc)
 
   gst_gnome_vfs_src_push_callbacks (src);
 
+  src->context = gnome_vfs_context_new ();
   if (src->uri != NULL) {
     GnomeVFSOpenMode mode = GNOME_VFS_OPEN_READ;
 
@@ -890,6 +952,9 @@ gst_gnome_vfs_src_stop (GstBaseSrc * basesrc)
     src->handle = NULL;
   }
   src->curoffset = 0;
+  src->interrupted = FALSE;
+  gnome_vfs_context_free (src->context);
+  src->context = NULL;
 
   return TRUE;
 }
index 31c1f65..e8c228d 100644 (file)
@@ -58,8 +58,10 @@ struct _GstGnomeVFSSrc
   /* uri, file, ... */
   GnomeVFSURI *uri;
   gchar *uri_name;
+  GnomeVFSContext *context;
   GnomeVFSHandle *handle;
   gboolean own_handle;
+  gboolean interrupted;
   GnomeVFSFileOffset curoffset; /* current offset in file */
   gboolean seekable;
 
index aaea9c7..38a95d1 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -107,8 +114,8 @@ libgstlibvisual_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
 am_libgstlibvisual_la_OBJECTS = libgstlibvisual_la-visual.lo
 libgstlibvisual_la_OBJECTS = $(am_libgstlibvisual_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstlibvisual_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -124,21 +131,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstlibvisual_la_SOURCES)
 DIST_SOURCES = $(libgstlibvisual_la_SOURCES)
@@ -205,6 +212,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -265,6 +273,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -274,9 +283,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -299,6 +311,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -371,10 +384,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -408,7 +424,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -500,7 +515,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstlibvisual.la: $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_DEPENDENCIES) 
+libgstlibvisual.la: $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_DEPENDENCIES) $(EXTRA_libgstlibvisual_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstlibvisual_la_LINK) -rpath $(plugindir) $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -514,34 +529,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstlibvisual_la-visual.lo: visual.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -MT libgstlibvisual_la-visual.lo -MD -MP -MF $(DEPDIR)/libgstlibvisual_la-visual.Tpo -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlibvisual_la-visual.Tpo $(DEPDIR)/libgstlibvisual_la-visual.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='visual.c' object='libgstlibvisual_la-visual.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='visual.c' object='libgstlibvisual_la-visual.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -648,10 +659,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 48c1e27..5630a21 100644 (file)
@@ -194,10 +194,8 @@ gst_visual_class_init (gpointer g_class, gpointer class_data)
         klass->plugin->info->name, klass->plugin->info->version);
 
     /* FIXME: improve to only register what plugin supports? */
-    gst_element_class_add_pad_template (element,
-        gst_static_pad_template_get (&src_template));
-    gst_element_class_add_pad_template (element,
-        gst_static_pad_template_get (&sink_template));
+    gst_element_class_add_static_pad_template (element, &src_template);
+    gst_element_class_add_static_pad_template (element, &sink_template);
     gst_element_class_set_details_simple (element,
         longname, "Visualization",
         klass->plugin->info->about, "Benjamin Otte <otte@gnome.org>");
@@ -550,7 +548,7 @@ gst_visual_src_query (GstPad * pad, GstQuery * query)
             GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
             GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
 
-        /* the max samples we must buffer buffer */
+        /* the max samples we must buffer */
         max_samples = MAX (VISUAL_SAMPLES, visual->spf);
         our_latency =
             gst_util_uint64_scale_int (max_samples, GST_SECOND, visual->rate);
index e9f815c..012cf8d 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -115,8 +122,8 @@ am_libgstogg_la_OBJECTS = libgstogg_la-gstogg.lo \
        libgstogg_la-gstoggparse.lo libgstogg_la-gstoggstream.lo \
        libgstogg_la-dirac_parse.lo libgstogg_la-vorbis_parse.lo
 libgstogg_la_OBJECTS = $(am_libgstogg_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstogg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -132,21 +139,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstogg_la_SOURCES)
 DIST_SOURCES = $(libgstogg_la_SOURCES)
@@ -214,6 +221,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -274,6 +282,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -283,9 +292,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -308,6 +320,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -380,10 +393,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -417,7 +433,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -533,7 +548,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstogg.la: $(libgstogg_la_OBJECTS) $(libgstogg_la_DEPENDENCIES) 
+libgstogg.la: $(libgstogg_la_OBJECTS) $(libgstogg_la_DEPENDENCIES) $(EXTRA_libgstogg_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstogg_la_LINK) -rpath $(plugindir) $(libgstogg_la_OBJECTS) $(libgstogg_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -555,98 +570,86 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstogg_la-gstogg.lo: gstogg.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstogg.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstogg.Tpo -c -o libgstogg_la-gstogg.lo `test -f 'gstogg.c' || echo '$(srcdir)/'`gstogg.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstogg.Tpo $(DEPDIR)/libgstogg_la-gstogg.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstogg.c' object='libgstogg_la-gstogg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstogg.c' object='libgstogg_la-gstogg.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogg.lo `test -f 'gstogg.c' || echo '$(srcdir)/'`gstogg.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogg.lo `test -f 'gstogg.c' || echo '$(srcdir)/'`gstogg.c
 
 libgstogg_la-gstoggdemux.lo: gstoggdemux.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggdemux.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggdemux.Tpo -c -o libgstogg_la-gstoggdemux.lo `test -f 'gstoggdemux.c' || echo '$(srcdir)/'`gstoggdemux.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggdemux.Tpo $(DEPDIR)/libgstogg_la-gstoggdemux.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstoggdemux.c' object='libgstogg_la-gstoggdemux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstoggdemux.c' object='libgstogg_la-gstoggdemux.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggdemux.lo `test -f 'gstoggdemux.c' || echo '$(srcdir)/'`gstoggdemux.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggdemux.lo `test -f 'gstoggdemux.c' || echo '$(srcdir)/'`gstoggdemux.c
 
 libgstogg_la-gstoggmux.lo: gstoggmux.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggmux.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggmux.Tpo -c -o libgstogg_la-gstoggmux.lo `test -f 'gstoggmux.c' || echo '$(srcdir)/'`gstoggmux.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggmux.Tpo $(DEPDIR)/libgstogg_la-gstoggmux.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstoggmux.c' object='libgstogg_la-gstoggmux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstoggmux.c' object='libgstogg_la-gstoggmux.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggmux.lo `test -f 'gstoggmux.c' || echo '$(srcdir)/'`gstoggmux.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggmux.lo `test -f 'gstoggmux.c' || echo '$(srcdir)/'`gstoggmux.c
 
 libgstogg_la-gstogmparse.lo: gstogmparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstogmparse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstogmparse.Tpo -c -o libgstogg_la-gstogmparse.lo `test -f 'gstogmparse.c' || echo '$(srcdir)/'`gstogmparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstogmparse.Tpo $(DEPDIR)/libgstogg_la-gstogmparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstogmparse.c' object='libgstogg_la-gstogmparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstogmparse.c' object='libgstogg_la-gstogmparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogmparse.lo `test -f 'gstogmparse.c' || echo '$(srcdir)/'`gstogmparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogmparse.lo `test -f 'gstogmparse.c' || echo '$(srcdir)/'`gstogmparse.c
 
 libgstogg_la-gstoggaviparse.lo: gstoggaviparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggaviparse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggaviparse.Tpo -c -o libgstogg_la-gstoggaviparse.lo `test -f 'gstoggaviparse.c' || echo '$(srcdir)/'`gstoggaviparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggaviparse.Tpo $(DEPDIR)/libgstogg_la-gstoggaviparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstoggaviparse.c' object='libgstogg_la-gstoggaviparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstoggaviparse.c' object='libgstogg_la-gstoggaviparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggaviparse.lo `test -f 'gstoggaviparse.c' || echo '$(srcdir)/'`gstoggaviparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggaviparse.lo `test -f 'gstoggaviparse.c' || echo '$(srcdir)/'`gstoggaviparse.c
 
 libgstogg_la-gstoggparse.lo: gstoggparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggparse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggparse.Tpo -c -o libgstogg_la-gstoggparse.lo `test -f 'gstoggparse.c' || echo '$(srcdir)/'`gstoggparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggparse.Tpo $(DEPDIR)/libgstogg_la-gstoggparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstoggparse.c' object='libgstogg_la-gstoggparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstoggparse.c' object='libgstogg_la-gstoggparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggparse.lo `test -f 'gstoggparse.c' || echo '$(srcdir)/'`gstoggparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggparse.lo `test -f 'gstoggparse.c' || echo '$(srcdir)/'`gstoggparse.c
 
 libgstogg_la-gstoggstream.lo: gstoggstream.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggstream.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggstream.Tpo -c -o libgstogg_la-gstoggstream.lo `test -f 'gstoggstream.c' || echo '$(srcdir)/'`gstoggstream.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggstream.Tpo $(DEPDIR)/libgstogg_la-gstoggstream.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstoggstream.c' object='libgstogg_la-gstoggstream.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstoggstream.c' object='libgstogg_la-gstoggstream.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggstream.lo `test -f 'gstoggstream.c' || echo '$(srcdir)/'`gstoggstream.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggstream.lo `test -f 'gstoggstream.c' || echo '$(srcdir)/'`gstoggstream.c
 
 libgstogg_la-dirac_parse.lo: dirac_parse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-dirac_parse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-dirac_parse.Tpo -c -o libgstogg_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-dirac_parse.Tpo $(DEPDIR)/libgstogg_la-dirac_parse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='dirac_parse.c' object='libgstogg_la-dirac_parse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dirac_parse.c' object='libgstogg_la-dirac_parse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c
 
 libgstogg_la-vorbis_parse.lo: vorbis_parse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-vorbis_parse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-vorbis_parse.Tpo -c -o libgstogg_la-vorbis_parse.lo `test -f 'vorbis_parse.c' || echo '$(srcdir)/'`vorbis_parse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-vorbis_parse.Tpo $(DEPDIR)/libgstogg_la-vorbis_parse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='vorbis_parse.c' object='libgstogg_la-vorbis_parse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vorbis_parse.c' object='libgstogg_la-vorbis_parse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-vorbis_parse.lo `test -f 'vorbis_parse.c' || echo '$(srcdir)/'`vorbis_parse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-vorbis_parse.lo `test -f 'vorbis_parse.c' || echo '$(srcdir)/'`vorbis_parse.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -753,10 +756,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 557e9d5..33ba074 100644 (file)
@@ -30,7 +30,7 @@ The granulepos in theora is an encoding of the frame number of the last
 key frame ("i frame"), and the number of frames since the last key frame
 ("p frame").  The granulepos is constructed as the sum of the first number,
 shifted to the left for granuleshift bits, and the second number:
-granulepos = pframe << granuleshift + iframe
+granulepos = (pframe << granuleshift) + iframe
 
 (This means that given a framenumber or a timestamp, one cannot generate
  the one and only granulepos for that page; several granulepos possibilities
@@ -99,7 +99,7 @@ with great efficiency.
 1) the streaming mode.
 
 In this mode, the ogg demuxer receives buffers in the _chain() function which
-are then simply submited to the ogg sync layer. Pages are then processed when
+are then simply submitted to the ogg sync layer. Pages are then processed when
 the sync layer detects them, pads are created for new chains and packets are
 sent to the peer elements of the pads.
 
index 2851e52..92c02a7 100644 (file)
@@ -138,10 +138,10 @@ gst_ogg_avi_parse_base_init (gpointer g_class)
       "parse an ogg avi stream into pages (info about ogg: http://xiph.org)",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_avi_parse_sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_avi_parse_src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_avi_parse_sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_avi_parse_src_template_factory);
 }
 
 static void
index 67d2321..ac01b05 100644 (file)
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include <string.h>
 #include <gst/gst-i18n-plugin.h>
 #include <gst/tag/tag.h>
 
 #include "gstoggdemux.h"
 
+#include "gst/glib-compat-private.h"
+
 #define CHUNKSIZE (8500)        /* this is out of vorbisfile */
 
+/* we hope we get a granpos within this many bytes off the end */
+#define DURATION_CHUNK_OFFSET (64*1024)
+
+/* stop duration checks within this much of EOS */
+#define EOS_AVOIDANCE_THRESHOLD 8192
+
 #define GST_FLOW_LIMIT GST_FLOW_CUSTOM_ERROR
+#define GST_FLOW_SKIP_PUSH GST_FLOW_CUSTOM_SUCCESS_1
 
 #define GST_CHAIN_LOCK(ogg)     g_mutex_lock((ogg)->chain_lock)
 #define GST_CHAIN_UNLOCK(ogg)   g_mutex_unlock((ogg)->chain_lock)
 
+#define GST_PUSH_LOCK(ogg)                  \
+  do {                                      \
+    GST_TRACE_OBJECT(ogg, "Push lock");     \
+    g_mutex_lock((ogg)->push_lock);         \
+  } while(0)
+
+#define GST_PUSH_UNLOCK(ogg)                \
+  do {                                      \
+    GST_TRACE_OBJECT(ogg, "Push unlock");   \
+    g_mutex_unlock((ogg)->push_lock);       \
+  } while(0)
+
 GST_DEBUG_CATEGORY (gst_ogg_demux_debug);
 GST_DEBUG_CATEGORY (gst_ogg_demux_setup_debug);
 #define GST_CAT_DEFAULT gst_ogg_demux_debug
@@ -60,7 +86,7 @@ GST_DEBUG_CATEGORY (gst_ogg_demux_setup_debug);
 static ogg_packet *
 _ogg_packet_copy (const ogg_packet * packet)
 {
-  ogg_packet *ret = g_new0 (ogg_packet, 1);
+  ogg_packet *ret = g_slice_new (ogg_packet);
 
   *ret = *packet;
   ret->packet = g_memdup (packet->packet, packet->bytes);
@@ -72,13 +98,13 @@ static void
 _ogg_packet_free (ogg_packet * packet)
 {
   g_free (packet->packet);
-  g_free (packet);
+  g_slice_free (ogg_packet, packet);
 }
 
 static ogg_page *
 gst_ogg_page_copy (ogg_page * page)
 {
-  ogg_page *p = g_new0 (ogg_page, 1);
+  ogg_page *p = g_slice_new (ogg_page);
 
   /* make a copy of the page */
   p->header = g_memdup (page->header, page->header_len);
@@ -94,13 +120,14 @@ gst_ogg_page_free (ogg_page * page)
 {
   g_free (page->header);
   g_free (page->body);
-  g_free (page);
+  g_slice_free (ogg_page, page);
 }
 
 static gboolean gst_ogg_demux_collect_chain_info (GstOggDemux * ogg,
     GstOggChain * chain);
 static gboolean gst_ogg_demux_activate_chain (GstOggDemux * ogg,
     GstOggChain * chain, GstEvent * event);
+static void gst_ogg_pad_mark_discont (GstOggPad * pad);
 static void gst_ogg_chain_mark_discont (GstOggChain * chain);
 
 static gboolean gst_ogg_demux_perform_seek (GstOggDemux * ogg,
@@ -116,7 +143,7 @@ static gboolean gst_ogg_pad_src_query (GstPad * pad, GstQuery * query);
 static gboolean gst_ogg_pad_event (GstPad * pad, GstEvent * event);
 static GstCaps *gst_ogg_pad_getcaps (GstPad * pad);
 static GstOggPad *gst_ogg_chain_get_stream (GstOggChain * chain,
-    glong serialno);
+    guint32 serialno);
 
 static GstFlowReturn gst_ogg_demux_combine_flows (GstOggDemux * ogg,
     GstOggPad * pad, GstFlowReturn ret);
@@ -124,6 +151,11 @@ static void gst_ogg_demux_sync_streams (GstOggDemux * ogg);
 
 GstCaps *gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg,
     GstCaps * caps, GList * headers);
+static gboolean gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event);
+static gboolean gst_ogg_demux_perform_seek_push (GstOggDemux * ogg,
+    GstEvent * event);
+static gboolean gst_ogg_demux_check_duration_push (GstOggDemux * ogg,
+    GstSeekFlags flags, GstEvent * event);
 
 GType gst_ogg_pad_get_type (void);
 G_DEFINE_TYPE (GstOggPad, gst_ogg_pad, GST_TYPE_PAD);
@@ -164,6 +196,10 @@ gst_ogg_pad_init (GstOggPad * pad)
   pad->continued = NULL;
   pad->map.headers = NULL;
   pad->map.queued = NULL;
+
+  pad->map.granulerate_n = 0;
+  pad->map.granulerate_d = 0;
+  pad->map.granuleshift = -1;
 }
 
 static void
@@ -295,6 +331,8 @@ gst_ogg_pad_src_query (GstPad * pad, GstQuery * query)
         if (ogg->pullmode) {
           seekable = TRUE;
           stop = ogg->total_time;
+        } else if (ogg->push_disable_seeking) {
+          seekable = FALSE;
         } else if (ogg->current_chain->streams->len) {
           gint i;
 
@@ -303,8 +341,7 @@ gst_ogg_pad_src_query (GstPad * pad, GstQuery * query)
             GstOggPad *pad =
                 g_array_index (ogg->current_chain->streams, GstOggPad *, i);
 
-            seekable |= (pad->map.index != NULL && pad->map.n_index != 0);
-
+            seekable = TRUE;
             if (pad->map.index != NULL && pad->map.n_index != 0) {
               GstOggIndex *idx;
               GstClockTime idx_time;
@@ -317,6 +354,8 @@ gst_ogg_pad_src_query (GstPad * pad, GstQuery * query)
                 stop = idx_time;
               else
                 stop = MAX (idx_time, stop);
+            } else {
+              stop = -1;        /* we've no clue, sadly, without seeking */
             }
           }
         }
@@ -427,8 +466,8 @@ gst_ogg_demux_queue_data (GstOggPad * pad, ogg_packet * packet)
   GstOggDemux *ogg = pad->ogg;
 #endif
 
-  GST_DEBUG_OBJECT (ogg, "%p queueing data serial %08lx", pad,
-      pad->map.serialno);
+  GST_DEBUG_OBJECT (ogg, "%p queueing data serial %08x",
+      pad, pad->map.serialno);
 
   pad->map.queued = g_list_append (pad->map.queued, _ogg_packet_copy (packet));
 
@@ -454,8 +493,27 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
 
   cret = GST_FLOW_OK;
 
+  GST_DEBUG_OBJECT (pad, "Chaining %d %d %" GST_TIME_FORMAT " %d %p",
+      ogg->pullmode, ogg->push_state, GST_TIME_ARGS (ogg->push_time_length),
+      ogg->push_disable_seeking, ogg->building_chain);
+  GST_PUSH_LOCK (ogg);
+  if (!ogg->pullmode && ogg->push_state == PUSH_PLAYING
+      && ogg->push_time_length == GST_CLOCK_TIME_NONE
+      && !ogg->push_disable_seeking) {
+    if (!ogg->building_chain) {
+      /* we got all headers, now try to get duration */
+      if (!gst_ogg_demux_check_duration_push (ogg, GST_SEEK_FLAG_FLUSH, NULL)) {
+        GST_PUSH_UNLOCK (ogg);
+        return GST_FLOW_OK;
+      }
+    }
+    GST_PUSH_UNLOCK (ogg);
+    return GST_FLOW_OK;
+  }
+  GST_PUSH_UNLOCK (ogg);
+
   GST_DEBUG_OBJECT (ogg,
-      "%p streaming to peer serial %08lx", pad, pad->map.serialno);
+      "%p streaming to peer serial %08x", pad, pad->map.serialno);
 
   if (pad->map.is_ogm) {
     const guint8 *data;
@@ -499,8 +557,13 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
   }
 
   /* get timing info for the packet */
-  duration = gst_ogg_stream_get_packet_duration (&pad->map, packet);
-  GST_DEBUG_OBJECT (ogg, "packet duration %" G_GUINT64_FORMAT, duration);
+  if (gst_ogg_stream_packet_is_header (&pad->map, packet)) {
+    duration = 0;
+    GST_DEBUG_OBJECT (ogg, "packet is header");
+  } else {
+    duration = gst_ogg_stream_get_packet_duration (&pad->map, packet);
+    GST_DEBUG_OBJECT (ogg, "packet duration %" G_GUINT64_FORMAT, duration);
+  }
 
   if (packet->b_o_s) {
     out_timestamp = GST_CLOCK_TIME_NONE;
@@ -518,7 +581,10 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
           pad->current_granule);
     } else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
       pad->current_granule += duration;
-      GST_DEBUG_OBJECT (ogg, "interpollating granule %" G_GUINT64_FORMAT,
+      if (gst_ogg_stream_packet_is_key_frame (&pad->map, packet)) {
+        pad->keyframe_granule = pad->current_granule;
+      }
+      GST_DEBUG_OBJECT (ogg, "interpolating granule %" G_GUINT64_FORMAT,
           pad->current_granule);
     }
     if (ogg->segment.rate < 0.0 && packet->granulepos == -1) {
@@ -679,13 +745,18 @@ gst_ogg_demux_collect_start_time (GstOggDemux * ogg, GstOggChain * chain)
   for (i = 0; i < chain->streams->len; i++) {
     GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
 
-    if (pad->map.is_sparse)
+    if (pad->map.is_skeleton)
       continue;
 
     /*  can do this if the pad start time is not defined */
+    GST_DEBUG_OBJECT (ogg, "Pad %08x (%s) start time is %" GST_TIME_FORMAT,
+        pad->map.serialno, gst_ogg_stream_get_media_type (&pad->map),
+        GST_TIME_ARGS (pad->start_time));
     if (pad->start_time == GST_CLOCK_TIME_NONE) {
-      start_time = G_MAXUINT64;
-      break;
+      if (!pad->map.is_sparse) {
+        start_time = G_MAXUINT64;
+        break;
+      }
     } else {
       start_time = MIN (start_time, pad->start_time);
     }
@@ -693,6 +764,36 @@ gst_ogg_demux_collect_start_time (GstOggDemux * ogg, GstOggChain * chain)
   return start_time;
 }
 
+static GstClockTime
+gst_ogg_demux_collect_sync_time (GstOggDemux * ogg, GstOggChain * chain)
+{
+  gint i;
+  GstClockTime sync_time = GST_CLOCK_TIME_NONE;
+
+  if (!chain) {
+    GST_WARNING_OBJECT (ogg, "No chain!");
+    return GST_CLOCK_TIME_NONE;
+  }
+
+  for (i = 0; i < chain->streams->len; i++) {
+    GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+
+    if (pad->map.is_sparse)
+      continue;
+
+    if (pad->push_sync_time == GST_CLOCK_TIME_NONE) {
+      sync_time = GST_CLOCK_TIME_NONE;
+      break;
+    } else {
+      if (sync_time == GST_CLOCK_TIME_NONE)
+        sync_time = pad->push_sync_time;
+      else
+        sync_time = MAX (sync_time, pad->push_sync_time);
+    }
+  }
+  return sync_time;
+}
+
 /* submit a packet to the oggpad, this function will run the
  * typefind code for the pad if this is the first packet for this
  * stream 
@@ -705,8 +806,8 @@ gst_ogg_pad_submit_packet (GstOggPad * pad, ogg_packet * packet)
 
   GstOggDemux *ogg = pad->ogg;
 
-  GST_DEBUG_OBJECT (ogg, "%p submit packet serial %08lx", pad,
-      pad->map.serialno);
+  GST_DEBUG_OBJECT (ogg, "%p submit packet serial %08x",
+      pad, pad->map.serialno);
 
   if (!pad->have_type) {
     pad->have_type = gst_ogg_stream_setup_map (&pad->map, packet);
@@ -742,7 +843,7 @@ gst_ogg_pad_submit_packet (GstOggPad * pad, ogg_packet * packet)
     if (gst_ogg_map_parse_fisbone (&pad->map, packet->packet, packet->bytes,
             &serialno, &type)) {
 
-      GST_WARNING_OBJECT (pad->ogg,
+      GST_DEBUG_OBJECT (pad->ogg,
           "got skeleton packet for stream 0x%08x", serialno);
 
       skel_pad = gst_ogg_chain_get_stream (pad->chain, serialno);
@@ -827,7 +928,13 @@ gst_ogg_pad_submit_packet (GstOggPad * pad, ogg_packet * packet)
 
         pad->start_time = gst_ogg_stream_granule_to_time (&pad->map,
             start_granule);
-        GST_DEBUG ("start time %" G_GINT64_FORMAT, pad->start_time);
+        GST_DEBUG_OBJECT (ogg,
+            "start time %" GST_TIME_FORMAT " (%" GST_TIME_FORMAT ") for %s "
+            "from granpos %" G_GINT64_FORMAT " (granule %" G_GINT64_FORMAT ", "
+            "accumulated granule %" G_GINT64_FORMAT,
+            GST_TIME_ARGS (pad->start_time), GST_TIME_ARGS (pad->start_time),
+            gst_ogg_stream_get_media_type (&pad->map),
+            (gint64) packet->granulepos, granule, pad->map.accumulated_granule);
       } else {
         packet->granulepos = gst_ogg_stream_granule_to_granulepos (&pad->map,
             pad->map.accumulated_granule, pad->keyframe_granule);
@@ -876,8 +983,25 @@ gst_ogg_pad_submit_packet (GstOggPad * pad, ogg_packet * packet)
             segment_time = chain->begin_time;
 
           /* create the newsegment event we are going to send out */
-          event = gst_event_new_new_segment (FALSE, ogg->segment.rate,
-              GST_FORMAT_TIME, start_time, chain->segment_stop, segment_time);
+          GST_PUSH_LOCK (ogg);
+          if (!ogg->pullmode && ogg->push_state == PUSH_LINEAR2) {
+            /* if we are fast forwarding to the actual seek target,
+               ensure previous frames are clipped */
+            GST_DEBUG_OBJECT (ogg,
+                "Resynced, starting segment at %" GST_TIME_FORMAT
+                ", start_time %" GST_TIME_FORMAT,
+                GST_TIME_ARGS (ogg->push_seek_time_original_target),
+                GST_TIME_ARGS (start_time));
+            event =
+                gst_event_new_new_segment (FALSE, ogg->push_seek_rate,
+                GST_FORMAT_TIME, ogg->push_seek_time_original_target, -1,
+                ogg->push_seek_time_original_target);
+            ogg->push_state = PUSH_PLAYING;
+          } else {
+            event = gst_event_new_new_segment (FALSE, ogg->segment.rate,
+                GST_FORMAT_TIME, start_time, chain->segment_stop, segment_time);
+          }
+          GST_PUSH_UNLOCK (ogg);
 
           ogg->resync = FALSE;
         }
@@ -949,10 +1073,16 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets)
         break;
       case -1:
         GST_LOG_OBJECT (ogg, "packetout discont");
-        gst_ogg_chain_mark_discont (pad->chain);
+        if (!pad->map.is_sparse) {
+          gst_ogg_chain_mark_discont (pad->chain);
+        } else {
+          gst_ogg_pad_mark_discont (pad);
+        }
         break;
       case 1:
         GST_LOG_OBJECT (ogg, "packetout gave packet of size %ld", packet.bytes);
+        if (packet.bytes > ogg->max_packet_size)
+          ogg->max_packet_size = packet.bytes;
         result = gst_ogg_pad_submit_packet (pad, &packet);
         /* not linked is not a problem, it's possible that we are still
          * collecting headers and that we don't have exposed the pads yet */
@@ -979,13 +1109,562 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets)
 could_not_submit:
   {
     GST_WARNING_OBJECT (ogg,
-        "could not submit packet for stream %08lx, error: %d",
-        pad->map.serialno, result);
+        "could not submit packet for stream %08x, "
+        "error: %d", pad->map.serialno, result);
     gst_ogg_pad_reset (pad);
     return result;
   }
 }
 
+static void
+gst_ogg_demux_setup_bisection_bounds (GstOggDemux * ogg)
+{
+  if (ogg->push_last_seek_time >= ogg->push_seek_time_target) {
+    GST_DEBUG_OBJECT (ogg, "We overshot by %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (ogg->push_last_seek_time - ogg->push_seek_time_target));
+    ogg->push_offset1 = ogg->push_last_seek_offset;
+    ogg->push_time1 = ogg->push_last_seek_time;
+    ogg->seek_undershot = FALSE;
+  } else {
+    GST_DEBUG_OBJECT (ogg, "We undershot by %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (ogg->push_seek_time_target - ogg->push_last_seek_time));
+    ogg->push_offset0 = ogg->push_last_seek_offset;
+    ogg->push_time0 = ogg->push_last_seek_time;
+    ogg->seek_undershot = TRUE;
+  }
+}
+
+static gint64
+gst_ogg_demux_estimate_bisection_target (GstOggDemux * ogg, float seek_quality)
+{
+  gint64 best;
+  gint64 segment_bitrate;
+  gint64 skew;
+
+  /* we might not know the length of the stream in time,
+     so push_time1 might not be set */
+  GST_DEBUG_OBJECT (ogg,
+      "push time 1: %" GST_TIME_FORMAT ", dbytes %" G_GINT64_FORMAT,
+      GST_TIME_ARGS (ogg->push_time1), ogg->push_offset1 - ogg->push_offset0);
+  if (ogg->push_time1 == GST_CLOCK_TIME_NONE) {
+    GST_DEBUG_OBJECT (ogg,
+        "New segment to consider: bytes %" G_GINT64_FORMAT " %" G_GINT64_FORMAT
+        ", time %" GST_TIME_FORMAT " (open ended)", ogg->push_offset0,
+        ogg->push_offset1, GST_TIME_ARGS (ogg->push_time0));
+    if (ogg->push_last_seek_time == ogg->push_start_time) {
+      /* if we're at start and don't know the end time, we can't estimate
+         bitrate, so get the nominal declared bitrate as a failsafe, or some
+         random constant which will be discarded after we made a (probably
+         dire) first guess */
+      segment_bitrate = (ogg->bitrate > 0 ? ogg->bitrate : 1000);
+    } else {
+      segment_bitrate =
+          gst_util_uint64_scale (ogg->push_last_seek_offset - 0,
+          8 * GST_SECOND, ogg->push_last_seek_time - ogg->push_start_time);
+    }
+    best =
+        ogg->push_offset0 +
+        gst_util_uint64_scale (ogg->push_seek_time_target - ogg->push_time0,
+        segment_bitrate, 8 * GST_SECOND);
+    ogg->seek_secant = TRUE;
+  } else {
+    GST_DEBUG_OBJECT (ogg,
+        "New segment to consider: bytes %" G_GINT64_FORMAT " %" G_GINT64_FORMAT
+        ", time %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, ogg->push_offset0,
+        ogg->push_offset1, GST_TIME_ARGS (ogg->push_time0),
+        GST_TIME_ARGS (ogg->push_time1));
+    if (ogg->push_time0 == ogg->push_time1) {
+      best = ogg->push_offset0;
+    } else {
+      segment_bitrate =
+          gst_util_uint64_scale (ogg->push_offset1 - ogg->push_offset0,
+          8 * GST_SECOND, ogg->push_time1 - ogg->push_time0);
+      GST_DEBUG_OBJECT (ogg,
+          "Local bitrate on the %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT
+          " segment: %" G_GINT64_FORMAT, GST_TIME_ARGS (ogg->push_time0),
+          GST_TIME_ARGS (ogg->push_time1), segment_bitrate);
+
+      best =
+          ogg->push_offset0 +
+          gst_util_uint64_scale (ogg->push_seek_time_target - ogg->push_time0,
+          segment_bitrate, 8 * GST_SECOND);
+      if (seek_quality < 0.5f && ogg->seek_secant) {
+        gint64 new_best, best2 = (ogg->push_offset0 + ogg->push_offset1) / 2;
+        /* if dire result, give as much as 25% weight to a dumb bisection guess */
+        float secant_weight = 1.0f - ((0.5 - seek_quality) / 0.5f) * 0.25;
+        new_best = (best * secant_weight + best2 * (1.0f - secant_weight));
+        GST_DEBUG_OBJECT (ogg,
+            "Secant says %" G_GINT64_FORMAT ", straight is %" G_GINT64_FORMAT
+            ", new best %" G_GINT64_FORMAT " with secant_weight %f", best,
+            best2, new_best, secant_weight);
+        best = new_best;
+        ogg->seek_secant = FALSE;
+      } else {
+        ogg->seek_secant = TRUE;
+      }
+    }
+  }
+
+  GST_DEBUG_OBJECT (ogg, "Raw best guess: %" G_GINT64_FORMAT, best);
+
+  /* offset the guess down as we need to capture the start of the
+     page we are targetting - but only do so if we did not undershoot
+     last time, as we're likely to still do this time */
+  if (!ogg->seek_undershot) {
+    /* very small packets are packed on pages, so offset by at least
+       a value which is likely to get us at least one page where the
+       packet starts */
+    skew =
+        ogg->max_packet_size >
+        ogg->max_page_size ? ogg->max_packet_size : ogg->max_page_size;
+    GST_DEBUG_OBJECT (ogg, "Offsetting by %" G_GINT64_FORMAT, skew);
+    best -= skew;
+  }
+
+  /* do not seek too close to the bounds, as we stop seeking
+     when we get to within max_packet_size before the target */
+  if (best > ogg->push_offset1 - ogg->max_packet_size) {
+    best = ogg->push_offset1 - ogg->max_packet_size;
+    GST_DEBUG_OBJECT (ogg,
+        "Too close to high bound, pushing back to %" G_GINT64_FORMAT, best);
+  } else if (best < ogg->push_offset0 + ogg->max_packet_size) {
+    best = ogg->push_offset0 + ogg->max_packet_size;
+    GST_DEBUG_OBJECT (ogg,
+        "Too close to low bound, pushing forth to %" G_GINT64_FORMAT, best);
+  }
+
+  /* keep within bounds */
+  if (best > ogg->push_offset1)
+    best = ogg->push_offset1;
+  if (best < ogg->push_offset0)
+    best = ogg->push_offset0;
+
+  GST_DEBUG_OBJECT (ogg, "Choosing target %" G_GINT64_FORMAT, best);
+  return best;
+}
+
+static void
+gst_ogg_demux_record_keyframe_time (GstOggDemux * ogg, GstOggPad * pad,
+    ogg_int64_t granpos)
+{
+  gint64 kf_granule;
+  GstClockTime kf_time;
+
+  kf_granule = gst_ogg_stream_granulepos_to_key_granule (&pad->map, granpos);
+  kf_time = gst_ogg_stream_granule_to_time (&pad->map, kf_granule);
+
+  pad->push_kf_time = kf_time;
+}
+
+/* returns the earliest keyframe time for all non sparse pads in the chain,
+ * if known, and GST_CLOCK_TIME_NONE if not */
+static GstClockTime
+gst_ogg_demux_get_earliest_keyframe_time (GstOggDemux * ogg)
+{
+  GstClockTime t = GST_CLOCK_TIME_NONE;
+  GstOggChain *chain = ogg->building_chain;
+  int i;
+
+  if (!chain) {
+    GST_WARNING_OBJECT (ogg, "No chain!");
+    return GST_CLOCK_TIME_NONE;
+  }
+  for (i = 0; i < chain->streams->len; i++) {
+    GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+
+    if (pad->map.is_sparse)
+      continue;
+    if (pad->push_kf_time == GST_CLOCK_TIME_NONE)
+      return GST_CLOCK_TIME_NONE;
+    if (t == GST_CLOCK_TIME_NONE || pad->push_kf_time < t)
+      t = pad->push_kf_time;
+  }
+
+  return t;
+}
+
+/* MUST be called with the push lock locked, and will unlock it
+   regardless of return value. */
+static GstFlowReturn
+gst_ogg_demux_seek_back_after_push_duration_check_unlock (GstOggDemux * ogg)
+{
+  GstEvent *event;
+
+  /* Get the delayed event, if any */
+  event = ogg->push_mode_seek_delayed_event;
+  ogg->push_mode_seek_delayed_event = NULL;
+
+  ogg->push_state = PUSH_PLAYING;
+
+  GST_PUSH_UNLOCK (ogg);
+
+  if (event) {
+    /* If there is one, perform it */
+    gst_ogg_demux_perform_seek_push (ogg, event);
+  } else {
+    /* If there wasn't, seek back at start to start normal playback */
+    GST_INFO_OBJECT (ogg, "Seeking back to 0 after duration check");
+    event = gst_event_new_seek (1.0, GST_FORMAT_BYTES,
+        GST_SEEK_FLAG_ACCURATE | GST_SEEK_FLAG_FLUSH,
+        GST_SEEK_TYPE_SET, 1, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
+    if (!gst_pad_push_event (ogg->sinkpad, event)) {
+      GST_WARNING_OBJECT (ogg, "Failed seeking back to start");
+      return GST_FLOW_ERROR;
+    }
+  }
+
+  return GST_FLOW_OK;
+}
+
+static float
+gst_ogg_demux_estimate_seek_quality (GstOggDemux * ogg)
+{
+  gint64 diff;                  /* how far from the goal we ended up */
+  gint64 dist;                  /* how far we moved this iteration */
+  float seek_quality;
+
+  if (ogg->push_prev_seek_time == GST_CLOCK_TIME_NONE) {
+    /* for the first seek, we pretend we got a good seek,
+       as we don't have a previous seek yet */
+    return 1.0f;
+  }
+
+  /* We take a guess at how good the last seek was at guessing
+     the byte target by comparing the amplitude of the last
+     seek to the error */
+  diff = ogg->push_seek_time_target - ogg->push_last_seek_time;
+  if (diff < 0)
+    diff = -diff;
+  dist = ogg->push_last_seek_time - ogg->push_prev_seek_time;
+  if (dist < 0)
+    dist = -dist;
+
+  seek_quality = (dist == 0) ? 0.0f : 1.0f / (1.0f + diff / (float) dist);
+
+  GST_DEBUG_OBJECT (ogg,
+      "We moved %" GST_TIME_FORMAT ", we're off by %" GST_TIME_FORMAT
+      ", seek quality %f", GST_TIME_ARGS (dist), GST_TIME_ARGS (diff),
+      seek_quality);
+  return seek_quality;
+}
+
+static void
+gst_ogg_demux_update_bisection_stats (GstOggDemux * ogg)
+{
+  int n;
+
+  GST_INFO_OBJECT (ogg, "Bisection needed %d + %d steps",
+      ogg->push_bisection_steps[0], ogg->push_bisection_steps[1]);
+
+  for (n = 0; n < 2; ++n) {
+    ogg->stats_bisection_steps[n] += ogg->push_bisection_steps[n];
+    if (ogg->stats_bisection_max_steps[n] < ogg->push_bisection_steps[n])
+      ogg->stats_bisection_max_steps[n] = ogg->push_bisection_steps[n];
+  }
+  ogg->stats_nbisections++;
+
+  GST_INFO_OBJECT (ogg,
+      "So far, %.2f + %.2f bisections needed per seek (max %d + %d)",
+      ogg->stats_bisection_steps[0] / (float) ogg->stats_nbisections,
+      ogg->stats_bisection_steps[1] / (float) ogg->stats_nbisections,
+      ogg->stats_bisection_max_steps[0], ogg->stats_bisection_max_steps[1]);
+}
+
+static gboolean
+gst_ogg_pad_handle_push_mode_state (GstOggPad * pad, ogg_page * page)
+{
+  GstOggDemux *ogg = pad->ogg;
+  ogg_int64_t granpos = ogg_page_granulepos (page);
+
+  GST_PUSH_LOCK (ogg);
+  if (granpos >= 0) {
+    if (ogg->push_start_time == GST_CLOCK_TIME_NONE) {
+      ogg->push_start_time =
+          gst_ogg_stream_get_start_time_for_granulepos (&pad->map, granpos);
+      GST_DEBUG_OBJECT (ogg, "Stream start time: %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (ogg->push_start_time));
+    }
+    ogg->push_time_offset =
+        gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granpos);
+    if (ogg->push_time_offset > 0) {
+      GST_DEBUG_OBJECT (ogg, "Bitrate since start: %" G_GUINT64_FORMAT,
+          gst_util_uint64_scale (ogg->push_byte_offset, 8 * GST_SECOND,
+              ogg->push_time_offset));
+    }
+
+    if (ogg->push_state == PUSH_DURATION) {
+      GstClockTime t =
+          gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granpos);
+
+      if (ogg->total_time == GST_CLOCK_TIME_NONE || t > ogg->total_time) {
+        GST_DEBUG_OBJECT (ogg, "New total time: %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (t));
+        ogg->total_time = t;
+        ogg->push_time_length = t;
+      }
+
+      /* If we were determining the duration of the stream, we're now done,
+         and can get back to sending the original event we delayed.
+         We stop a bit before the end of the stream, as if we get a EOS
+         event and there is a queue2 upstream (such as when using playbin2),
+         it will pause the task *after* we come back from the EOS handler,
+         so we cannot prevent the pausing by issuing a seek. */
+      if (ogg->push_byte_offset + EOS_AVOIDANCE_THRESHOLD >=
+          ogg->push_byte_length) {
+        GstMessage *message;
+        GstFlowReturn res;
+
+        /* tell the pipeline we've just found out the duration */
+        ogg->push_time_length = ogg->total_time;
+        GST_INFO_OBJECT (ogg, "New duration found: %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (ogg->total_time));
+        message =
+            gst_message_new_duration (GST_OBJECT (ogg), GST_FORMAT_TIME,
+            ogg->total_time);
+        gst_element_post_message (GST_ELEMENT (ogg), message);
+
+        GST_DEBUG_OBJECT (ogg,
+            "We're close enough to the end, and we're scared "
+            "to get too close, seeking back to start");
+
+        res = gst_ogg_demux_seek_back_after_push_duration_check_unlock (ogg);
+        if (res != GST_FLOW_OK)
+          return res;
+        return GST_FLOW_SKIP_PUSH;
+      } else {
+        GST_PUSH_UNLOCK (ogg);
+      }
+      return GST_FLOW_SKIP_PUSH;
+    }
+  }
+
+  /* if we're seeking, look at time, and decide what to do */
+  if (ogg->push_state != PUSH_PLAYING && ogg->push_state != PUSH_LINEAR2) {
+    GstClockTime t;
+    gint64 best = -1;
+    GstEvent *sevent;
+    int res;
+    gboolean close_enough;
+    float seek_quality;
+
+    /* ignore -1 granpos when seeking, we want to sync on a real granpos */
+    if (granpos < 0) {
+      GST_PUSH_UNLOCK (ogg);
+      if (ogg_stream_pagein (&pad->map.stream, page) != 0)
+        goto choked;
+      return GST_FLOW_SKIP_PUSH;
+    }
+
+    t = gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granpos);
+
+    if (ogg->push_state == PUSH_BISECT1 || ogg->push_state == PUSH_BISECT2) {
+      GstClockTime sync_time;
+
+      if (pad->push_sync_time == GST_CLOCK_TIME_NONE)
+        pad->push_sync_time = t;
+      GST_DEBUG_OBJECT (ogg, "Got timestamp %" GST_TIME_FORMAT " for %s",
+          GST_TIME_ARGS (t), gst_ogg_stream_get_media_type (&pad->map));
+      sync_time = gst_ogg_demux_collect_sync_time (ogg, ogg->building_chain);
+      if (sync_time == GST_CLOCK_TIME_NONE) {
+        GST_PUSH_UNLOCK (ogg);
+        GST_DEBUG_OBJECT (ogg,
+            "Not enough timing info collected for sync, waiting for more");
+        if (ogg_stream_pagein (&pad->map.stream, page) != 0)
+          goto choked;
+        return GST_FLOW_SKIP_PUSH;
+      }
+      ogg->push_last_seek_time = sync_time;
+
+      GST_DEBUG_OBJECT (ogg,
+          "Bisection just seeked at %" G_GINT64_FORMAT ", time %"
+          GST_TIME_FORMAT ", target was %" GST_TIME_FORMAT,
+          ogg->push_last_seek_offset,
+          GST_TIME_ARGS (ogg->push_last_seek_time),
+          GST_TIME_ARGS (ogg->push_seek_time_target));
+
+      if (ogg->push_time1 != GST_CLOCK_TIME_NONE) {
+        seek_quality = gst_ogg_demux_estimate_seek_quality (ogg);
+        GST_DEBUG_OBJECT (ogg,
+            "Interval was %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT " (%"
+            G_GINT64_FORMAT "), time %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT
+            " (%" GST_TIME_FORMAT "), seek quality %f", ogg->push_offset0,
+            ogg->push_offset1, ogg->push_offset1 - ogg->push_offset0,
+            GST_TIME_ARGS (ogg->push_time0), GST_TIME_ARGS (ogg->push_time1),
+            GST_TIME_ARGS (ogg->push_time1 - ogg->push_time0), seek_quality);
+      } else {
+        /* in a open ended seek, we can't do bisection, so we pretend
+           we like our result so far */
+        seek_quality = 1.0f;
+        GST_DEBUG_OBJECT (ogg,
+            "Interval was %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT " (%"
+            G_GINT64_FORMAT "), time %" GST_TIME_FORMAT " - unknown",
+            ogg->push_offset0, ogg->push_offset1,
+            ogg->push_offset1 - ogg->push_offset0,
+            GST_TIME_ARGS (ogg->push_time0));
+      }
+      ogg->push_prev_seek_time = ogg->push_last_seek_time;
+
+      gst_ogg_demux_setup_bisection_bounds (ogg);
+
+      best = gst_ogg_demux_estimate_bisection_target (ogg, seek_quality);
+
+      if (ogg->push_seek_time_target == 0) {
+        GST_DEBUG_OBJECT (ogg, "Seeking to 0, deemed close enough");
+        close_enough = (ogg->push_last_seek_time == 0);
+      } else {
+        /* TODO: make this dependent on framerate ? */
+        GstClockTime time_threshold = GST_SECOND / 2;
+        guint64 byte_threshold =
+            (ogg->max_packet_size >
+            64 * 1024 ? ogg->max_packet_size : 64 * 1024);
+
+        /* We want to be within half a second before the target,
+           or before the target and half less or equal to the max
+           packet size left to search in */
+        if (time_threshold > ogg->push_seek_time_target)
+          time_threshold = ogg->push_seek_time_target;
+        close_enough = ogg->push_last_seek_time < ogg->push_seek_time_target
+            && (ogg->push_last_seek_time >=
+            ogg->push_seek_time_target - time_threshold
+            || ogg->push_offset1 <= ogg->push_offset0 + byte_threshold);
+        GST_DEBUG_OBJECT (ogg,
+            "testing if we're close enough: %" GST_TIME_FORMAT " <= %"
+            GST_TIME_FORMAT " < %" GST_TIME_FORMAT ", or %" G_GUINT64_FORMAT
+            " <= %" G_GUINT64_FORMAT " ? %s",
+            GST_TIME_ARGS (ogg->push_seek_time_target - time_threshold),
+            GST_TIME_ARGS (ogg->push_last_seek_time),
+            GST_TIME_ARGS (ogg->push_seek_time_target),
+            ogg->push_offset1 - ogg->push_offset0, byte_threshold,
+            close_enough ? "Yes" : "No");
+      }
+
+      if (close_enough || best == ogg->push_last_seek_offset) {
+        if (ogg->push_state == PUSH_BISECT1) {
+          /* we now know the time segment we'll have to search for
+             the second bisection */
+          ogg->push_time0 = ogg->push_start_time;
+          ogg->push_offset0 = 0;
+
+          GST_DEBUG_OBJECT (ogg,
+              "Seek to %" GST_TIME_FORMAT
+              " (%lx) done, now gathering pages for all non-sparse streams",
+              GST_TIME_ARGS (ogg->push_seek_time_target), (long) granpos);
+          ogg->push_state = PUSH_LINEAR1;
+        } else {
+          /* If we're asked for an accurate seek, we'll go forward till
+             we get to the original seek target time, else we'll just drop
+             here at the keyframe */
+          if (ogg->push_seek_flags & GST_SEEK_FLAG_ACCURATE) {
+            GST_INFO_OBJECT (ogg,
+                "Seek to keyframe at %" GST_TIME_FORMAT " done (we're at %"
+                GST_TIME_FORMAT "), skipping to original target (%"
+                GST_TIME_FORMAT ")",
+                GST_TIME_ARGS (ogg->push_seek_time_target),
+                GST_TIME_ARGS (sync_time),
+                GST_TIME_ARGS (ogg->push_seek_time_original_target));
+            ogg->push_state = PUSH_LINEAR2;
+          } else {
+            GST_INFO_OBJECT (ogg, "Seek to keyframe done, playing");
+
+            /* we're synced to the seek target, so flush stream and stuff
+               any queued pages into the stream so we start decoding there */
+            ogg->push_state = PUSH_PLAYING;
+          }
+          gst_ogg_demux_update_bisection_stats (ogg);
+        }
+      }
+    } else if (ogg->push_state == PUSH_LINEAR1) {
+      if (pad->push_kf_time == GST_CLOCK_TIME_NONE) {
+        GstClockTime earliest_keyframe_time;
+
+        gst_ogg_demux_record_keyframe_time (ogg, pad, granpos);
+        GST_DEBUG_OBJECT (ogg,
+            "Previous keyframe for %s stream at %" GST_TIME_FORMAT,
+            gst_ogg_stream_get_media_type (&pad->map),
+            GST_TIME_ARGS (pad->push_kf_time));
+        earliest_keyframe_time = gst_ogg_demux_get_earliest_keyframe_time (ogg);
+        if (earliest_keyframe_time != GST_CLOCK_TIME_NONE) {
+          if (earliest_keyframe_time > ogg->push_last_seek_time) {
+            GST_INFO_OBJECT (ogg,
+                "All non sparse streams now have a previous keyframe time, "
+                "and we already decoded it, switching to playing");
+            ogg->push_state = PUSH_PLAYING;
+            gst_ogg_demux_update_bisection_stats (ogg);
+          } else {
+            GST_INFO_OBJECT (ogg,
+                "All non sparse streams now have a previous keyframe time, "
+                "bisecting again to %" GST_TIME_FORMAT,
+                GST_TIME_ARGS (earliest_keyframe_time));
+
+            ogg->push_seek_time_target = earliest_keyframe_time;
+            ogg->push_offset0 = 0;
+            ogg->push_time0 = ogg->push_start_time;
+            ogg->push_offset1 = ogg->push_last_seek_offset;
+            ogg->push_time1 = ogg->push_last_seek_time;
+            ogg->push_prev_seek_time = GST_CLOCK_TIME_NONE;
+            ogg->seek_secant = FALSE;
+            ogg->seek_undershot = FALSE;
+
+            ogg->push_state = PUSH_BISECT2;
+            best = gst_ogg_demux_estimate_bisection_target (ogg, 1.0f);
+          }
+        }
+      }
+    }
+
+    if (ogg->push_state == PUSH_BISECT1 || ogg->push_state == PUSH_BISECT2) {
+      gint i;
+
+      ogg_sync_reset (&ogg->sync);
+      for (i = 0; i < ogg->building_chain->streams->len; i++) {
+        GstOggPad *pad =
+            g_array_index (ogg->building_chain->streams, GstOggPad *, i);
+
+        pad->push_sync_time = GST_CLOCK_TIME_NONE;
+        ogg_stream_reset (&pad->map.stream);
+      }
+
+      GST_DEBUG_OBJECT (ogg,
+          "seeking to %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT, best,
+          (gint64) - 1);
+      /* do seek */
+      g_assert (best != -1);
+      ogg->push_bisection_steps[ogg->push_state == PUSH_BISECT2 ? 1 : 0]++;
+      sevent =
+          gst_event_new_seek (ogg->push_seek_rate, GST_FORMAT_BYTES,
+          ogg->push_seek_flags, GST_SEEK_TYPE_SET, best,
+          GST_SEEK_TYPE_NONE, -1);
+
+      GST_PUSH_UNLOCK (ogg);
+      res = gst_pad_push_event (ogg->sinkpad, sevent);
+      if (!res) {
+        /* We failed to send the seek event, notify the pipeline */
+        GST_ELEMENT_ERROR (ogg, RESOURCE, SEEK, (NULL), ("Failed to seek"));
+        return GST_FLOW_ERROR;
+      }
+      return GST_FLOW_SKIP_PUSH;
+    }
+
+    if (ogg->push_state != PUSH_PLAYING) {
+      GST_PUSH_UNLOCK (ogg);
+      return GST_FLOW_SKIP_PUSH;
+    }
+  }
+  GST_PUSH_UNLOCK (ogg);
+
+  return GST_FLOW_OK;
+
+choked:
+  {
+    GST_WARNING_OBJECT (ogg,
+        "ogg stream choked on page (serial %08x), "
+        "resetting stream", pad->map.serialno);
+    gst_ogg_pad_reset (pad);
+    /* we continue to recover */
+    return GST_FLOW_SKIP_PUSH;
+  }
+}
+
 /* submit a page to an oggpad, this function will then submit all
  * the packets in the page.
  */
@@ -998,7 +1677,7 @@ gst_ogg_pad_submit_page (GstOggPad * pad, ogg_page * page)
 
   ogg = pad->ogg;
 
-  /* for negative rates we read pages backwards and must therefore be carefull
+  /* for negative rates we read pages backwards and must therefore be careful
    * with continued pages */
   if (ogg->segment.rate < 0.0) {
     gint npackets;
@@ -1024,6 +1703,18 @@ gst_ogg_pad_submit_page (GstOggPad * pad, ogg_page * page)
     }
   }
 
+  /* keep track of time in push mode */
+  if (!ogg->pullmode) {
+    result = gst_ogg_pad_handle_push_mode_state (pad, page);
+    if (result == GST_FLOW_SKIP_PUSH)
+      return GST_FLOW_OK;
+    if (result != GST_FLOW_OK)
+      return result;
+  }
+
+  if (page->header_len + page->body_len > ogg->max_page_size)
+    ogg->max_page_size = page->header_len + page->body_len;
+
   if (ogg_stream_pagein (&pad->map.stream, page) != 0)
     goto choked;
 
@@ -1072,8 +1763,8 @@ done:
 choked:
   {
     GST_WARNING_OBJECT (ogg,
-        "ogg stream choked on page (serial %08lx), resetting stream",
-        pad->map.serialno);
+        "ogg stream choked on page (serial %08x), "
+        "resetting stream", pad->map.serialno);
     gst_ogg_pad_reset (pad);
     /* we continue to recover */
     return GST_FLOW_OK;
@@ -1084,7 +1775,7 @@ choked:
 static GstOggChain *
 gst_ogg_chain_new (GstOggDemux * ogg)
 {
-  GstOggChain *chain = g_new0 (GstOggChain, 1);
+  GstOggChain *chain = g_slice_new0 (GstOggChain);
 
   GST_DEBUG_OBJECT (ogg, "creating new chain %p", chain);
   chain->ogg = ogg;
@@ -1111,7 +1802,7 @@ gst_ogg_chain_free (GstOggChain * chain)
     gst_object_unref (pad);
   }
   g_array_free (chain->streams, TRUE);
-  g_free (chain);
+  g_slice_free (GstOggChain, chain);
 }
 
 static void
@@ -1146,16 +1837,18 @@ gst_ogg_chain_reset (GstOggChain * chain)
 }
 
 static GstOggPad *
-gst_ogg_chain_new_stream (GstOggChain * chain, glong serialno)
+gst_ogg_chain_new_stream (GstOggChain * chain, guint32 serialno)
 {
   GstOggPad *ret;
   GstTagList *list;
   gchar *name;
 
-  GST_DEBUG_OBJECT (chain->ogg, "creating new stream %08lx in chain %p",
-      serialno, chain);
+  GST_DEBUG_OBJECT (chain->ogg,
+      "creating new stream %08x in chain %p", serialno, chain);
 
-  ret = g_object_new (GST_TYPE_OGG_PAD, NULL);
+  name = g_strdup_printf ("serial_%08x", serialno);
+  ret = g_object_new (GST_TYPE_OGG_PAD, "name", name, NULL);
+  g_free (name);
   /* we own this one */
   gst_object_ref (ret);
   gst_object_sink (ret);
@@ -1170,10 +1863,6 @@ gst_ogg_chain_new_stream (GstOggChain * chain, glong serialno)
   if (ogg_stream_init (&ret->map.stream, serialno) != 0)
     goto init_failed;
 
-  name = g_strdup_printf ("serial_%08lx", serialno);
-  gst_object_set_name (GST_OBJECT (ret), name);
-  g_free (name);
-
   /* FIXME: either do something with it or remove it */
   list = gst_tag_list_new ();
   gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, GST_TAG_SERIAL, serialno,
@@ -1181,7 +1870,7 @@ gst_ogg_chain_new_stream (GstOggChain * chain, glong serialno)
   gst_tag_list_free (list);
 
   GST_DEBUG_OBJECT (chain->ogg,
-      "created new ogg src %p for stream with serial %08lx", ret, serialno);
+      "created new ogg src %p for stream with serial %08x", ret, serialno);
 
   g_array_append_val (chain->streams, ret);
 
@@ -1190,7 +1879,7 @@ gst_ogg_chain_new_stream (GstOggChain * chain, glong serialno)
   /* ERRORS */
 init_failed:
   {
-    GST_ERROR ("Could not initialize ogg_stream struct for serial %08lx.",
+    GST_ERROR ("Could not initialize ogg_stream struct for serial %08x",
         serialno);
     gst_object_unref (ret);
     return NULL;
@@ -1198,7 +1887,7 @@ init_failed:
 }
 
 static GstOggPad *
-gst_ogg_chain_get_stream (GstOggChain * chain, glong serialno)
+gst_ogg_chain_get_stream (GstOggChain * chain, guint32 serialno)
 {
   gint i;
 
@@ -1212,7 +1901,7 @@ gst_ogg_chain_get_stream (GstOggChain * chain, glong serialno)
 }
 
 static gboolean
-gst_ogg_chain_has_stream (GstOggChain * chain, glong serialno)
+gst_ogg_chain_has_stream (GstOggChain * chain, guint32 serialno)
 {
   return gst_ogg_chain_get_stream (chain, serialno) != NULL;
 }
@@ -1260,7 +1949,6 @@ static gboolean gst_ogg_demux_sink_activate_push (GstPad * sinkpad,
     gboolean active);
 static GstStateChangeReturn gst_ogg_demux_change_state (GstElement * element,
     GstStateChange transition);
-static gboolean gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event);
 
 static void gst_ogg_print (GstOggDemux * demux);
 
@@ -1276,10 +1964,10 @@ gst_ogg_demux_base_init (gpointer g_class)
       "demux ogg streams (info about ogg: http://xiph.org)",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_demux_sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_demux_src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_demux_sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_demux_src_template_factory);
 }
 
 static void
@@ -1312,8 +2000,15 @@ gst_ogg_demux_init (GstOggDemux * ogg, GstOggDemuxClass * g_class)
   gst_element_add_pad (GST_ELEMENT (ogg), ogg->sinkpad);
 
   ogg->chain_lock = g_mutex_new ();
+  ogg->push_lock = g_mutex_new ();
   ogg->chains = g_array_new (FALSE, TRUE, sizeof (GstOggChain *));
 
+  ogg->stats_nbisections = 0;
+  ogg->stats_bisection_steps[0] = 0;
+  ogg->stats_bisection_steps[1] = 0;
+  ogg->stats_bisection_max_steps[0] = 0;
+  ogg->stats_bisection_max_steps[1] = 0;
+
   ogg->newsegment = NULL;
 }
 
@@ -1326,6 +2021,7 @@ gst_ogg_demux_finalize (GObject * object)
 
   g_array_free (ogg->chains, TRUE);
   g_mutex_free (ogg->chain_lock);
+  g_mutex_free (ogg->push_lock);
   ogg_sync_clear (&ogg->sync);
 
   if (ogg->newsegment)
@@ -1351,6 +2047,7 @@ gst_ogg_demux_reset_streams (GstOggDemux * ogg)
     stream->map.accumulated_granule = 0;
   }
   ogg->building_chain = chain;
+  GST_DEBUG_OBJECT (ogg, "Resetting current chain");
   ogg->current_chain = NULL;
   ogg->resync = TRUE;
 }
@@ -1371,16 +2068,58 @@ gst_ogg_demux_sink_event (GstPad * pad, GstEvent * event)
       GST_DEBUG_OBJECT (ogg, "got a flush stop event");
       ogg_sync_reset (&ogg->sync);
       res = gst_ogg_demux_send_event (ogg, event);
-      gst_ogg_demux_reset_streams (ogg);
+      if (ogg->pullmode || ogg->push_state != PUSH_DURATION) {
+        /* it's starting to feel reaaaally dirty :(
+           if we're on a spliced seek to get duration, don't reset streams,
+           we'll need them for the delayed seek */
+        gst_ogg_demux_reset_streams (ogg);
+      }
       break;
     case GST_EVENT_NEWSEGMENT:
       GST_DEBUG_OBJECT (ogg, "got a new segment event");
+      {
+        gboolean update;
+        GstFormat format;
+        gdouble rate, arate;
+        gint64 start, stop, time;
+
+        gst_event_parse_new_segment_full (event, &update, &rate, &arate,
+            &format, &start, &stop, &time);
+        if (format == GST_FORMAT_BYTES) {
+          GST_PUSH_LOCK (ogg);
+          ogg->push_byte_offset = start;
+          ogg->push_last_seek_offset = start;
+          GST_PUSH_UNLOCK (ogg);
+        } else {
+          GST_WARNING_OBJECT (ogg, "unexpected segment format: %s",
+              gst_format_get_name (format));
+        }
+      }
       gst_event_unref (event);
       res = TRUE;
       break;
     case GST_EVENT_EOS:
     {
       GST_DEBUG_OBJECT (ogg, "got an EOS event");
+#if 0
+      /* This would be what is needed (recover from EOS by going on to
+         the next step (issue the delayed seek)), but it does not work
+         if there is a queue2 upstream - see more details comment in
+         gst_ogg_pad_submit_page.
+         If I could find a way to bypass queue2 behavior, this should
+         be enabled. */
+      GST_PUSH_LOCK (ogg);
+      if (ogg->push_state == PUSH_DURATION) {
+        GST_DEBUG_OBJECT (ogg, "Got EOS while determining length");
+        res = gst_ogg_demux_seek_back_after_push_duration_check_unlock (ogg);
+        if (res != GST_FLOW_OK) {
+          GST_DEBUG_OBJECT (ogg, "Error seeking back after duration check: %d",
+              res);
+        }
+        break;
+      }
+      GST_PUSH_UNLOCK (ogg);
+#endif
       res = gst_ogg_demux_send_event (ogg, event);
       if (ogg->current_chain == NULL) {
         GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
@@ -1421,6 +2160,12 @@ gst_ogg_demux_submit_buffer (GstOggDemux * ogg, GstBuffer * buffer)
   if (G_UNLIKELY (ogg_sync_wrote (&ogg->sync, size) < 0))
     goto write_failed;
 
+  if (!ogg->pullmode) {
+    GST_PUSH_LOCK (ogg);
+    ogg->push_byte_offset += size;
+    GST_PUSH_UNLOCK (ogg);
+  }
+
 done:
   gst_buffer_unref (buffer);
 
@@ -1629,6 +2374,8 @@ gst_ogg_demux_get_prev_page (GstOggDemux * ogg, ogg_page * og, gint64 * offset)
       if (ret == GST_FLOW_UNEXPECTED) {
         new_offset = 0;
         GST_LOG_OBJECT (ogg, "got unexpected");
+        /* We hit EOS. */
+        goto beach;
       } else if (ret != GST_FLOW_OK) {
         GST_LOG_OBJECT (ogg, "got error %d", ret);
         return ret;
@@ -1656,6 +2403,7 @@ gst_ogg_demux_get_prev_page (GstOggDemux * ogg, ogg_page * og, gint64 * offset)
   if (offset)
     *offset = cur_offset;
 
+beach:
   return ret;
 }
 
@@ -1691,12 +2439,12 @@ gst_ogg_demux_deactivate_current_chain (GstOggDemux * ogg)
 
     pad->added = FALSE;
   }
+
   /* if we cannot seek back to the chain, we can destroy the chain 
    * completely */
   if (!ogg->pullmode) {
     gst_ogg_chain_free (chain);
   }
-  ogg->current_chain = NULL;
 
   return TRUE;
 }
@@ -1742,6 +2490,23 @@ gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg, GstCaps * caps,
   return caps;
 }
 
+static void
+gst_ogg_demux_push_queued_buffers (GstOggDemux * ogg, GstOggPad * pad)
+{
+  GList *walk;
+
+  /* push queued packets */
+  for (walk = pad->map.queued; walk; walk = g_list_next (walk)) {
+    ogg_packet *p = walk->data;
+
+    gst_ogg_demux_chain_peer (pad, p, TRUE);
+    _ogg_packet_free (p);
+  }
+  /* and free the queued buffers */
+  g_list_free (pad->map.queued);
+  pad->map.queued = NULL;
+}
+
 static gboolean
 gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
     GstEvent * event)
@@ -1754,6 +2519,11 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
   if (chain == ogg->current_chain) {
     if (event)
       gst_event_unref (event);
+
+    for (i = 0; i < chain->streams->len; i++) {
+      GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+      gst_ogg_demux_push_queued_buffers (ogg, pad);
+    }
     return TRUE;
   }
 
@@ -1794,6 +2564,7 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
   /* after adding the new pads, remove the old pads */
   gst_ogg_demux_deactivate_current_chain (ogg);
 
+  GST_DEBUG_OBJECT (ogg, "Setting current chain to %p", chain);
   ogg->current_chain = chain;
 
   /* we are finished now */
@@ -1838,16 +2609,7 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
     }
 
     GST_DEBUG_OBJECT (ogg, "pushing queued buffers");
-    /* push queued packets */
-    for (walk = pad->map.queued; walk; walk = g_list_next (walk)) {
-      ogg_packet *p = walk->data;
-
-      gst_ogg_demux_chain_peer (pad, p, TRUE);
-      _ogg_packet_free (p);
-    }
-    /* and free the queued buffers */
-    g_list_free (pad->map.queued);
-    pad->map.queued = NULL;
+    gst_ogg_demux_push_queued_buffers (ogg, pad);
   }
   return TRUE;
 }
@@ -2165,7 +2927,8 @@ gst_ogg_demux_do_seek (GstOggDemux * ogg, GstSegment * segment,
     /* get time of the keyframe */
     keyframe_time =
         gst_ogg_stream_granule_to_time (&pad->map, pad->keyframe_granule);
-    GST_LOG_OBJECT (ogg, "stream %08lx granule time %" GST_TIME_FORMAT,
+    GST_LOG_OBJECT (ogg,
+        "stream %08x granule time %" GST_TIME_FORMAT,
         pad->map.serialno, GST_TIME_ARGS (keyframe_time));
 
     /* collect smallest value */
@@ -2471,6 +3234,90 @@ no_chain:
 }
 
 static gboolean
+gst_ogg_demux_get_duration_push (GstOggDemux * ogg, int flags)
+{
+  /* In push mode, we get to the end of the stream to get the duration */
+  gint64 position;
+  GstEvent *sevent;
+  gboolean res;
+
+  /* A full Ogg page can be almost 64 KB. There's no guarantee that there'll be a
+     granpos there, but it's fairly likely */
+  position =
+      ogg->push_byte_length - DURATION_CHUNK_OFFSET - EOS_AVOIDANCE_THRESHOLD;
+  if (position < 0)
+    position = 0;
+
+  GST_DEBUG_OBJECT (ogg,
+      "Getting duration, seeking near the end, to %" G_GINT64_FORMAT, position);
+  ogg->push_state = PUSH_DURATION;
+  /* do not read the last byte */
+  sevent = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags, GST_SEEK_TYPE_SET,
+      position, GST_SEEK_TYPE_SET, ogg->push_byte_length - 1);
+  res = gst_pad_push_event (ogg->sinkpad, sevent);
+  if (res) {
+    GST_DEBUG_OBJECT (ogg, "Seek succesful");
+    return TRUE;
+  } else {
+    GST_INFO_OBJECT (ogg, "Seek failed, duration will stay unknown");
+    ogg->push_state = PUSH_PLAYING;
+    ogg->push_disable_seeking = TRUE;
+    return FALSE;
+  }
+}
+
+static gboolean
+gst_ogg_demux_check_duration_push (GstOggDemux * ogg, GstSeekFlags flags,
+    GstEvent * event)
+{
+  if (ogg->push_byte_length < 0) {
+    GstPad *peer;
+
+    GST_DEBUG_OBJECT (ogg, "Trying to find byte/time length");
+    if ((peer = gst_pad_get_peer (ogg->sinkpad)) != NULL) {
+      GstFormat format = GST_FORMAT_BYTES;
+      gint64 length;
+      int res;
+
+      res = gst_pad_query_duration (peer, &format, &length);
+      if (res && length > 0) {
+        ogg->push_byte_length = length;
+        GST_DEBUG_OBJECT (ogg,
+            "File byte length %" G_GINT64_FORMAT, ogg->push_byte_length);
+      } else {
+        GST_DEBUG_OBJECT (ogg, "File byte length unknown, assuming live");
+        ogg->push_disable_seeking = TRUE;
+        return TRUE;
+      }
+      format = GST_FORMAT_TIME;
+      res = gst_pad_query_duration (peer, &format, &length);
+      gst_object_unref (peer);
+      if (res && length >= 0) {
+        ogg->push_time_length = length;
+        GST_DEBUG_OBJECT (ogg, "File time length %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (ogg->push_time_length));
+      } else if (!ogg->push_disable_seeking) {
+        gboolean res;
+
+        res = gst_ogg_demux_get_duration_push (ogg, flags);
+        if (res) {
+          GST_DEBUG_OBJECT (ogg,
+              "File time length unknown, trying to determine");
+          ogg->push_mode_seek_delayed_event = NULL;
+          if (event) {
+            GST_DEBUG_OBJECT (ogg,
+                "Let me intercept this innocent looking seek request");
+            ogg->push_mode_seek_delayed_event = gst_event_copy (event);
+          }
+          return FALSE;
+        }
+      }
+    }
+  }
+  return TRUE;
+}
+
+static gboolean
 gst_ogg_demux_perform_seek_push (GstOggDemux * ogg, GstEvent * event)
 {
   gint bitrate;
@@ -2483,6 +3330,9 @@ gst_ogg_demux_perform_seek_push (GstOggDemux * ogg, GstEvent * event)
   GstEvent *sevent;
   GstOggChain *chain;
   gint64 best, best_time;
+  gint i;
+
+  GST_DEBUG_OBJECT (ogg, "Push mode seek request received");
 
   gst_event_parse_seek (event, &rate, &format, &flags,
       &start_type, &start, &stop_type, &stop);
@@ -2492,39 +3342,132 @@ gst_ogg_demux_perform_seek_push (GstOggDemux * ogg, GstEvent * event)
     goto error;
   }
 
+  if (start_type != GST_SEEK_TYPE_SET) {
+    GST_DEBUG_OBJECT (ogg, "can only seek to a SET target");
+    goto error;
+  }
+
+  if (!(flags & GST_SEEK_FLAG_FLUSH)) {
+    GST_DEBUG_OBJECT (ogg, "can only do flushing seeks");
+    goto error;
+  }
+
+  GST_DEBUG_OBJECT (ogg, "Push mode seek request: %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (start));
+
   chain = ogg->current_chain;
-  if (!chain)
+  if (!chain) {
+    GST_WARNING_OBJECT (ogg, "No chain to seek on");
+    goto error;
+  }
+
+  /* start accessing push_* members */
+  GST_PUSH_LOCK (ogg);
+
+  /* not if we disabled seeking (chained streams) */
+  if (ogg->push_disable_seeking) {
+    GST_DEBUG_OBJECT (ogg, "Seeking disabled");
+    goto error_locked;
+  }
+
+  /* not when we're trying to work out duration */
+  if (ogg->push_state == PUSH_DURATION) {
+    GST_DEBUG_OBJECT (ogg, "Busy working out duration, try again later");
+    goto error_locked;
+  }
+
+  /* actually, not if we're doing any seeking already */
+  if (ogg->push_state != PUSH_PLAYING) {
+    GST_DEBUG_OBJECT (ogg, "Already doing some seeking, try again later");
+    goto error_locked;
+  }
+
+  /* on the first seek, get length if we can */
+  if (!gst_ogg_demux_check_duration_push (ogg, flags, event)) {
+    GST_PUSH_UNLOCK (ogg);
     return FALSE;
+  }
 
   if (do_index_search (ogg, chain, 0, -1, 0, -1, start, &best, &best_time)) {
     /* the index gave some result */
     GST_DEBUG_OBJECT (ogg,
         "found offset %" G_GINT64_FORMAT " with time %" G_GUINT64_FORMAT,
         best, best_time);
-    start = best;
-  } else if ((bitrate = ogg->bitrate) > 0) {
-    /* try with bitrate convert the seek positions to bytes */
-    if (start_type != GST_SEEK_TYPE_NONE) {
-      start = gst_util_uint64_scale (start, bitrate, 8 * GST_SECOND);
-    }
-    if (stop_type != GST_SEEK_TYPE_NONE) {
-      stop = gst_util_uint64_scale (stop, bitrate, 8 * GST_SECOND);
-    }
   } else {
-    /* we don't know */
-    res = FALSE;
+    if (ogg->push_time_length > 0) {
+      /* if we know the time length, we know the full segment bitrate */
+      GST_DEBUG_OBJECT (ogg, "Using real file bitrate");
+      bitrate =
+          gst_util_uint64_scale (ogg->push_byte_length, 8 * GST_SECOND,
+          ogg->push_time_length);
+    } else if (ogg->push_time_offset > 0) {
+      /* get a first approximation using known bitrate to the current position */
+      GST_DEBUG_OBJECT (ogg, "Using file bitrate so far");
+      bitrate =
+          gst_util_uint64_scale (ogg->push_byte_offset, 8 * GST_SECOND,
+          ogg->push_time_offset);
+    } else if (ogg->bitrate > 0) {
+      /* nominal bitrate is better than nothing, even if it lies often */
+      GST_DEBUG_OBJECT (ogg, "Using nominal bitrate");
+      bitrate = ogg->bitrate;
+    } else {
+      /* meh */
+      GST_DEBUG_OBJECT (ogg,
+          "At stream start, and no nominal bitrate, using some random magic "
+          "number to seed");
+      /* the bisection, once started, should give us a better approximation */
+      bitrate = 1000;
+    }
+    best = gst_util_uint64_scale (start, bitrate, 8 * GST_SECOND);
   }
 
-  if (res) {
-    GST_DEBUG_OBJECT (ogg,
-        "seeking to %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT, start, stop);
-    /* do seek */
-    sevent = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
-        start_type, start, stop_type, stop);
-
-    res = gst_pad_push_event (ogg->sinkpad, sevent);
+  /* offset by typical page length, and ensure our best guess is within
+     reasonable bounds */
+  best -= CHUNKSIZE;
+  if (best < 0)
+    best = 0;
+  if (ogg->push_byte_length > 0 && best >= ogg->push_byte_length)
+    best = ogg->push_byte_length - 1;
+
+  /* set up bisection search */
+  ogg->push_offset0 = 0;
+  ogg->push_offset1 = ogg->push_byte_length - 1;
+  ogg->push_time0 = ogg->push_start_time;
+  ogg->push_time1 = ogg->push_time_length;
+  ogg->push_seek_time_target = start;
+  ogg->push_prev_seek_time = GST_CLOCK_TIME_NONE;
+  ogg->push_seek_time_original_target = start;
+  ogg->push_state = PUSH_BISECT1;
+  ogg->seek_secant = FALSE;
+  ogg->seek_undershot = FALSE;
+
+  /* reset pad push mode seeking state */
+  for (i = 0; i < chain->streams->len; i++) {
+    GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+    pad->push_kf_time = GST_CLOCK_TIME_NONE;
+    pad->push_sync_time = GST_CLOCK_TIME_NONE;
   }
 
+  GST_DEBUG_OBJECT (ogg,
+      "Setting up bisection search for %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT
+      " (time %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT ")", ogg->push_offset0,
+      ogg->push_offset1, GST_TIME_ARGS (ogg->push_time0),
+      GST_TIME_ARGS (ogg->push_time1));
+  GST_DEBUG_OBJECT (ogg,
+      "Target time is %" GST_TIME_FORMAT ", best first guess is %"
+      G_GINT64_FORMAT, GST_TIME_ARGS (ogg->push_seek_time_target), best);
+
+  ogg->push_seek_rate = rate;
+  ogg->push_seek_flags = flags;
+  ogg->push_mode_seek_delayed_event = NULL;
+  ogg->push_bisection_steps[0] = 1;
+  ogg->push_bisection_steps[1] = 0;
+  sevent = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
+      start_type, best, GST_SEEK_TYPE_NONE, -1);
+
+  GST_PUSH_UNLOCK (ogg);
+  res = gst_pad_push_event (ogg->sinkpad, sevent);
+
   return res;
 
   /* ERRORS */
@@ -2533,6 +3476,10 @@ error:
     GST_DEBUG_OBJECT (ogg, "seek failed");
     return FALSE;
   }
+
+error_locked:
+  GST_PUSH_UNLOCK (ogg);
+  goto error;
 }
 
 static gboolean
@@ -2586,7 +3533,7 @@ gst_ogg_demux_bisect_forward_serialno (GstOggDemux * ogg,
     if (ret == GST_FLOW_UNEXPECTED) {
       endsearched = bisect;
     } else if (ret == GST_FLOW_OK) {
-      glong serial = ogg_page_serialno (&og);
+      guint32 serial = ogg_page_serialno (&og);
 
       if (!gst_ogg_chain_has_stream (chain, serial)) {
         endsearched = bisect;
@@ -2645,7 +3592,7 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
   GstFlowReturn ret;
   GstOggChain *chain = NULL;
   gint64 offset = ogg->offset;
-  ogg_page op;
+  ogg_page og;
   gboolean done;
   gint i;
 
@@ -2655,19 +3602,25 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
    * the decoders, send data to the decoders. */
   while (TRUE) {
     GstOggPad *pad;
-    glong serial;
+    guint32 serial;
 
-    ret = gst_ogg_demux_get_next_page (ogg, &op, -1, NULL);
+    ret = gst_ogg_demux_get_next_page (ogg, &og, -1, NULL);
     if (ret != GST_FLOW_OK) {
-      GST_WARNING_OBJECT (ogg, "problem reading BOS page: ret=%d", ret);
+      if (ret == GST_FLOW_UNEXPECTED) {
+        GST_DEBUG_OBJECT (ogg, "Reached EOS, done reading end chain");
+      } else {
+        GST_WARNING_OBJECT (ogg, "problem reading BOS page: ret=%d", ret);
+      }
       break;
     }
-    if (!ogg_page_bos (&op)) {
-      GST_WARNING_OBJECT (ogg, "page is not BOS page");
+    if (!ogg_page_bos (&og)) {
+      GST_INFO_OBJECT (ogg, "page is not BOS page, all streams identified");
       /* if we did not find a chain yet, assume this is a bogus stream and
        * ignore it */
-      if (!chain)
+      if (!chain) {
+        GST_WARNING_OBJECT (ogg, "No chain found, no Ogg data in stream ?");
         ret = GST_FLOW_UNEXPECTED;
+      }
       break;
     }
 
@@ -2676,15 +3629,15 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
       chain->offset = offset;
     }
 
-    serial = ogg_page_serialno (&op);
+    serial = ogg_page_serialno (&og);
     if (gst_ogg_chain_get_stream (chain, serial) != NULL) {
-      GST_WARNING_OBJECT (ogg, "found serial %08lx BOS page twice, ignoring",
-          serial);
+      GST_WARNING_OBJECT (ogg,
+          "found serial %08x BOS page twice, ignoring", serial);
       continue;
     }
 
     pad = gst_ogg_chain_new_stream (chain, serial);
-    gst_ogg_pad_submit_page (pad, &op);
+    gst_ogg_pad_submit_page (pad, &og);
   }
 
   if (ret != GST_FLOW_OK || chain == NULL) {
@@ -2719,16 +3672,17 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
 
   done = FALSE;
   while (!done) {
-    glong serial;
+    guint32 serial;
     gboolean known_serial = FALSE;
     GstFlowReturn ret;
 
-    serial = ogg_page_serialno (&op);
+    serial = ogg_page_serialno (&og);
     done = TRUE;
     for (i = 0; i < chain->streams->len; i++) {
       GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
 
-      GST_LOG_OBJECT (ogg, "serial %08lx time %" GST_TIME_FORMAT,
+      GST_LOG_OBJECT (ogg,
+          "serial %08x time %" GST_TIME_FORMAT,
           pad->map.serialno, GST_TIME_ARGS (pad->start_time));
 
       if (pad->map.serialno == serial) {
@@ -2736,10 +3690,10 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
 
         /* submit the page now, this will fill in the start_time when the
          * internal decoder finds it */
-        gst_ogg_pad_submit_page (pad, &op);
+        gst_ogg_pad_submit_page (pad, &og);
 
         if (!pad->map.is_skeleton && pad->start_time == -1
-            && ogg_page_eos (&op)) {
+            && ogg_page_eos (&og)) {
           /* got EOS on a pad before we could find its start_time.
            * We have no chance of finding a start_time for every pad so
            * stop searching for the other start_time(s).
@@ -2752,20 +3706,20 @@ gst_ogg_demux_read_chain (GstOggDemux * ogg, GstOggChain ** res_chain)
       if (!pad->map.is_sparse)
         done &= (pad->start_time != GST_CLOCK_TIME_NONE);
 
-      GST_LOG_OBJECT (ogg, "done %08lx now %d", pad->map.serialno, done);
+      GST_LOG_OBJECT (ogg, "done %08x now %d", pad->map.serialno, done);
     }
 
     /* we read a page not belonging to the current chain: seek back to the
      * beginning of the chain
      */
     if (!known_serial) {
-      GST_LOG_OBJECT (ogg, "unknown serial %08lx", serial);
+      GST_LOG_OBJECT (ogg, "unknown serial %08x", serial);
       gst_ogg_demux_seek (ogg, offset);
       break;
     }
 
     if (!done) {
-      ret = gst_ogg_demux_get_next_page (ogg, &op, -1, NULL);
+      ret = gst_ogg_demux_get_next_page (ogg, &og, -1, NULL);
       if (ret != GST_FLOW_OK)
         break;
     }
@@ -2823,7 +3777,7 @@ gst_ogg_demux_read_end_chain (GstOggDemux * ogg, GstOggChain * chain)
       for (i = 0; i < chain->streams->len; i++) {
         GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
 
-        if (pad->map.is_sparse)
+        if (pad->map.is_skeleton)
           continue;
 
         if (pad->map.serialno == ogg_page_serialno (&og)) {
@@ -2856,7 +3810,7 @@ gst_ogg_demux_read_end_chain (GstOggDemux * ogg, GstOggChain * chain)
 /* find a pad with a given serial number
  */
 static GstOggPad *
-gst_ogg_demux_find_pad (GstOggDemux * ogg, glong serialno)
+gst_ogg_demux_find_pad (GstOggDemux * ogg, guint32 serialno)
 {
   GstOggPad *pad;
   gint i;
@@ -2888,7 +3842,7 @@ gst_ogg_demux_find_pad (GstOggDemux * ogg, glong serialno)
 /* find a chain with a given serial number
  */
 static GstOggChain *
-gst_ogg_demux_find_chain (GstOggDemux * ogg, glong serialno)
+gst_ogg_demux_find_chain (GstOggDemux * ogg, guint32 serialno)
 {
   GstOggPad *pad;
 
@@ -2957,7 +3911,7 @@ gst_ogg_demux_find_chains (GstOggDemux * ogg)
   GstPad *peer;
   GstFormat format;
   gboolean res;
-  gulong serialno;
+  guint32 serialno;
   GstOggChain *chain;
   GstFlowReturn ret;
 
@@ -3046,16 +4000,16 @@ gst_ogg_demux_handle_page (GstOggDemux * ogg, ogg_page * page)
 {
   GstOggPad *pad;
   gint64 granule;
-  glong serialno;
+  guint32 serialno;
   GstFlowReturn result = GST_FLOW_OK;
 
   serialno = ogg_page_serialno (page);
   granule = ogg_page_granulepos (page);
 
   GST_LOG_OBJECT (ogg,
-      "processing ogg page (serial %08lx, pageno %ld, granulepos %"
-      G_GINT64_FORMAT ", bos %d)",
-      serialno, ogg_page_pageno (page), granule, ogg_page_bos (page));
+      "processing ogg page (serial %08x, "
+      "pageno %ld, granulepos %" G_GINT64_FORMAT ", bos %d)", serialno,
+      ogg_page_pageno (page), granule, ogg_page_bos (page));
 
   if (ogg_page_bos (page)) {
     GstOggChain *chain;
@@ -3119,11 +4073,31 @@ gst_ogg_demux_handle_page (GstOggDemux * ogg, ogg_page * page)
   if (pad) {
     result = gst_ogg_pad_submit_page (pad, page);
   } else {
-    /* no pad. This means an ogg page without bos has been seen for this
-     * serialno. we just ignore it but post a warning... */
-    GST_ELEMENT_WARNING (ogg, STREAM, DECODE,
-        (NULL), ("unknown ogg pad for serial %08lx detected", serialno));
-    return GST_FLOW_OK;
+    GST_PUSH_LOCK (ogg);
+    if (!ogg->pullmode && !ogg->push_disable_seeking) {
+      /* no pad while probing for duration, we must have a chained stream,
+         and we don't support them, so back off */
+      GST_INFO_OBJECT (ogg, "We seem to have a chained stream, we won't seek");
+      if (ogg->push_state == PUSH_DURATION) {
+        GstFlowReturn res;
+
+        res = gst_ogg_demux_seek_back_after_push_duration_check_unlock (ogg);
+        if (res != GST_FLOW_OK)
+          return res;
+      }
+
+      /* only once we seeked back */
+      GST_PUSH_LOCK (ogg);
+      ogg->push_disable_seeking = TRUE;
+    } else {
+      GST_PUSH_UNLOCK (ogg);
+      /* no pad. This means an ogg page without bos has been seen for this
+       * serialno. we just ignore it but post a warning... */
+      GST_ELEMENT_WARNING (ogg, STREAM, DECODE,
+          (NULL), ("unknown ogg pad for serial %08x detected", serialno));
+      return GST_FLOW_OK;
+    }
+    GST_PUSH_UNLOCK (ogg);
   }
   return result;
 
@@ -3131,7 +4105,7 @@ gst_ogg_demux_handle_page (GstOggDemux * ogg, ogg_page * page)
 unknown_chain:
   {
     GST_ELEMENT_ERROR (ogg, STREAM, DECODE,
-        (NULL), ("unknown ogg chain for serial %08lx detected", serialno));
+        (NULL), ("unknown ogg chain for serial %08x detected", serialno));
     return GST_FLOW_ERROR;
   }
 }
@@ -3148,8 +4122,11 @@ gst_ogg_demux_chain (GstPad * pad, GstBuffer * buffer)
 
   ogg = GST_OGG_DEMUX (GST_OBJECT_PARENT (pad));
 
-  GST_DEBUG_OBJECT (ogg, "chain");
+  GST_DEBUG_OBJECT (ogg, "enter");
   result = gst_ogg_demux_submit_buffer (ogg, buffer);
+  if (result < 0) {
+    GST_DEBUG_OBJECT (ogg, "gst_ogg_demux_submit_buffer returned %d", result);
+  }
 
   while (result == GST_FLOW_OK) {
     ogg_page page;
@@ -3163,11 +4140,15 @@ gst_ogg_demux_chain (GstPad * pad, GstBuffer * buffer)
       GST_DEBUG_OBJECT (ogg, "discont in page found, continuing");
     } else {
       result = gst_ogg_demux_handle_page (ogg, &page);
+      if (result < 0) {
+        GST_DEBUG_OBJECT (ogg, "gst_ogg_demux_handle_page returned %d", result);
+      }
     }
   }
   if (ret == 0 || result == GST_FLOW_OK) {
     gst_ogg_demux_sync_streams (ogg);
   }
+  GST_DEBUG_OBJECT (ogg, "leave with %d", result);
   return result;
 }
 
@@ -3177,6 +4158,9 @@ gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event)
   GstOggChain *chain = ogg->current_chain;
   gboolean res = TRUE;
 
+  if (!chain)
+    chain = ogg->building_chain;
+
   if (chain) {
     gint i;
 
@@ -3187,6 +4171,8 @@ gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event)
       GST_DEBUG_OBJECT (pad, "Pushing event %" GST_PTR_FORMAT, event);
       res &= gst_pad_push_event (GST_PAD (pad), event);
     }
+  } else {
+    GST_WARNING_OBJECT (ogg, "No chain to forward event to");
   }
   gst_event_unref (event);
 
@@ -3488,8 +4474,17 @@ pause:
      * e.g. because of a flushing seek.
      */
     if (event) {
-      gst_event_set_seqnum (event, ogg->seqnum);
-      gst_ogg_demux_send_event (ogg, event);
+      /* guard against corrupt/truncated files, where one can hit EOS
+         before prerolling is done and a chain created. If we have no
+         chain to send the event to, error out. */
+      if (ogg->current_chain || ogg->building_chain) {
+        gst_event_set_seqnum (event, ogg->seqnum);
+        gst_ogg_demux_send_event (ogg, event);
+      } else {
+        gst_event_unref (event);
+        GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
+            ("EOS before finding a chain"));
+      }
     }
     return;
   }
@@ -3585,6 +4580,29 @@ gst_ogg_demux_change_state (GstElement * element, GstStateChange transition)
       ogg->bitrate = 0;
       ogg->segment_running = FALSE;
       ogg->total_time = -1;
+      GST_PUSH_LOCK (ogg);
+      ogg->push_byte_offset = 0;
+      ogg->push_byte_length = -1;
+      ogg->push_time_length = GST_CLOCK_TIME_NONE;
+      ogg->push_time_offset = GST_CLOCK_TIME_NONE;
+      ogg->push_state = PUSH_PLAYING;
+
+      ogg->push_disable_seeking = FALSE;
+      if (!ogg->pullmode) {
+        GstPad *peer;
+        if ((peer = gst_pad_get_peer (ogg->sinkpad)) != NULL) {
+          GstFormat format = GST_FORMAT_BYTES;
+          gint64 length = -1;
+          if (!gst_pad_query_duration (peer, &format, &length) || length <= 0) {
+            GST_DEBUG_OBJECT (ogg,
+                "Unable to determine stream size, assuming live, seeking disabled");
+            ogg->push_disable_seeking = TRUE;
+          }
+          gst_object_unref (peer);
+        }
+      }
+
+      GST_PUSH_UNLOCK (ogg);
       gst_segment_init (&ogg->segment, GST_FORMAT_TIME);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -3674,7 +4692,8 @@ gst_ogg_print (GstOggDemux * ogg)
     for (j = 0; j < chain->streams->len; j++) {
       GstOggPad *stream = g_array_index (chain->streams, GstOggPad *, j);
 
-      GST_INFO_OBJECT (ogg, "  stream %08lx:", stream->map.serialno);
+      GST_INFO_OBJECT (ogg, "  stream %08x: %s", stream->map.serialno,
+          gst_ogg_stream_get_media_type (&stream->map));
       GST_INFO_OBJECT (ogg, "   start time:       %" GST_TIME_FORMAT,
           GST_TIME_ARGS (stream->start_time));
     }
index 031627b..a8ac92b 100644 (file)
@@ -113,6 +113,10 @@ struct _GstOggPad
   gboolean is_eos;
 
   gboolean added;
+
+  /* push mode seeking */
+  GstClockTime push_kf_time;
+  GstClockTime push_sync_time;
 };
 
 struct _GstOggPadClass
@@ -141,6 +145,10 @@ struct _GstOggDemux
   gboolean need_chains;
   gboolean resync;
 
+  /* keep track of how large pages and packets are,
+     useful for skewing when seeking */
+  guint64 max_packet_size, max_page_size;
+
   /* state */
   GMutex *chain_lock;           /* we need the lock to protect the chains */
   GArray *chains;               /* list of chains we know */
@@ -162,6 +170,35 @@ struct _GstOggDemux
   gint64 basetime;
   gint64 prestime;
 
+  /* push mode seeking support */
+  GMutex *push_lock; /* we need the lock to protect the push mode variables */
+  gint64 push_byte_offset; /* where were are at in the stream, in bytes */
+  gint64 push_byte_length; /* length in bytes of the stream, -1 if unknown */
+  GstClockTime push_time_length; /* length in time of the stream */
+  GstClockTime push_start_time; /* start time of the stream */
+  GstClockTime push_time_offset; /* where were are at in the stream, in time */
+  enum { PUSH_PLAYING, PUSH_DURATION, PUSH_BISECT1, PUSH_LINEAR1, PUSH_BISECT2, PUSH_LINEAR2 } push_state;
+
+  GstClockTime push_seek_time_original_target;
+  GstClockTime push_seek_time_target;
+  gint64 push_last_seek_offset;
+  GstClockTime push_last_seek_time;
+  gint64 push_offset0, push_offset1; /* bisection search offset bounds */
+  GstClockTime push_time0, push_time1; /* bisection search time bounds */
+
+  double push_seek_rate;
+  GstSeekFlags push_seek_flags;
+  GstEvent *push_mode_seek_delayed_event;
+  gboolean push_disable_seeking;
+  gboolean seek_secant;
+  gboolean seek_undershot;
+  GstClockTime push_prev_seek_time;
+
+  gint push_bisection_steps[2];
+  gint stats_bisection_steps[2];
+  gint stats_bisection_max_steps[2];
+  gint stats_nbisections;
+
   /* ogg stuff */
   ogg_sync_state sync;
 };
index 4dda50b..7aeecc0 100644 (file)
@@ -40,7 +40,7 @@
 #endif
 
 #include <gst/gst.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstbytewriter.h>
 #include <gst/tag/tag.h>
 
 #include "gstoggmux.h"
@@ -62,11 +62,6 @@ GST_DEBUG_CATEGORY_STATIC (gst_ogg_mux_debug);
     ? GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf) \
     : GST_BUFFER_TIMESTAMP (buf))
 
-#define GST_BUFFER_RUNNING_TIME(buf, oggpad) \
-    (GST_BUFFER_DURATION_IS_VALID (buf) \
-    ? gst_segment_to_running_time (&(oggpad)->segment, GST_FORMAT_TIME, \
-    GST_BUFFER_TIMESTAMP (buf)) : 0)
-
 #define GST_GP_FORMAT "[gp %8" G_GINT64_FORMAT "]"
 #define GST_GP_CAST(_gp) ((gint64) _gp)
 
@@ -87,11 +82,16 @@ enum
 /* set to 0.5 seconds by default */
 #define DEFAULT_MAX_DELAY       G_GINT64_CONSTANT(500000000)
 #define DEFAULT_MAX_PAGE_DELAY  G_GINT64_CONSTANT(500000000)
+#define DEFAULT_MAX_TOLERANCE   G_GINT64_CONSTANT(40000000)
+#define DEFAULT_SKELETON        FALSE
+
 enum
 {
   ARG_0,
   ARG_MAX_DELAY,
   ARG_MAX_PAGE_DELAY,
+  ARG_MAX_TOLERANCE,
+  ARG_SKELETON
 };
 
 static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
@@ -107,7 +107,7 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink_%d",
         "audio/x-vorbis; audio/x-flac; audio/x-speex; audio/x-celt; "
         "application/x-ogm-video; application/x-ogm-audio; video/x-dirac; "
         "video/x-smoke; video/x-vp8; text/x-cmml, encoded = (boolean) TRUE; "
-        "subtitle/x-kate; application/x-kate")
+        "subtitle/x-kate; application/x-kate; audio/x-opus")
     );
 
 static void gst_ogg_mux_base_init (gpointer g_class);
@@ -116,7 +116,7 @@ static void gst_ogg_mux_init (GstOggMux * ogg_mux);
 static void gst_ogg_mux_finalize (GObject * object);
 
 static GstFlowReturn
-gst_ogg_mux_collected (GstCollectPads * pads, GstOggMux * ogg_mux);
+gst_ogg_mux_collected (GstCollectPads2 * pads, GstOggMux * ogg_mux);
 static gboolean gst_ogg_mux_handle_src_event (GstPad * pad, GstEvent * event);
 static GstPad *gst_ogg_mux_request_new_pad (GstElement * element,
     GstPadTemplate * templ, const gchar * name);
@@ -170,10 +170,8 @@ gst_ogg_mux_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_details_simple (element_class,
       "Ogg muxer", "Codec/Muxer",
@@ -209,6 +207,16 @@ gst_ogg_mux_class_init (GstOggMuxClass * klass)
           "Maximum delay for sending out a page", 0, G_MAXUINT64,
           DEFAULT_MAX_PAGE_DELAY,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, ARG_MAX_TOLERANCE,
+      g_param_spec_uint64 ("max-tolerance", "Max time tolerance",
+          "Maximum timestamp difference for maintaining perfect granules",
+          0, G_MAXUINT64, DEFAULT_MAX_TOLERANCE,
+          (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, ARG_SKELETON,
+      g_param_spec_boolean ("skeleton", "Skeleton",
+          "Whether to include a Skeleton track",
+          DEFAULT_SKELETON,
+          (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->change_state = gst_ogg_mux_change_state;
 
@@ -255,13 +263,14 @@ gst_ogg_mux_init (GstOggMux * ogg_mux)
   /* seed random number generator for creation of serial numbers */
   srand (time (NULL));
 
-  ogg_mux->collect = gst_collect_pads_new ();
-  gst_collect_pads_set_function (ogg_mux->collect,
-      (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_ogg_mux_collected),
+  ogg_mux->collect = gst_collect_pads2_new ();
+  gst_collect_pads2_set_function (ogg_mux->collect,
+      (GstCollectPads2Function) GST_DEBUG_FUNCPTR (gst_ogg_mux_collected),
       ogg_mux);
 
   ogg_mux->max_delay = DEFAULT_MAX_DELAY;
   ogg_mux->max_page_delay = DEFAULT_MAX_PAGE_DELAY;
+  ogg_mux->max_tolerance = DEFAULT_MAX_TOLERANCE;
 
   gst_ogg_mux_clear (ogg_mux);
 }
@@ -282,7 +291,7 @@ gst_ogg_mux_finalize (GObject * object)
 }
 
 static void
-gst_ogg_mux_ogg_pad_destroy_notify (GstCollectData * data)
+gst_ogg_mux_ogg_pad_destroy_notify (GstCollectData2 * data)
 {
   GstOggPadData *oggpad = (GstOggPadData *) data;
   GstBuffer *buf;
@@ -349,6 +358,18 @@ gst_ogg_mux_sink_event (GstPad * pad, GstEvent * event)
       gst_segment_init (&ogg_pad->segment, GST_FORMAT_TIME);
       break;
     }
+    case GST_EVENT_TAG:{
+      GstTagList *tags;
+
+      gst_event_parse_tag (event, &tags);
+      tags = gst_tag_list_merge (ogg_pad->tags, tags, GST_TAG_MERGE_APPEND);
+      if (ogg_pad->tags)
+        gst_tag_list_free (ogg_pad->tags);
+      ogg_pad->tags = tags;
+
+      GST_DEBUG_OBJECT (ogg_mux, "Got tags %" GST_PTR_FORMAT, ogg_pad->tags);
+      break;
+    }
     default:
       break;
   }
@@ -411,7 +432,7 @@ gst_ogg_mux_request_new_pad (GstElement * element,
     goto wrong_template;
 
   {
-    gint serial;
+    guint32 serial;
     gchar *name;
 
     if (req_name == NULL || strlen (req_name) < 6) {
@@ -419,7 +440,15 @@ gst_ogg_mux_request_new_pad (GstElement * element,
       serial = gst_ogg_mux_generate_serialno (ogg_mux);
     } else {
       /* parse serial number from requested padname */
-      serial = atoi (&req_name[5]);
+      unsigned long long_serial;
+      char *endptr = NULL;
+      long_serial = strtoul (&req_name[5], &endptr, 10);
+      if ((endptr && *endptr) || (long_serial & ~0xffffffff)) {
+        GST_WARNING_OBJECT (ogg_mux, "Invalid serial number specification: %s",
+            req_name + 5);
+        return NULL;
+      }
+      serial = (guint32) long_serial;
     }
     /* create new pad with the name */
     GST_DEBUG_OBJECT (ogg_mux, "Creating new pad for serial %d", serial);
@@ -433,12 +462,11 @@ gst_ogg_mux_request_new_pad (GstElement * element,
       GstOggPadData *oggpad;
 
       oggpad = (GstOggPadData *)
-          gst_collect_pads_add_pad_full (ogg_mux->collect, newpad,
-          sizeof (GstOggPadData), gst_ogg_mux_ogg_pad_destroy_notify);
+          gst_collect_pads2_add_pad_full (ogg_mux->collect, newpad,
+          sizeof (GstOggPadData), gst_ogg_mux_ogg_pad_destroy_notify, FALSE);
       ogg_mux->active_pads++;
 
       oggpad->map.serialno = serial;
-      ogg_stream_init (&oggpad->map.stream, oggpad->map.serialno);
       oggpad->packetno = 0;
       oggpad->pageno = 0;
       oggpad->eos = FALSE;
@@ -448,9 +476,17 @@ gst_ogg_mux_request_new_pad (GstElement * element,
       oggpad->first_delta = FALSE;
       oggpad->prev_delta = FALSE;
       oggpad->data_pushed = FALSE;
-      oggpad->pagebuffers = g_queue_new ();
       oggpad->map.headers = NULL;
       oggpad->map.queued = NULL;
+      oggpad->next_granule = 0;
+      oggpad->keyframe_granule = -1;
+
+      if (GST_STATE (ogg_mux) > GST_STATE_READY) {
+        /* This will be initialized in init_collectpads when going from ready
+         * paused state */
+        ogg_stream_init (&oggpad->map.stream, oggpad->map.serialno);
+        oggpad->pagebuffers = g_queue_new ();
+      }
 
       gst_segment_init (&oggpad->segment, GST_FORMAT_TIME);
 
@@ -488,7 +524,7 @@ gst_ogg_mux_release_pad (GstElement * element, GstPad * pad)
 
   ogg_mux = GST_OGG_MUX (gst_pad_get_parent (pad));
 
-  gst_collect_pads_remove_pad (ogg_mux->collect, pad);
+  gst_collect_pads2_remove_pad (ogg_mux->collect, pad);
   gst_element_remove_pad (element, pad);
 
   gst_object_unref (ogg_mux);
@@ -551,7 +587,7 @@ gst_ogg_mux_push_buffer (GstOggMux * mux, GstBuffer * buffer,
 
   /* Ensure we have monotonically increasing timestamps in the output. */
   if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) {
-    gint64 run_time = GST_BUFFER_RUNNING_TIME (buffer, oggpad);
+    gint64 run_time = GST_BUFFER_TIMESTAMP (buffer);
     if (mux->last_ts != GST_CLOCK_TIME_NONE && run_time < mux->last_ts)
       GST_BUFFER_TIMESTAMP (buffer) = mux->last_ts;
     else
@@ -734,32 +770,21 @@ gst_ogg_mux_compare_pads (GstOggMux * ogg_mux, GstOggPadData * first,
 
   /* if the first pad doesn't contain anything or is even NULL, return
    * the second pad as best candidate and vice versa */
-  if (first == NULL || (first->buffer == NULL && first->next_buffer == NULL))
+  if (first == NULL)
     return 1;
-  if (second == NULL || (second->buffer == NULL && second->next_buffer == NULL))
+  if (second == NULL)
     return -1;
 
   /* no timestamp on first buffer, it must go first */
-  if (first->buffer)
-    firsttime = GST_BUFFER_TIMESTAMP (first->buffer);
-  else
-    firsttime = GST_BUFFER_TIMESTAMP (first->next_buffer);
+  firsttime = GST_BUFFER_TIMESTAMP (first->buffer);
   if (firsttime == GST_CLOCK_TIME_NONE)
     return -1;
 
   /* no timestamp on second buffer, it must go first */
-  if (second->buffer)
-    secondtime = GST_BUFFER_TIMESTAMP (second->buffer);
-  else
-    secondtime = GST_BUFFER_TIMESTAMP (second->next_buffer);
+  secondtime = GST_BUFFER_TIMESTAMP (second->buffer);
   if (secondtime == GST_CLOCK_TIME_NONE)
     return 1;
 
-  firsttime = gst_segment_to_running_time (&first->segment, GST_FORMAT_TIME,
-      firsttime);
-  secondtime = gst_segment_to_running_time (&second->segment, GST_FORMAT_TIME,
-      secondtime);
-
   /* first buffer has higher timestamp, second one should go first */
   if (secondtime < firsttime)
     return 1;
@@ -779,6 +804,114 @@ gst_ogg_mux_compare_pads (GstOggMux * ogg_mux, GstOggPadData * first,
   return 0;
 }
 
+static GstBuffer *
+gst_ogg_mux_decorate_buffer (GstOggMux * ogg_mux, GstOggPadData * pad,
+    GstBuffer * buf)
+{
+  GstClockTime time;
+  gint64 duration, granule, limit;
+  GstClockTime next_time;
+  GstClockTimeDiff diff;
+  ogg_packet packet;
+
+  /* ensure messing with metadata is ok */
+  buf = gst_buffer_make_metadata_writable (buf);
+
+  /* convert time to running time, so we need no longer bother about that */
+  time = GST_BUFFER_TIMESTAMP (buf);
+  if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (time))) {
+    time = gst_segment_to_running_time (&pad->segment, GST_FORMAT_TIME, time);
+    if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (time))) {
+      gst_buffer_unref (buf);
+      return NULL;
+    } else {
+      GST_BUFFER_TIMESTAMP (buf) = time;
+    }
+  }
+
+  /* now come up with granulepos stuff corresponding to time */
+  if (!pad->have_type ||
+      pad->map.granulerate_n <= 0 || pad->map.granulerate_d <= 0)
+    goto no_granule;
+
+  packet.packet = GST_BUFFER_DATA (buf);
+  packet.bytes = GST_BUFFER_SIZE (buf);
+  duration = gst_ogg_stream_get_packet_duration (&pad->map, &packet);
+
+  /* give up if no duration can be determined, relying on upstream */
+  if (G_UNLIKELY (duration < 0)) {
+    /* well, if some day we really could handle sparse input ... */
+    if (pad->map.is_sparse) {
+      limit = 1;
+      diff = 2;
+      goto resync;
+    }
+    GST_WARNING_OBJECT (pad->collect.pad,
+        "failed to determine packet duration");
+    goto no_granule;
+  }
+
+  GST_LOG_OBJECT (pad->collect.pad, "buffer ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT ", granule duration %" G_GINT64_FORMAT,
+      GST_TIME_ARGS (time), GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
+      duration);
+
+  /* determine granule corresponding to time,
+   * using the inverse of oggdemux' granule -> time */
+
+  /* see if interpolated granule matches good enough */
+  granule = pad->next_granule;
+  next_time = gst_ogg_stream_granule_to_time (&pad->map, pad->next_granule);
+  diff = GST_CLOCK_DIFF (next_time, time);
+
+  /* we tolerate deviation up to configured or within granule granularity */
+  limit = gst_ogg_stream_granule_to_time (&pad->map, 1) / 2;
+  limit = MAX (limit, ogg_mux->max_tolerance);
+
+  GST_LOG_OBJECT (pad->collect.pad, "expected granule %" G_GINT64_FORMAT " == "
+      "time %" GST_TIME_FORMAT " --> ts diff %" GST_TIME_FORMAT
+      " < tolerance %" GST_TIME_FORMAT " (?)",
+      granule, GST_TIME_ARGS (next_time), GST_TIME_ARGS (ABS (diff)),
+      GST_TIME_ARGS (limit));
+
+resync:
+  /* if not good enough, determine granule based on time */
+  if (diff > limit || diff < -limit) {
+    granule = gst_util_uint64_scale_round (time, pad->map.granulerate_n,
+        GST_SECOND * pad->map.granulerate_d);
+    GST_DEBUG_OBJECT (pad->collect.pad,
+        "resyncing to determined granule %" G_GINT64_FORMAT, granule);
+  }
+
+  if (pad->map.is_ogm || pad->map.is_sparse) {
+    pad->next_granule = granule;
+  } else {
+    granule += duration;
+    pad->next_granule = granule;
+  }
+
+  /* track previous keyframe */
+  if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT))
+    pad->keyframe_granule = granule;
+
+  /* determine corresponding time and granulepos */
+  GST_BUFFER_OFFSET (buf) = gst_ogg_stream_granule_to_time (&pad->map, granule);
+  GST_BUFFER_OFFSET_END (buf) =
+      gst_ogg_stream_granule_to_granulepos (&pad->map, granule,
+      pad->keyframe_granule);
+
+  return buf;
+
+  /* ERRORS */
+no_granule:
+  {
+    GST_DEBUG_OBJECT (pad->collect.pad, "could not determine granulepos, "
+        "falling back to upstream provided metadata");
+    return buf;
+  }
+}
+
+
 /* make sure at least one buffer is queued on all pads, two if possible
  * 
  * if pad->buffer == NULL, pad->next_buffer !=  NULL, then
@@ -790,21 +923,23 @@ gst_ogg_mux_compare_pads (GstOggMux * ogg_mux, GstOggPadData * first,
  * 
  * returns a pointer to an oggpad that holds the best buffer, or
  * NULL when no pad was usable. "best" means the buffer marked
- * with the lowest timestamp. If best->buffer == NULL then nothing
- * should be done until more data arrives */
+ * with the lowest timestamp. If best->buffer == NULL then either
+ * we're at EOS (popped = FALSE), or a buffer got dropped, so retry. */
 static GstOggPadData *
-gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
+gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped)
 {
-  GstOggPadData *bestpad = NULL, *still_hungry = NULL;
+  GstOggPadData *bestpad = NULL;
   GSList *walk;
 
+  *popped = FALSE;
+
   /* try to make sure we have a buffer from each usable pad first */
   walk = ogg_mux->collect->data;
   while (walk) {
     GstOggPadData *pad;
-    GstCollectData *data;
+    GstCollectData2 *data;
 
-    data = (GstCollectData *) walk->data;
+    data = (GstCollectData2 *) walk->data;
     pad = (GstOggPadData *) data;
 
     walk = g_slist_next (walk);
@@ -815,19 +950,13 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
     if (pad->buffer == NULL) {
       GstBuffer *buf;
 
-      /* shift the buffer along if needed (it's okay if next_buffer is NULL) */
-      if (pad->buffer == NULL) {
-        GST_LOG_OBJECT (data->pad, "shifting buffer %" GST_PTR_FORMAT,
-            pad->next_buffer);
-        pad->buffer = pad->next_buffer;
-        pad->next_buffer = NULL;
-      }
-
-      buf = gst_collect_pads_pop (ogg_mux->collect, data);
+      buf = gst_collect_pads2_pop (ogg_mux->collect, data);
       GST_LOG_OBJECT (data->pad, "popped buffer %" GST_PTR_FORMAT, buf);
 
       /* On EOS we get a NULL buffer */
       if (buf != NULL) {
+        *popped = TRUE;
+
         if (ogg_mux->delta_pad == NULL &&
             GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT))
           ogg_mux->delta_pad = pad;
@@ -841,11 +970,6 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
           packet.packet = GST_BUFFER_DATA (buf);
           packet.bytes = GST_BUFFER_SIZE (buf);
 
-          if (GST_BUFFER_OFFSET_END_IS_VALID (buf))
-            packet.granulepos = GST_BUFFER_OFFSET_END (buf);
-          else
-            packet.granulepos = 0;
-
           /* if we're not yet in data mode, ensure we're setup on the first packet */
           if (!pad->have_type) {
             /* Use headers in caps, if any; this will allow us to be resilient
@@ -866,6 +990,12 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
             } else {
               GST_DEBUG_OBJECT (pad, "caps detected: %" GST_PTR_FORMAT,
                   pad->map.caps);
+
+              if (pad->map.is_sparse) {
+                GST_DEBUG_OBJECT (pad, "Pad is sparse, marking as such");
+                gst_collect_pads2_set_waiting (ogg_mux->collect,
+                    (GstCollectData2 *) pad, FALSE);
+              }
             }
           }
 
@@ -886,54 +1016,43 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
                 "got data buffer in control state, switching to data mode");
             /* this is a data buffer so switch to data state */
             pad->state = GST_OGG_PAD_STATE_DATA;
+
+            /* check if this type of stream allows generating granulepos
+             * metadata here, if not, upstream will have to provide */
+            if (gst_ogg_stream_granule_to_granulepos (&pad->map, 1, 1) < 0) {
+              GST_WARNING_OBJECT (data->pad, "can not generate metadata; "
+                  "relying on upstream");
+              /* disable metadata code path, otherwise not used anyway */
+              pad->map.granulerate_n = 0;
+            }
           }
         }
-      } else {
-        GST_DEBUG_OBJECT (data->pad, "EOS on pad");
-        if (!pad->eos) {
-          ogg_page page;
-
-          /* it's no longer active */
-          ogg_mux->active_pads--;
-
-          /* Just gone to EOS. Flush existing page(s) */
-          pad->eos = TRUE;
-
-          while (ogg_stream_flush (&pad->map.stream, &page)) {
-            /* Place page into the per-pad queue */
-            gst_ogg_mux_pad_queue_page (ogg_mux, pad, &page, pad->first_delta);
-            /* increment the page number counter */
-            pad->pageno++;
-            /* mark other pages as delta */
-            pad->first_delta = TRUE;
-          }
+
+        /* so now we should have a real data packet;
+         * see that it is properly decorated */
+        if (G_LIKELY (buf)) {
+          buf = gst_ogg_mux_decorate_buffer (ogg_mux, pad, buf);
+          if (G_UNLIKELY (!buf))
+            GST_DEBUG_OBJECT (data->pad, "buffer clipped");
         }
       }
 
-      pad->next_buffer = buf;
+      pad->buffer = buf;
     }
 
     /* we should have a buffer now, see if it is the best pad to
      * pull on */
-    if (pad->buffer || pad->next_buffer) {
+    if (pad->buffer) {
       if (gst_ogg_mux_compare_pads (ogg_mux, bestpad, pad) > 0) {
         GST_LOG_OBJECT (data->pad,
-            "new best pad, with buffers %" GST_PTR_FORMAT
-            " and %" GST_PTR_FORMAT, pad->buffer, pad->next_buffer);
+            "new best pad, with buffer %" GST_PTR_FORMAT, pad->buffer);
 
         bestpad = pad;
       }
-    } else if (!pad->eos) {
-      GST_LOG_OBJECT (data->pad, "hungry pad");
-      still_hungry = pad;
     }
   }
 
-  if (still_hungry)
-    /* drop back into collectpads... */
-    return still_hungry;
-  else
-    return bestpad;
+  return bestpad;
 }
 
 static GList *
@@ -979,14 +1098,9 @@ gst_ogg_mux_get_headers (GstOggPadData * pad)
         GST_LOG_OBJECT (thepad, "streamheader is not fixed list");
       }
 
-      /* Start a new page for every CMML buffer */
-      if (gst_structure_has_name (structure, "text/x-cmml"))
-        pad->always_flush_page = TRUE;
     } else if (gst_structure_has_name (structure, "video/x-dirac")) {
       res = g_list_append (res, pad->buffer);
-      pad->buffer = pad->next_buffer;
-      pad->next_buffer = NULL;
-      pad->always_flush_page = TRUE;
+      pad->buffer = NULL;
     } else {
       GST_LOG_OBJECT (thepad, "caps don't have streamheader");
     }
@@ -1035,6 +1149,170 @@ gst_ogg_mux_set_header_on_caps (GstCaps * caps, GList * buffers)
   return caps;
 }
 
+static void
+gst_ogg_mux_create_header_packet_with_flags (ogg_packet * packet,
+    GstBuffer * buf, gboolean bos, gboolean eos)
+{
+  packet->packet = GST_BUFFER_DATA (buf);
+  packet->bytes = GST_BUFFER_SIZE (buf);
+  packet->granulepos = 0;
+  /* mark BOS and packet number */
+  packet->b_o_s = bos;
+  /* mark EOS */
+  packet->e_o_s = eos;
+}
+
+static void
+gst_ogg_mux_create_header_packet (ogg_packet * packet, GstBuffer * buf,
+    GstOggPadData * pad)
+{
+  gst_ogg_mux_create_header_packet_with_flags (packet, buf, pad->packetno == 0,
+      0);
+  packet->packetno = pad->packetno++;
+}
+
+static void
+gst_ogg_mux_submit_skeleton_header_packet (GstOggMux * mux,
+    ogg_stream_state * os, GstBuffer * buf, gboolean bos, gboolean eos)
+{
+  ogg_packet packet;
+  gst_ogg_mux_create_header_packet_with_flags (&packet, buf, bos, eos);
+  ogg_stream_packetin (os, &packet);
+  gst_buffer_unref (buf);
+}
+
+static void
+gst_ogg_mux_make_fishead (GstOggMux * mux, ogg_stream_state * os)
+{
+  GstByteWriter bw;
+  GstBuffer *fishead;
+
+  GST_DEBUG_OBJECT (mux, "Creating fishead");
+
+  fishead = gst_buffer_new_and_alloc (64);
+  gst_byte_writer_init_with_buffer (&bw, fishead, FALSE);
+  gst_byte_writer_put_string_utf8 (&bw, "fishead");
+  gst_byte_writer_put_int16_le (&bw, 3);        /* version major */
+  gst_byte_writer_put_int16_le (&bw, 0);        /* version minor */
+  gst_byte_writer_put_int64_le (&bw, 0);        /* presentation time numerator */
+  gst_byte_writer_put_int64_le (&bw, 1000);     /* ...and denominator */
+  gst_byte_writer_put_int64_le (&bw, 0);        /* base time numerator */
+  gst_byte_writer_put_int64_le (&bw, 1000);     /* ...and denominator */
+  gst_byte_writer_fill (&bw, ' ', 20);  /* UTC time */
+  g_assert (gst_byte_writer_get_pos (&bw) == GST_BUFFER_SIZE (fishead));
+  gst_ogg_mux_submit_skeleton_header_packet (mux, os, fishead, 1, 0);
+}
+
+static void
+gst_ogg_mux_byte_writer_put_string_utf8 (GstByteWriter * bw, const char *s)
+{
+  gst_byte_writer_put_data (bw, (const guint8 *) s, strlen (s));
+}
+
+static void
+gst_ogg_mux_add_fisbone_message_header (GstOggMux * mux, GstByteWriter * bw,
+    const char *tag, const char *value)
+{
+  /* It is valid to pass NULL as the value to omit the tag */
+  if (!value)
+    return;
+  GST_DEBUG_OBJECT (mux, "Adding fisbone message header %s: %s", tag, value);
+  gst_ogg_mux_byte_writer_put_string_utf8 (bw, tag);
+  gst_ogg_mux_byte_writer_put_string_utf8 (bw, ": ");
+  gst_ogg_mux_byte_writer_put_string_utf8 (bw, value);
+  gst_ogg_mux_byte_writer_put_string_utf8 (bw, "\r\n");
+}
+
+static void
+gst_ogg_mux_add_fisbone_message_header_from_tags (GstOggMux * mux,
+    GstByteWriter * bw, const char *header, const char *tag,
+    const GstTagList * tags)
+{
+  GString *s;
+  guint size = gst_tag_list_get_tag_size (tags, tag), n;
+  GST_DEBUG_OBJECT (mux, "Found %u tags for name %s", size, tag);
+  if (size == 0)
+    return;
+  s = g_string_new ("");
+  for (n = 0; n < size; ++n) {
+    gchar *tmp;
+    if (n)
+      g_string_append (s, ", ");
+    gst_tag_list_get_string_index (tags, tag, n, &tmp);
+    g_string_append (s, tmp);
+    g_free (tmp);
+  }
+  gst_ogg_mux_add_fisbone_message_header (mux, bw, header, s->str);
+  g_string_free (s, TRUE);
+}
+
+/* This is a basic placeholder to generate roles for the tracks.
+   For tracks with more than one video, both video tracks will get
+   tagged with a "video/main" role, but we have no way of knowing
+   which one is the main one, if any. We could just pick one. For
+   audio, it's more complicated as we don't know which is music,
+   which is dubbing, etc. For kate, we could take a pretty good
+   guess based on the category, as role essentially is category.
+   For now, leave this as is. */
+static const char *
+gst_ogg_mux_get_default_role (GstOggPadData * pad)
+{
+  const char *type = gst_ogg_stream_get_media_type (&pad->map);
+  if (type) {
+    if (!strncmp (type, "video/", strlen ("video/")))
+      return "video/main";
+    if (!strncmp (type, "audio/", strlen ("audio/")))
+      return "audio/main";
+    if (!strcmp (type + strlen (type) - strlen ("kate"), "kate"))
+      return "text/caption";
+  }
+  return NULL;
+}
+
+static void
+gst_ogg_mux_make_fisbone (GstOggMux * mux, ogg_stream_state * os,
+    GstOggPadData * pad)
+{
+  GstByteWriter bw;
+
+  GST_DEBUG_OBJECT (mux,
+      "Creating %s fisbone for serial %08x",
+      gst_ogg_stream_get_media_type (&pad->map), pad->map.serialno);
+
+  gst_byte_writer_init (&bw);
+  gst_byte_writer_put_string_utf8 (&bw, "fisbone");
+  gst_byte_writer_put_int32_le (&bw, 44);       /* offset to message headers */
+  gst_byte_writer_put_uint32_le (&bw, pad->map.serialno);
+  gst_byte_writer_put_uint32_le (&bw, pad->map.n_header_packets);
+  gst_byte_writer_put_uint64_le (&bw, pad->map.granulerate_n);
+  gst_byte_writer_put_uint64_le (&bw, pad->map.granulerate_d);
+  gst_byte_writer_put_uint64_le (&bw, 0);       /* base granule */
+  gst_byte_writer_put_uint32_le (&bw, pad->map.preroll);
+  gst_byte_writer_put_uint8 (&bw, pad->map.granuleshift);
+  gst_byte_writer_fill (&bw, 0, 3);     /* padding */
+  /* message header fields - MIME type for now */
+  gst_ogg_mux_add_fisbone_message_header (mux, &bw, "Content-Type",
+      gst_ogg_stream_get_media_type (&pad->map));
+  gst_ogg_mux_add_fisbone_message_header (mux, &bw, "Role",
+      gst_ogg_mux_get_default_role (pad));
+  gst_ogg_mux_add_fisbone_message_header_from_tags (mux, &bw, "Language",
+      GST_TAG_LANGUAGE_CODE, pad->tags);
+  gst_ogg_mux_add_fisbone_message_header_from_tags (mux, &bw, "Title",
+      GST_TAG_TITLE, pad->tags);
+
+  gst_ogg_mux_submit_skeleton_header_packet (mux, os,
+      gst_byte_writer_reset_and_get_buffer (&bw), 0, 0);
+}
+
+static void
+gst_ogg_mux_make_fistail (GstOggMux * mux, ogg_stream_state * os)
+{
+  GST_DEBUG_OBJECT (mux, "Creating fistail");
+
+  gst_ogg_mux_submit_skeleton_header_packet (mux, os,
+      gst_buffer_new_and_alloc (0), 0, 1);
+}
+
 /*
  * For each pad we need to write out one (small) header in one
  * page that allows decoders to identify the type of the stream.
@@ -1050,6 +1328,8 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
   GList *hbufs, *hwalk;
   GstCaps *caps;
   GstFlowReturn ret;
+  ogg_page page;
+  ogg_stream_state skeleton_stream;
 
   hbufs = NULL;
   ret = GST_FLOW_OK;
@@ -1068,8 +1348,8 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
 
     GST_LOG_OBJECT (mux, "looking at pad %s:%s", GST_DEBUG_PAD_NAME (thepad));
 
-    /* if the pad has no buffer, we don't care */
-    if (pad->buffer == NULL && pad->next_buffer == NULL)
+    /* if the pad has no buffer and is not sparse, we don't care */
+    if (pad->buffer == NULL && !pad->map.is_sparse)
       continue;
 
     /* now figure out the headers */
@@ -1082,7 +1362,6 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
     GstOggPadData *pad;
     GstBuffer *buf;
     ogg_packet packet;
-    ogg_page page;
     GstPad *thepad;
     GstCaps *caps;
     GstStructure *structure;
@@ -1105,9 +1384,6 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
     } else if (pad->buffer) {
       buf = pad->buffer;
       gst_buffer_ref (buf);
-    } else if (pad->next_buffer) {
-      buf = pad->next_buffer;
-      gst_buffer_ref (buf);
     } else {
       /* fixme -- should be caught in the previous list traversal. */
       GST_OBJECT_LOCK (thepad);
@@ -1118,16 +1394,7 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
     }
 
     /* create a packet from the buffer */
-    packet.packet = GST_BUFFER_DATA (buf);
-    packet.bytes = GST_BUFFER_SIZE (buf);
-    packet.granulepos = GST_BUFFER_OFFSET_END (buf);
-    if (packet.granulepos == -1)
-      packet.granulepos = 0;
-    /* mark BOS and packet number */
-    packet.b_o_s = (pad->packetno == 0);
-    packet.packetno = pad->packetno++;
-    /* mark EOS */
-    packet.e_o_s = 0;
+    gst_ogg_mux_create_header_packet (&packet, buf, pad);
 
     /* swap the packet in */
     ogg_stream_packetin (&pad->map.stream, &packet);
@@ -1142,28 +1409,33 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
     GST_LOG_OBJECT (mux, "swapped out page with mime type %s",
         gst_structure_get_name (structure));
 
-    /* quick hack: put Theora, VP8 and Dirac video pages at the front.
+    /* quick hack: put video pages at the front.
      * Ideally, we would have a settable enum for which Ogg
      * profile we work with, and order based on that.
      * (FIXME: if there is more than one video stream, shouldn't we only put
      * one's BOS into the first page, followed by an audio stream's BOS, and
      * only then followed by the remaining video and audio streams?) */
-    if (gst_structure_has_name (structure, "video/x-theora")) {
-      GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "Theora");
-      hbufs = g_list_prepend (hbufs, hbuf);
-    } else if (gst_structure_has_name (structure, "video/x-dirac")) {
-      GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "Dirac");
-      hbufs = g_list_prepend (hbufs, hbuf);
-      pad->always_flush_page = TRUE;
-    } else if (gst_structure_has_name (structure, "video/x-vp8")) {
-      GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "VP8");
+    if (pad->map.is_video) {
+      GST_DEBUG_OBJECT (thepad, "putting %s page at the front",
+          gst_structure_get_name (structure));
       hbufs = g_list_prepend (hbufs, hbuf);
     } else {
       hbufs = g_list_append (hbufs, hbuf);
     }
+
     gst_caps_unref (caps);
   }
 
+  /* The Skeleton BOS goes first - even before the video that went first before */
+  if (mux->use_skeleton) {
+    ogg_stream_init (&skeleton_stream, gst_ogg_mux_generate_serialno (mux));
+    gst_ogg_mux_make_fishead (mux, &skeleton_stream);
+    while (ogg_stream_flush (&skeleton_stream, &page) > 0) {
+      GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
+      hbufs = g_list_append (hbufs, hbuf);
+    }
+  }
+
   GST_LOG_OBJECT (mux, "creating next headers");
   walk = mux->collect->data;
   while (walk) {
@@ -1175,6 +1447,9 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
 
     walk = walk->next;
 
+    if (mux->use_skeleton)
+      gst_ogg_mux_make_fisbone (mux, &skeleton_stream, pad);
+
     GST_LOG_OBJECT (mux, "looping over headers for pad %s:%s",
         GST_DEBUG_PAD_NAME (thepad));
 
@@ -1182,21 +1457,11 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
     while (hwalk) {
       GstBuffer *buf = GST_BUFFER (hwalk->data);
       ogg_packet packet;
-      ogg_page page;
 
       hwalk = hwalk->next;
 
       /* create a packet from the buffer */
-      packet.packet = GST_BUFFER_DATA (buf);
-      packet.bytes = GST_BUFFER_SIZE (buf);
-      packet.granulepos = GST_BUFFER_OFFSET_END (buf);
-      if (packet.granulepos == -1)
-        packet.granulepos = 0;
-      /* mark BOS and packet number */
-      packet.b_o_s = (pad->packetno == 0);
-      packet.packetno = pad->packetno++;
-      /* mark EOS */
-      packet.e_o_s = 0;
+      gst_ogg_mux_create_header_packet (&packet, buf, pad);
 
       /* swap the packet in */
       ogg_stream_packetin (&pad->map.stream, &packet);
@@ -1227,6 +1492,21 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
     g_list_free (pad->map.headers);
     pad->map.headers = NULL;
   }
+
+  if (mux->use_skeleton) {
+    /* flush accumulated fisbones, the fistail must be on a separate page */
+    while (ogg_stream_flush (&skeleton_stream, &page) > 0) {
+      GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
+      hbufs = g_list_append (hbufs, hbuf);
+    }
+    gst_ogg_mux_make_fistail (mux, &skeleton_stream);
+    while (ogg_stream_flush (&skeleton_stream, &page) > 0) {
+      GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
+      hbufs = g_list_append (hbufs, hbuf);
+    }
+    ogg_stream_clear (&skeleton_stream);
+  }
+
   /* hbufs holds all buffers for the headers now */
 
   /* create caps with the buffers */
@@ -1278,16 +1558,35 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best)
   gboolean delta_unit;
   gint64 granulepos = 0;
   GstClockTime timestamp, gp_time;
+  GstBuffer *next_buf;
 
   GST_LOG_OBJECT (ogg_mux, "best pad %" GST_PTR_FORMAT
       ", currently pulling from %" GST_PTR_FORMAT, best->collect.pad,
-      ogg_mux->pulling);
+      ogg_mux->pulling ? ogg_mux->pulling->collect.pad : NULL);
+
+  if (ogg_mux->pulling) {
+    next_buf = gst_collect_pads2_peek (ogg_mux->collect,
+        &ogg_mux->pulling->collect);
+    if (next_buf) {
+      ogg_mux->pulling->eos = FALSE;
+      gst_buffer_unref (next_buf);
+    } else {
+      GST_DEBUG_OBJECT (ogg_mux->pulling->collect.pad, "setting eos to true");
+      ogg_mux->pulling->eos = TRUE;
+    }
+  }
 
-  /* best->buffer is non-NULL, either the pad is EOS's or there is a next 
-   * buffer */
-  if (best->next_buffer == NULL && !best->eos) {
-    GST_WARNING_OBJECT (ogg_mux, "no subsequent buffer and EOS not reached");
-    return GST_FLOW_WRONG_STATE;
+  /* We could end up pushing from the best pad instead, so check that
+   * as well */
+  if (best && best != ogg_mux->pulling) {
+    next_buf = gst_collect_pads2_peek (ogg_mux->collect, &best->collect);
+    if (next_buf) {
+      best->eos = FALSE;
+      gst_buffer_unref (next_buf);
+    } else {
+      GST_DEBUG_OBJECT (best->collect.pad, "setting eos to true");
+      best->eos = TRUE;
+    }
   }
 
   /* if we were already pulling from one pad, but the new "best" buffer is
@@ -1392,11 +1691,12 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best)
         GST_GP_CAST (packet.granulepos), (gint64) packet.packetno,
         packet.bytes);
 
-    packet.e_o_s = (pad->eos ? 1 : 0);
+    packet.e_o_s = ogg_mux->pulling->eos ? 1 : 0;
     tmpbuf = NULL;
 
     /* we flush when we see a new keyframe */
-    force_flush = (pad->prev_delta && !delta_unit) || pad->always_flush_page;
+    force_flush = (pad->prev_delta && !delta_unit)
+        || pad->map.always_flush_page;
     if (duration != -1) {
       pad->duration += duration;
       /* if page duration exceeds max, flush page */
@@ -1571,26 +1871,24 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best)
  * Returns TRUE if all pads are EOS.
  */
 static gboolean
-all_pads_eos (GstCollectPads * pads)
+all_pads_eos (GstCollectPads2 * pads)
 {
   GSList *walk;
-  gboolean alleos = TRUE;
 
   walk = pads->data;
   while (walk) {
-    GstBuffer *buf;
-    GstCollectData *data = (GstCollectData *) walk->data;
+    GstOggPadData *oggpad = (GstOggPadData *) walk->data;
 
-    buf = gst_collect_pads_peek (pads, data);
-    if (buf) {
-      alleos = FALSE;
-      gst_buffer_unref (buf);
-      goto beach;
-    }
-    walk = walk->next;
+    GST_DEBUG_OBJECT (oggpad->collect.pad,
+        "oggpad %p eos %d", oggpad, oggpad->eos);
+
+    if (oggpad->eos == FALSE)
+      return FALSE;
+
+    walk = g_slist_next (walk);
   }
-beach:
-  return alleos;
+
+  return TRUE;
 }
 
 /* This function is called when there is data on all pads.
@@ -1604,49 +1902,30 @@ beach:
  * are all empty, and then sends EOS.
  */
 static GstFlowReturn
-gst_ogg_mux_collected (GstCollectPads * pads, GstOggMux * ogg_mux)
+gst_ogg_mux_collected (GstCollectPads2 * pads, GstOggMux * ogg_mux)
 {
   GstOggPadData *best;
   GstFlowReturn ret;
-  gint activebefore;
+  gboolean popped;
 
   GST_LOG_OBJECT (ogg_mux, "collected");
 
-  activebefore = ogg_mux->active_pads;
-
   /* queue buffers on all pads; find a buffer with the lowest timestamp */
-  best = gst_ogg_mux_queue_pads (ogg_mux);
-  if (best && !best->buffer) {
-    GST_DEBUG_OBJECT (ogg_mux, "No buffer available on best pad");
+  best = gst_ogg_mux_queue_pads (ogg_mux, &popped);
+
+  if (popped)
     return GST_FLOW_OK;
-  }
 
-  if (!best) {
-    return GST_FLOW_WRONG_STATE;
+  if (best == NULL || best->buffer == NULL) {
+    /* This is not supposed to happen */
+    return GST_FLOW_ERROR;
   }
 
   ret = gst_ogg_mux_process_best_pad (ogg_mux, best);
 
-  if (ogg_mux->active_pads < activebefore) {
-    /* If the active pad count went down, this mean at least one pad has gone
-     * EOS. Since CollectPads only calls _collected() once when all pads are
-     * EOS, and our code doesn't _pop() from all pads we need to check that by
-     * peeking on all pads, else we won't be called again and the muxing will
-     * not terminate (push out EOS). */
-
-    /* if all the pads have been removed, flush all pending data */
-    if ((ret == GST_FLOW_OK) && all_pads_eos (pads)) {
-      GST_LOG_OBJECT (ogg_mux, "no pads remaining, flushing data");
-
-      do {
-        best = gst_ogg_mux_queue_pads (ogg_mux);
-        if (best)
-          ret = gst_ogg_mux_process_best_pad (ogg_mux, best);
-      } while ((ret == GST_FLOW_OK) && (best != NULL));
-
-      GST_DEBUG_OBJECT (ogg_mux, "Pushing EOS");
-      gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ());
-    }
+  if (best->eos && all_pads_eos (pads)) {
+    gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ());
+    return GST_FLOW_UNEXPECTED;
   }
 
   return ret;
@@ -1667,6 +1946,12 @@ gst_ogg_mux_get_property (GObject * object,
     case ARG_MAX_PAGE_DELAY:
       g_value_set_uint64 (value, ogg_mux->max_page_delay);
       break;
+    case ARG_MAX_TOLERANCE:
+      g_value_set_uint64 (value, ogg_mux->max_tolerance);
+      break;
+    case ARG_SKELETON:
+      g_value_set_boolean (value, ogg_mux->use_skeleton);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1688,6 +1973,12 @@ gst_ogg_mux_set_property (GObject * object,
     case ARG_MAX_PAGE_DELAY:
       ogg_mux->max_page_delay = g_value_get_uint64 (value);
       break;
+    case ARG_MAX_TOLERANCE:
+      ogg_mux->max_tolerance = g_value_get_uint64 (value);
+      break;
+    case ARG_SKELETON:
+      ogg_mux->use_skeleton = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1696,7 +1987,7 @@ gst_ogg_mux_set_property (GObject * object,
 
 /* reset all variables in the ogg pads. */
 static void
-gst_ogg_mux_init_collectpads (GstCollectPads * collect)
+gst_ogg_mux_init_collectpads (GstCollectPads2 * collect)
 {
   GSList *walk;
 
@@ -1724,7 +2015,7 @@ gst_ogg_mux_init_collectpads (GstCollectPads * collect)
 
 /* Clear all buffers from the collectpads object */
 static void
-gst_ogg_mux_clear_collectpads (GstCollectPads * collect)
+gst_ogg_mux_clear_collectpads (GstCollectPads2 * collect)
 {
   GSList *walk;
 
@@ -1744,9 +2035,10 @@ gst_ogg_mux_clear_collectpads (GstCollectPads * collect)
       gst_buffer_unref (oggpad->buffer);
       oggpad->buffer = NULL;
     }
-    if (oggpad->next_buffer) {
-      gst_buffer_unref (oggpad->next_buffer);
-      oggpad->next_buffer = NULL;
+
+    if (oggpad->tags) {
+      gst_tag_list_free (oggpad->tags);
+      oggpad->tags = NULL;
     }
 
     gst_segment_init (&oggpad->segment, GST_FORMAT_TIME);
@@ -1767,12 +2059,12 @@ gst_ogg_mux_change_state (GstElement * element, GstStateChange transition)
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       gst_ogg_mux_clear (ogg_mux);
       gst_ogg_mux_init_collectpads (ogg_mux->collect);
-      gst_collect_pads_start (ogg_mux->collect);
+      gst_collect_pads2_start (ogg_mux->collect);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_collect_pads_stop (ogg_mux->collect);
+      gst_collect_pads2_stop (ogg_mux->collect);
       break;
     default:
       break;
index 933226d..64d71a1 100644 (file)
@@ -24,7 +24,7 @@
 #include <ogg/ogg.h>
 
 #include <gst/gst.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstcollectpads2.h>
 #include "gstoggstream.h"
 
 G_BEGIN_DECLS
@@ -48,17 +48,14 @@ GstOggPadState;
 /* all information needed for one ogg stream */
 typedef struct
 {
-  GstCollectData collect;       /* we extend the CollectData */
+  GstCollectData2 collect;       /* we extend the CollectData */
 
   GstOggStream map;
   gboolean have_type;
 
   GstSegment segment;
 
-  /* These two buffers make a very simple queue - they enter as 'next_buffer'
-   * and (usually) leave as 'buffer', except at EOS, when buffer will be NULL */
   GstBuffer *buffer;            /* the first waiting buffer for the pad */
-  GstBuffer *next_buffer;       /* the second waiting buffer for the pad */
 
   gint64 packetno;              /* number of next packet */
   gint64 pageno;                /* number of next page */
@@ -82,9 +79,12 @@ typedef struct
   gboolean prev_delta;          /* was the previous buffer a delta frame */
   gboolean data_pushed;         /* whether we pushed data already */
 
+  gint64  next_granule;         /* expected granule of next buffer ts */
+  gint64  keyframe_granule;     /* granule of last preceding keyframe */
+
   GstPadEventFunction collect_event;
 
-  gboolean always_flush_page;
+  GstTagList *tags;
 }
 GstOggPadData;
 
@@ -101,7 +101,7 @@ struct _GstOggMux
   GstPad *srcpad;
 
   /* sinkpads */
-  GstCollectPads *collect;
+  GstCollectPads2 *collect;
 
   /* number of pads which have not received EOS */
   gint active_pads;
@@ -123,11 +123,15 @@ struct _GstOggMux
 
   guint64 max_delay;
   guint64 max_page_delay;
+  guint64 max_tolerance;
 
   GstOggPadData *delta_pad;     /* when a delta frame is detected on a stream, we mark
                                    pages as delta frames up to the page that has the
                                    keyframe */
 
+
+  /* whether to create a skeleton track */
+  gboolean use_skeleton;
 };
 
 struct _GstOggMuxClass
index eae0acd..3bdcecb 100644 (file)
@@ -117,7 +117,7 @@ free_stream (GstOggStream * stream)
   g_list_foreach (stream->unknown_pages, (GFunc) gst_mini_object_unref, NULL);
   g_list_foreach (stream->stored_buffers, (GFunc) gst_mini_object_unref, NULL);
 
-  g_free (stream);
+  g_slice_free (GstOggStream, stream);
 }
 
 static void
@@ -140,7 +140,7 @@ gst_ogg_parse_new_stream (GstOggParse * parser, ogg_page * page)
 
   GST_DEBUG_OBJECT (parser, "creating new stream %08x", serialno);
 
-  stream = g_new0 (GstOggStream, 1);
+  stream = g_slice_new0 (GstOggStream);
 
   stream->serialno = serialno;
   stream->in_headers = 1;
@@ -224,10 +224,10 @@ gst_ogg_parse_base_init (gpointer g_class)
       "parse ogg streams into pages (info about ogg: http://xiph.org)",
       "Michael Smith <msmith@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_parse_sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_parse_src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_parse_sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_parse_src_template_factory);
 }
 
 static void
@@ -466,7 +466,7 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
         GstOggStream *stream = gst_ogg_parse_find_stream (ogg, serialno);
 
         if (stream != NULL) {
-          GST_LOG_OBJECT (ogg, "Incorrect stream; repeats serial number %u "
+          GST_LOG_OBJECT (ogg, "Incorrect stream; repeats serial number %08x "
               "at offset %" G_GINT64_FORMAT, serialno, ogg->offset);
         }
 
@@ -560,7 +560,7 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
               GstOggStream *stream = (GstOggStream *) l->data;
 
               if (g_list_length (stream->headers) == 0) {
-                GST_LOG_OBJECT (ogg, "No primary header found for stream %08lx",
+                GST_LOG_OBJECT (ogg, "No primary header found for stream %08x",
                     stream->serialno);
                 goto failure;
               }
index e843f48..3b267fa 100644 (file)
@@ -47,9 +47,13 @@ typedef gint64 (*GstOggMapToGranuleposFunc) (GstOggStream * pad,
     gint64 granule, gint64 keyframe_granule);
 
 /* returns TRUE if the granulepos denotes a key frame */
-typedef gboolean (*GstOggMapIsKeyFrameFunc) (GstOggStream * pad,
+typedef gboolean (*GstOggMapIsGranuleposKeyFrameFunc) (GstOggStream * pad,
     gint64 granulepos);
 
+/* returns TRUE if the packet is a key frame */
+typedef gboolean (*GstOggMapIsPacketKeyFrameFunc) (GstOggStream * pad,
+    ogg_packet * packet);
+
 /* returns TRUE if the given packet is a stream header packet */
 typedef gboolean (*GstOggMapIsHeaderPacketFunc) (GstOggStream * pad,
     ogg_packet * packet);
@@ -74,7 +78,8 @@ struct _GstOggMap
   GstOggMapSetupFunc setup_func;
   GstOggMapToGranuleFunc granulepos_to_granule_func;
   GstOggMapToGranuleposFunc granule_to_granulepos_func;
-  GstOggMapIsKeyFrameFunc is_key_frame_func;
+  GstOggMapIsGranuleposKeyFrameFunc is_granulepos_key_frame_func;
+  GstOggMapIsPacketKeyFrameFunc is_packet_key_frame_func;
   GstOggMapIsHeaderPacketFunc is_header_func;
   GstOggMapPacketDurationFunc packet_duration_func;
   GstOggMapGranuleposToKeyGranuleFunc granulepos_to_key_granule_func;
@@ -127,6 +132,10 @@ gst_ogg_stream_granule_to_time (GstOggStream * pad, gint64 granule)
   if (granule == 0 || pad->granulerate_n == 0 || pad->granulerate_d == 0)
     return 0;
 
+  granule += pad->granule_offset;
+  if (granule < 0)
+    return 0;
+
   return gst_util_uint64_scale (granule, GST_SECOND * pad->granulerate_d,
       pad->granulerate_n);
 }
@@ -139,7 +148,8 @@ gst_ogg_stream_granulepos_to_granule (GstOggStream * pad, gint64 granulepos)
   }
 
   if (mappers[pad->map].granulepos_to_granule_func == NULL) {
-    GST_WARNING ("Failed to convert granulepos to granule");
+    GST_WARNING ("Failed to convert %s granulepos to granule",
+        gst_ogg_stream_get_media_type (pad));
     return -1;
   }
 
@@ -168,7 +178,8 @@ gst_ogg_stream_granule_to_granulepos (GstOggStream * pad, gint64 granule,
   }
 
   if (mappers[pad->map].granule_to_granulepos_func == NULL) {
-    GST_WARNING ("Failed to convert granule to granulepos");
+    GST_WARNING ("Failed to convert %s granule to granulepos",
+        gst_ogg_stream_get_media_type (pad));
     return -1;
   }
 
@@ -183,19 +194,33 @@ gst_ogg_stream_granulepos_is_key_frame (GstOggStream * pad, gint64 granulepos)
     return FALSE;
   }
 
-  if (mappers[pad->map].is_key_frame_func == NULL) {
-    GST_WARNING ("Failed to determine key frame");
+  if (mappers[pad->map].is_granulepos_key_frame_func == NULL) {
+    GST_WARNING ("Failed to determine keyframeness for %s granulepos",
+        gst_ogg_stream_get_media_type (pad));
+    return FALSE;
+  }
+
+  return mappers[pad->map].is_granulepos_key_frame_func (pad, granulepos);
+}
+
+gboolean
+gst_ogg_stream_packet_is_key_frame (GstOggStream * pad, ogg_packet * packet)
+{
+  if (mappers[pad->map].is_packet_key_frame_func == NULL) {
+    GST_WARNING ("Failed to determine keyframeness of %s packet",
+        gst_ogg_stream_get_media_type (pad));
     return FALSE;
   }
 
-  return mappers[pad->map].is_key_frame_func (pad, granulepos);
+  return mappers[pad->map].is_packet_key_frame_func (pad, packet);
 }
 
 gboolean
 gst_ogg_stream_packet_is_header (GstOggStream * pad, ogg_packet * packet)
 {
   if (mappers[pad->map].is_header_func == NULL) {
-    GST_WARNING ("Failed to determine header");
+    GST_WARNING ("Failed to determine headerness of %s packet",
+        gst_ogg_stream_get_media_type (pad));
     return FALSE;
   }
 
@@ -206,7 +231,8 @@ gint64
 gst_ogg_stream_get_packet_duration (GstOggStream * pad, ogg_packet * packet)
 {
   if (mappers[pad->map].packet_duration_func == NULL) {
-    GST_WARNING ("Failed to determine packet duration");
+    GST_WARNING ("Failed to determine %s packet duration",
+        gst_ogg_stream_get_media_type (pad));
     return -1;
   }
 
@@ -225,10 +251,29 @@ gst_ogg_stream_extract_tags (GstOggStream * pad, ogg_packet * packet)
   mappers[pad->map].extract_tags_func (pad, packet);
 }
 
+const char *
+gst_ogg_stream_get_media_type (GstOggStream * pad)
+{
+  const GstCaps *caps = pad->caps;
+  const GstStructure *structure;
+  if (!caps)
+    return NULL;
+  structure = gst_caps_get_structure (caps, 0);
+  if (!structure)
+    return NULL;
+  return gst_structure_get_name (structure);
+}
+
 /* some generic functions */
 
 static gboolean
-is_keyframe_true (GstOggStream * pad, gint64 granulepos)
+is_granulepos_keyframe_true (GstOggStream * pad, gint64 granulepos)
+{
+  return TRUE;
+}
+
+static gboolean
+is_packet_keyframe_true (GstOggStream * pad, ogg_packet * packet)
 {
   return TRUE;
 }
@@ -368,6 +413,7 @@ setup_theora_mapper (GstOggStream * pad, ogg_packet * packet)
   /* 2 bits + 3 bits = 5 bits KFGSHIFT */
   pad->granuleshift = ((GST_READ_UINT8 (data + 40) & 0x03) << 3) +
       (GST_READ_UINT8 (data + 41) >> 5);
+  GST_LOG ("granshift: %d", pad->granuleshift);
 
   pad->is_video = TRUE;
   pad->n_header_packets = 3;
@@ -424,7 +470,7 @@ granulepos_to_granule_theora (GstOggStream * pad, gint64 granulepos)
 }
 
 static gboolean
-is_keyframe_theora (GstOggStream * pad, gint64 granulepos)
+is_granulepos_keyframe_theora (GstOggStream * pad, gint64 granulepos)
 {
   gint64 frame_mask;
 
@@ -437,6 +483,14 @@ is_keyframe_theora (GstOggStream * pad, gint64 granulepos)
 }
 
 static gboolean
+is_packet_keyframe_theora (GstOggStream * pad, ogg_packet * packet)
+{
+  if (packet->bytes == 0)
+    return FALSE;
+  return (packet->packet[0] & 0xc0) == 0x00;
+}
+
+static gboolean
 is_header_theora (GstOggStream * pad, ogg_packet * packet)
 {
   return (packet->bytes > 0 && (packet->packet[0] & 0x80) == 0x80);
@@ -474,6 +528,7 @@ setup_dirac_mapper (GstOggStream * pad, ogg_packet * packet)
   }
 
   pad->is_video = TRUE;
+  pad->always_flush_page = TRUE;
   pad->granulerate_n = header.frame_rate_numerator * 2;
   pad->granulerate_d = header.frame_rate_denominator;
   pad->granuleshift = 22;
@@ -703,6 +758,7 @@ setup_vorbis_mapper (GstOggStream * pad, ogg_packet * packet)
   pad->granulerate_n = GST_READ_UINT32_LE (data);
   pad->granulerate_d = 1;
   pad->granuleshift = 0;
+  pad->preroll = 2;
   pad->last_size = 0;
   GST_LOG ("sample rate: %d", pad->granulerate_n);
 
@@ -792,7 +848,7 @@ packet_duration_vorbis (GstOggStream * pad, ogg_packet * packet)
   int size;
   int duration;
 
-  if (packet->packet[0] & 1)
+  if (packet->bytes == 0 || packet->packet[0] & 1)
     return 0;
 
   mode = (packet->packet[0] >> 1) & ((1 << pad->vorbis_log2_num_modes) - 1);
@@ -1079,7 +1135,7 @@ setup_fishead_mapper (GstOggStream * pad, ogg_packet * packet)
   pad->is_skeleton = TRUE;
   pad->is_sparse = TRUE;
 
-  pad->caps = gst_caps_new_simple ("none/none", NULL);
+  pad->caps = gst_caps_new_simple ("application/x-ogg-skeleton", NULL);
 
   return TRUE;
 }
@@ -1091,12 +1147,15 @@ gst_ogg_map_parse_fisbone (GstOggStream * pad, const guint8 * data, guint size,
   GstOggSkeleton stype;
   guint serial_offset;
 
-  if (size < SKELETON_FISBONE_MIN_SIZE) {
+  if (size != 0 && size < SKELETON_FISBONE_MIN_SIZE) {
     GST_WARNING ("small fisbone packet of size %d, ignoring", size);
     return FALSE;
   }
 
-  if (memcmp (data, "fisbone\0", 8) == 0) {
+  if (size == 0) {
+    /* Skeleton EOS packet is zero bytes */
+    return FALSE;
+  } else if (memcmp (data, "fisbone\0", 8) == 0) {
     GST_INFO ("got fisbone packet");
     stype = GST_OGG_SKELETON_FISBONE;
     serial_offset = 12;
@@ -1137,13 +1196,23 @@ gst_ogg_map_add_fisbone (GstOggStream * pad, GstOggStream * skel_pad,
 
   pad->have_fisbone = TRUE;
 
-  /* we just overwrite whatever was set before by the format-specific setup */
-  pad->granulerate_n = GST_READ_UINT64_LE (data);
-  pad->granulerate_d = GST_READ_UINT64_LE (data + 8);
+  /* We don't overwrite whatever was set before by the format-specific
+     setup: skeleton contains wrong information sometimes, and the codec
+     headers are authoritative.
+     So we only gather information that was not already filled out by
+     the mapper setup. This should hopefully allow handling unknown
+     streams a bit better, while not trashing correct setup from bad
+     skeleton data. */
+  if (pad->granulerate_n == 0 || pad->granulerate_d == 0) {
+    pad->granulerate_n = GST_READ_UINT64_LE (data);
+    pad->granulerate_d = GST_READ_UINT64_LE (data + 8);
+  }
+  if (pad->granuleshift < 0) {
+    pad->granuleshift = GST_READ_UINT8 (data + 28);
+  }
 
   start_granule = GST_READ_UINT64_LE (data + 16);
   pad->preroll = GST_READ_UINT32_LE (data + 24);
-  pad->granuleshift = GST_READ_UINT8 (data + 28);
 
   start_time = granulepos_to_granule_default (pad, start_granule);
 
@@ -1668,6 +1737,7 @@ setup_cmml_mapper (GstOggStream * pad, ogg_packet * packet)
   GST_DEBUG ("blocksize1: %u", 1 << (data[0] & 0x0F));
 
   pad->caps = gst_caps_new_simple ("text/x-cmml", NULL);
+  pad->always_flush_page = TRUE;
   pad->is_sparse = TRUE;
 
   return TRUE;
@@ -1729,6 +1799,7 @@ setup_kate_mapper (GstOggStream * pad, ogg_packet * packet)
   }
 
   pad->is_sparse = TRUE;
+  pad->always_flush_page = TRUE;
 
   return TRUE;
 }
@@ -1805,11 +1876,109 @@ extract_tags_kate (GstOggStream * pad, ogg_packet * packet)
       /* ensure the comment packet cannot override the category/language
          from the identification header */
       gst_tag_list_insert (pad->taglist, list, GST_TAG_MERGE_KEEP_ALL);
+      gst_tag_list_free (list);
     } else
       pad->taglist = list;
   }
 }
 
+/* opus */
+
+static gboolean
+setup_opus_mapper (GstOggStream * pad, ogg_packet * packet)
+{
+  if (packet->bytes < 19)
+    return FALSE;
+
+  pad->granulerate_n = 48000;
+  pad->granulerate_d = 1;
+  pad->granuleshift = 0;
+  pad->n_header_packets = 2;
+
+  /* pre-skip is in samples at 48000 Hz, which matches granule one for one */
+  pad->granule_offset = -GST_READ_UINT16_LE (packet->packet + 10);
+  GST_INFO ("Opus has a pre-skip of %" G_GINT64_FORMAT " samples",
+      -pad->granule_offset);
+
+  pad->caps = gst_caps_new_simple ("audio/x-opus", NULL);
+
+  return TRUE;
+}
+
+static gboolean
+is_header_opus (GstOggStream * pad, ogg_packet * packet)
+{
+  return packet->bytes >= 8 && !memcmp (packet->packet, "Opus", 4);
+}
+
+static gint64
+packet_duration_opus (GstOggStream * pad, ogg_packet * packet)
+{
+  static const guint64 durations[32] = {
+    480, 960, 1920, 2880,       /* Silk NB */
+    480, 960, 1920, 2880,       /* Silk MB */
+    480, 960, 1920, 2880,       /* Silk WB */
+    480, 960,                   /* Hybrid SWB */
+    480, 960,                   /* Hybrid FB */
+    120, 240, 480, 960,         /* CELT NB */
+    120, 240, 480, 960,         /* CELT NB */
+    120, 240, 480, 960,         /* CELT NB */
+    120, 240, 480, 960,         /* CELT NB */
+  };
+
+  gint64 duration;
+  gint64 frame_duration;
+  gint nframes = 0;
+  guint8 toc;
+
+  if (packet->bytes < 1)
+    return 0;
+
+  /* headers */
+  if (is_header_opus (pad, packet))
+    return 0;
+
+  toc = packet->packet[0];
+
+  frame_duration = durations[toc >> 3];
+  switch (toc & 3) {
+    case 0:
+      nframes = 1;
+      break;
+    case 1:
+      nframes = 2;
+      break;
+    case 2:
+      nframes = 2;
+      break;
+    case 3:
+      if (packet->bytes < 2) {
+        GST_WARNING ("Code 3 Opus packet has less than 2 bytes");
+        return 0;
+      }
+      nframes = packet->packet[1] & 63;
+      break;
+  }
+
+  duration = nframes * frame_duration;
+  if (duration > 5760) {
+    GST_WARNING ("Opus packet duration > 120 ms, invalid");
+    return 0;
+  }
+  GST_LOG ("Opus packet: frame size %.1f ms, %d frames, duration %.1f ms",
+      frame_duration / 48.f, nframes, duration / 48.f);
+  return duration;
+}
+
+static void
+extract_tags_opus (GstOggStream * pad, ogg_packet * packet)
+{
+  if (packet->bytes >= 8 && memcmp (packet->packet, "OpusTags", 8) == 0) {
+    tag_list_from_vorbiscomment_packet (packet,
+        (const guint8 *) "OpusTags", 8, &pad->taglist);
+  }
+}
+
 
 /* *INDENT-OFF* */
 /* indent hates our freedoms */
@@ -1820,7 +1989,8 @@ const GstOggMap mappers[] = {
     setup_theora_mapper,
     granulepos_to_granule_theora,
     granule_to_granulepos_default,
-    is_keyframe_theora,
+    is_granulepos_keyframe_theora,
+    is_packet_keyframe_theora,
     is_header_theora,
     packet_duration_constant,
     NULL,
@@ -1832,7 +2002,8 @@ const GstOggMap mappers[] = {
     setup_vorbis_mapper,
     granulepos_to_granule_default,
     granule_to_granulepos_default,
-    is_keyframe_true,
+    is_granulepos_keyframe_true,
+    is_packet_keyframe_true,
     is_header_vorbis,
     packet_duration_vorbis,
     NULL,
@@ -1844,7 +2015,8 @@ const GstOggMap mappers[] = {
     setup_speex_mapper,
     granulepos_to_granule_default,
     granule_to_granulepos_default,
-    is_keyframe_true,
+    is_granulepos_keyframe_true,
+    is_packet_keyframe_true,
     is_header_count,
     packet_duration_constant,
     NULL,
@@ -1857,6 +2029,7 @@ const GstOggMap mappers[] = {
     NULL,
     NULL,
     NULL,
+    NULL,
     is_header_count,
     NULL,
     NULL,
@@ -1869,6 +2042,7 @@ const GstOggMap mappers[] = {
     NULL,
     NULL,
     NULL,
+    NULL,
     is_header_count,
     NULL,
     NULL,
@@ -1881,6 +2055,7 @@ const GstOggMap mappers[] = {
     granulepos_to_granule_default,
     granule_to_granulepos_default,
     NULL,
+    NULL,
     is_header_count,
     NULL,
     NULL,
@@ -1893,6 +2068,7 @@ const GstOggMap mappers[] = {
     NULL,
     NULL,
     NULL,
+    NULL,
     is_header_true,
     NULL,
     NULL,
@@ -1904,7 +2080,8 @@ const GstOggMap mappers[] = {
     setup_fLaC_mapper,
     granulepos_to_granule_default,
     granule_to_granulepos_default,
-    is_keyframe_true,
+    is_granulepos_keyframe_true,
+    is_packet_keyframe_true,
     is_header_fLaC,
     packet_duration_flac,
     NULL,
@@ -1916,7 +2093,8 @@ const GstOggMap mappers[] = {
     setup_flac_mapper,
     granulepos_to_granule_default,
     granule_to_granulepos_default,
-    is_keyframe_true,
+    is_granulepos_keyframe_true,
+    is_packet_keyframe_true,
     is_header_flac,
     packet_duration_flac,
     NULL,
@@ -1931,6 +2109,7 @@ const GstOggMap mappers[] = {
     NULL,
     NULL,
     NULL,
+    NULL,
     NULL
   },
   {
@@ -1940,6 +2119,7 @@ const GstOggMap mappers[] = {
     granulepos_to_granule_default,
     granule_to_granulepos_default,
     NULL,
+    NULL,
     is_header_count,
     packet_duration_constant,
     NULL,
@@ -1952,6 +2132,7 @@ const GstOggMap mappers[] = {
     granulepos_to_granule_default,
     granule_to_granulepos_default,
     NULL,
+    NULL,
     is_header_count,
     packet_duration_kate,
     NULL,
@@ -1964,6 +2145,7 @@ const GstOggMap mappers[] = {
     granulepos_to_granule_dirac,
     granule_to_granulepos_dirac,
     is_keyframe_dirac,
+    NULL,
     is_header_count,
     packet_duration_constant,
     granulepos_to_key_granule_dirac,
@@ -1976,18 +2158,33 @@ const GstOggMap mappers[] = {
     granulepos_to_granule_vp8,
     granule_to_granulepos_vp8,
     is_keyframe_vp8,
+    NULL,
     is_header_vp8,
     packet_duration_vp8,
     granulepos_to_key_granule_vp8,
     extract_tags_vp8
   },
   {
+    "OpusHead", 8, 0,
+    "audio/x-opus",
+    setup_opus_mapper,
+    granulepos_to_granule_default,
+    granule_to_granulepos_default,
+    NULL,
+    NULL,
+    is_header_opus,
+    packet_duration_opus,
+    NULL,
+    extract_tags_opus
+  },
+  {
     "\001audio\0\0\0", 9, 53,
     "application/x-ogm-audio",
     setup_ogmaudio_mapper,
     granulepos_to_granule_default,
     granule_to_granulepos_default,
-    is_keyframe_true,
+    is_granulepos_keyframe_true,
+    is_packet_keyframe_true,
     is_header_ogm,
     packet_duration_ogm,
     NULL,
@@ -2000,6 +2197,7 @@ const GstOggMap mappers[] = {
     granulepos_to_granule_default,
     granule_to_granulepos_default,
     NULL,
+    NULL,
     is_header_ogm,
     packet_duration_constant,
     NULL,
@@ -2011,7 +2209,8 @@ const GstOggMap mappers[] = {
     setup_ogmtext_mapper,
     granulepos_to_granule_default,
     granule_to_granulepos_default,
-    is_keyframe_true,
+    is_granulepos_keyframe_true,
+    is_packet_keyframe_true,
     is_header_ogm,
     packet_duration_ogm,
     NULL,
index f843692..c06bc51 100644 (file)
@@ -45,7 +45,7 @@ struct _GstOggStream
 {
   ogg_stream_state stream;
 
-  glong serialno;
+  guint32 serialno;
   GList *headers;
   gboolean have_headers;
   GList *queued;
@@ -60,6 +60,7 @@ struct _GstOggStream
   gboolean have_fisbone;
   gint granulerate_n;
   gint granulerate_d;
+  gint64 granule_offset;
   guint32 preroll;
   guint granuleshift;
   gint n_header_packets;
@@ -73,6 +74,8 @@ struct _GstOggStream
   GstCaps *caps;
 
   gboolean is_video;
+  gboolean always_flush_page;
+
   /* vorbis stuff */
   int nln_increments[4];
   int nsn_increment;
@@ -121,8 +124,10 @@ GstClockTime gst_ogg_stream_get_packet_start_time (GstOggStream *pad,
 gboolean gst_ogg_stream_granulepos_is_key_frame (GstOggStream *pad,
     gint64 granulepos);
 gboolean gst_ogg_stream_packet_is_header (GstOggStream *pad, ogg_packet *packet);
+gboolean gst_ogg_stream_packet_is_key_frame (GstOggStream *pad, ogg_packet *packet);
 gint64 gst_ogg_stream_get_packet_duration (GstOggStream * pad, ogg_packet *packet);
 void gst_ogg_stream_extract_tags (GstOggStream * pad, ogg_packet * packet);
+const char *gst_ogg_stream_get_media_type (GstOggStream * pad);
 
 gboolean gst_ogg_map_parse_fisbone (GstOggStream * pad, const guint8 * data, guint size,
     guint32 * serialno, GstOggSkeleton *type);
index 6b054a2..e68d5c2 100644 (file)
@@ -279,8 +279,8 @@ gst_ogm_audio_parse_base_init (GstOgmParseClass * klass)
       "parse an OGM audio header and stream",
       "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory_audio));
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_factory_audio);
   audio_src_templ = gst_pad_template_new ("src",
       GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
   gst_element_class_add_pad_template (element_class, audio_src_templ);
@@ -297,8 +297,8 @@ gst_ogm_video_parse_base_init (GstOgmParseClass * klass)
       "parse an OGM video header and stream",
       "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory_video));
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_factory_video);
   video_src_templ = gst_pad_template_new ("src",
       GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
   gst_element_class_add_pad_template (element_class, video_src_templ);
index 2ffea22..55aa3a0 100644 (file)
@@ -19,7 +19,6 @@ libgstpango_la_CFLAGS = \
        $(GST_CFLAGS) \
        $(PANGO_CFLAGS)
 libgstpango_la_LIBADD = \
-       $(GST_PLUGINS_BASE_LIBS) \
        $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_MAJORMINOR).la \
        $(GST_BASE_LIBS) \
        $(GST_CONTROLLER_LIBS) \
index b0ef89b..f7ff7ae 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -113,8 +120,8 @@ am_libgstpango_la_OBJECTS = libgstpango_la-gstclockoverlay.lo \
        libgstpango_la-gsttextrender.lo \
        libgstpango_la-gsttimeoverlay.lo
 libgstpango_la_OBJECTS = $(am_libgstpango_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstpango_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -130,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstpango_la_SOURCES)
 DIST_SOURCES = $(libgstpango_la_SOURCES)
@@ -212,6 +219,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -272,6 +280,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -281,9 +290,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -306,6 +318,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -378,10 +391,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -415,7 +431,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -457,7 +472,6 @@ libgstpango_la_CFLAGS = \
        $(PANGO_CFLAGS)
 
 libgstpango_la_LIBADD = \
-       $(GST_PLUGINS_BASE_LIBS) \
        $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_MAJORMINOR).la \
        $(GST_BASE_LIBS) \
        $(GST_CONTROLLER_LIBS) \
@@ -531,7 +545,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstpango.la: $(libgstpango_la_OBJECTS) $(libgstpango_la_DEPENDENCIES) 
+libgstpango.la: $(libgstpango_la_OBJECTS) $(libgstpango_la_DEPENDENCIES) $(EXTRA_libgstpango_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstpango_la_LINK) -rpath $(plugindir) $(libgstpango_la_OBJECTS) $(libgstpango_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -548,58 +562,51 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstpango_la-gstclockoverlay.lo: gstclockoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gstclockoverlay.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gstclockoverlay.Tpo -c -o libgstpango_la-gstclockoverlay.lo `test -f 'gstclockoverlay.c' || echo '$(srcdir)/'`gstclockoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gstclockoverlay.Tpo $(DEPDIR)/libgstpango_la-gstclockoverlay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstclockoverlay.c' object='libgstpango_la-gstclockoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstclockoverlay.c' object='libgstpango_la-gstclockoverlay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gstclockoverlay.lo `test -f 'gstclockoverlay.c' || echo '$(srcdir)/'`gstclockoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gstclockoverlay.lo `test -f 'gstclockoverlay.c' || echo '$(srcdir)/'`gstclockoverlay.c
 
 libgstpango_la-gsttextoverlay.lo: gsttextoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gsttextoverlay.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gsttextoverlay.Tpo -c -o libgstpango_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gsttextoverlay.Tpo $(DEPDIR)/libgstpango_la-gsttextoverlay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttextoverlay.c' object='libgstpango_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttextoverlay.c' object='libgstpango_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c
 
 libgstpango_la-gsttextrender.lo: gsttextrender.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gsttextrender.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gsttextrender.Tpo -c -o libgstpango_la-gsttextrender.lo `test -f 'gsttextrender.c' || echo '$(srcdir)/'`gsttextrender.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gsttextrender.Tpo $(DEPDIR)/libgstpango_la-gsttextrender.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttextrender.c' object='libgstpango_la-gsttextrender.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttextrender.c' object='libgstpango_la-gsttextrender.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextrender.lo `test -f 'gsttextrender.c' || echo '$(srcdir)/'`gsttextrender.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextrender.lo `test -f 'gsttextrender.c' || echo '$(srcdir)/'`gsttextrender.c
 
 libgstpango_la-gsttimeoverlay.lo: gsttimeoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gsttimeoverlay.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gsttimeoverlay.Tpo -c -o libgstpango_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gsttimeoverlay.Tpo $(DEPDIR)/libgstpango_la-gsttimeoverlay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttimeoverlay.c' object='libgstpango_la-gsttimeoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttimeoverlay.c' object='libgstpango_la-gsttimeoverlay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -706,10 +713,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index d90cff1..24a8238 100644 (file)
@@ -46,7 +46,7 @@
 #include "config.h"
 #endif
 
-#include <gstclockoverlay.h>
+#include "gstclockoverlay.h"
 #include <gst/video/video.h>
 #include <time.h>
 
index d4775ca..a92659f 100644 (file)
  * Uh? What are you talking about?
  * I don&apos;t understand  (18-62s)
  * ]|
+ * One can also feed arbitrary live text into the element:
+ * |[
+ * gst-launch fdsrc fd=0 ! text/plain ! txt. videotestsrc ! \
+ * textoverlay  name=txt shaded-background=yes font-desc="Serif 40" wait-text=false ! \
+ * xvimagesink
+ * ]| This shows new text as entered on the terminal (stdin). This is not suited
+ * for subtitles as the test overlay is not timed. Subtitles should use
+ * timestamped formats. For the above use case one can also read the text from
+ * the application as set the #GstTextOverlay:text property.
  * </para>
  * </refsect2>
  */
@@ -83,6 +92,8 @@
 #include "gsttextrender.h"
 #include <string.h>
 
+#include "gst/glib-compat-private.h"
+
 /* FIXME:
  *  - use proper strides and offset for I420
  *  - if text is wider than the video picture, it does not get
@@ -95,6 +106,7 @@ GST_DEBUG_CATEGORY (pango_debug);
 
 #define DEFAULT_PROP_TEXT      ""
 #define DEFAULT_PROP_SHADING   FALSE
+#define DEFAULT_PROP_SHADOW    TRUE
 #define DEFAULT_PROP_VALIGNMENT        GST_TEXT_OVERLAY_VALIGN_BASELINE
 #define DEFAULT_PROP_HALIGNMENT        GST_TEXT_OVERLAY_HALIGN_CENTER
 #define DEFAULT_PROP_VALIGN    "baseline"
@@ -113,6 +125,7 @@ GST_DEBUG_CATEGORY (pango_debug);
 #define DEFAULT_PROP_AUTO_ADJUST_SIZE TRUE
 #define DEFAULT_PROP_VERTICAL_RENDER  FALSE
 #define DEFAULT_PROP_COLOR      0xffffffff
+#define DEFAULT_PROP_OUTLINE_COLOR 0xff000000
 
 /* make a property of me */
 #define DEFAULT_SHADING_VALUE    -80
@@ -120,36 +133,6 @@ GST_DEBUG_CATEGORY (pango_debug);
 #define MINIMUM_OUTLINE_OFFSET 1.0
 #define DEFAULT_SCALE_BASIS    640
 
-#define COMP_Y(ret, r, g, b) \
-{ \
-   ret = (int) (((19595 * r) >> 16) + ((38470 * g) >> 16) + ((7471 * b) >> 16)); \
-   ret = CLAMP (ret, 0, 255); \
-}
-
-#define COMP_U(ret, r, g, b) \
-{ \
-   ret = (int) (-((11059 * r) >> 16) - ((21709 * g) >> 16) + ((32768 * b) >> 16) + 128); \
-   ret = CLAMP (ret, 0, 255); \
-}
-
-#define COMP_V(ret, r, g, b) \
-{ \
-   ret = (int) (((32768 * r) >> 16) - ((27439 * g) >> 16) - ((5329 * b) >> 16) + 128); \
-   ret = CLAMP (ret, 0, 255); \
-}
-
-#define BLEND(ret, alpha, v0, v1) \
-{ \
-       ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \
-}
-
-#define OVER(ret, alphaA, Ca, alphaB, Cb, alphaNew)    \
-{ \
-    gint _tmp; \
-    _tmp = (Ca * alphaA + Cb * alphaB * (255 - alphaA) / 255) / alphaNew; \
-    ret = CLAMP (_tmp, 0, 255); \
-}
-
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 # define CAIRO_ARGB_A 3
 # define CAIRO_ARGB_R 2
@@ -185,14 +168,19 @@ enum
   PROP_AUTO_ADJUST_SIZE,
   PROP_VERTICAL_RENDER,
   PROP_COLOR,
+  PROP_SHADOW,
+  PROP_OUTLINE_COLOR,
   PROP_LAST
 };
 
+/* FIXME Use GST_VIDEO_CAPS_SURFACE when it lands in base */
 static GstStaticPadTemplate src_template_factory =
     GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
+        GST_VIDEO_CAPS_RGB ";"
+        GST_VIDEO_CAPS_BGR ";"
         GST_VIDEO_CAPS_RGBx ";"
         GST_VIDEO_CAPS_xRGB ";"
         GST_VIDEO_CAPS_xBGR ";"
@@ -200,7 +188,10 @@ static GstStaticPadTemplate src_template_factory =
         GST_VIDEO_CAPS_BGRA ";"
         GST_VIDEO_CAPS_ARGB ";"
         GST_VIDEO_CAPS_ABGR ";"
-        GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
+        "video/x-surface;"
+        GST_VIDEO_CAPS_YUV ("{I420, YV12, AYUV, YUY2, UYVY, v308, v210,"
+            " v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420,"
+            " YUV9, IYU1}"))
     );
 
 static GstStaticPadTemplate video_sink_template_factory =
@@ -208,6 +199,8 @@ static GstStaticPadTemplate video_sink_template_factory =
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
+        GST_VIDEO_CAPS_RGB ";"
+        GST_VIDEO_CAPS_BGR ";"
         GST_VIDEO_CAPS_RGBx ";"
         GST_VIDEO_CAPS_xRGB ";"
         GST_VIDEO_CAPS_xBGR ";"
@@ -215,7 +208,10 @@ static GstStaticPadTemplate video_sink_template_factory =
         GST_VIDEO_CAPS_BGRA ";"
         GST_VIDEO_CAPS_ARGB ";"
         GST_VIDEO_CAPS_ABGR ";"
-        GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
+        "video/x-surface;"
+        GST_VIDEO_CAPS_YUV ("{I420, YV12, AYUV, YUY2, UYVY, v308, v210,"
+            " v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420,"
+            " YUV9, IYU1}"))
     );
 
 static GstStaticPadTemplate text_sink_template_factory =
@@ -355,16 +351,16 @@ gst_text_overlay_base_init (gpointer g_class)
   GstTextOverlayClass *klass = GST_TEXT_OVERLAY_CLASS (g_class);
   PangoFontMap *fontmap;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &src_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &video_sink_template_factory);
 
   /* ugh */
   if (!GST_IS_TIME_OVERLAY_CLASS (g_class) &&
       !GST_IS_CLOCK_OVERLAY_CLASS (g_class)) {
-    gst_element_class_add_pad_template (element_class,
-        gst_static_pad_template_get (&text_sink_template_factory));
+    gst_element_class_add_static_pad_template (element_class,
+        &text_sink_template_factory);
   }
 
   gst_element_class_set_details_simple (element_class, "Text overlay",
@@ -418,6 +414,17 @@ gst_text_overlay_class_init (GstTextOverlayClass * klass)
       g_param_spec_boolean ("shaded-background", "shaded background",
           "Whether to shade the background under the text area",
           DEFAULT_PROP_SHADING, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstTextOverlay:shadow
+   *
+   * Whether to display a shadow of each letter under the text.
+   *
+   * Since: 0.10.36
+   **/
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SHADOW,
+      g_param_spec_boolean ("shadow", "create shadow of text",
+          "Whether to create a shadow of the letters under the text",
+          DEFAULT_PROP_SHADOW, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VALIGNMENT,
       g_param_spec_enum ("valignment", "vertical alignment",
           "Vertical alignment of the text", GST_TYPE_TEXT_OVERLAY_VALIGN,
@@ -498,6 +505,18 @@ gst_text_overlay_class_init (GstTextOverlayClass * klass)
           "Color to use for text (big-endian ARGB).", 0, G_MAXUINT32,
           DEFAULT_PROP_COLOR,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstTextOverlay:outline-color
+   *
+   * Color of the outline of the rendered text.
+   *
+   * Since: 0.10.36
+   **/
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_OUTLINE_COLOR,
+      g_param_spec_uint ("outline-color", "Text Outline Color",
+          "Color to use for outline the text (big-endian ARGB).", 0,
+          G_MAXUINT32, DEFAULT_PROP_OUTLINE_COLOR,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstTextOverlay:line-alignment
@@ -558,8 +577,13 @@ gst_text_overlay_finalize (GObject * object)
 
   g_free (overlay->default_text);
 
+  if (overlay->composition) {
+    gst_video_overlay_composition_unref (overlay->composition);
+    overlay->composition = NULL;
+  }
+
   if (overlay->text_image) {
-    g_free (overlay->text_image);
+    gst_buffer_unref (overlay->text_image);
     overlay->text_image = NULL;
   }
 
@@ -643,6 +667,7 @@ gst_text_overlay_init (GstTextOverlay * overlay, GstTextOverlayClass * klass)
   gst_text_overlay_adjust_values_with_fontdesc (overlay, desc);
 
   overlay->color = DEFAULT_PROP_COLOR;
+  overlay->outline_color = DEFAULT_PROP_OUTLINE_COLOR;
   overlay->halign = DEFAULT_PROP_HALIGNMENT;
   overlay->valign = DEFAULT_PROP_VALIGNMENT;
   overlay->xpad = DEFAULT_PROP_XPAD;
@@ -655,6 +680,7 @@ gst_text_overlay_init (GstTextOverlay * overlay, GstTextOverlayClass * klass)
   overlay->wrap_mode = DEFAULT_PROP_WRAP_MODE;
 
   overlay->want_shading = DEFAULT_PROP_SHADING;
+  overlay->want_shadow = DEFAULT_PROP_SHADOW;
   overlay->shading_value = DEFAULT_SHADING_VALUE;
   overlay->silent = DEFAULT_PROP_SILENT;
   overlay->wait_text = DEFAULT_PROP_WAIT_TEXT;
@@ -662,7 +688,7 @@ gst_text_overlay_init (GstTextOverlay * overlay, GstTextOverlayClass * klass)
 
   overlay->default_text = g_strdup (DEFAULT_PROP_TEXT);
   overlay->need_render = TRUE;
-  overlay->text_image = NULL;
+  overlay->composition = NULL;
   overlay->use_vertical_render = DEFAULT_PROP_VERTICAL_RENDER;
   gst_text_overlay_update_render_mode (overlay);
 
@@ -728,6 +754,8 @@ gst_text_overlay_setcaps_txt (GstPad * pad, GstCaps * caps)
   GstStructure *structure;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay))
+    return FALSE;
 
   structure = gst_caps_get_structure (caps, 0);
   overlay->have_pango_markup =
@@ -754,6 +782,8 @@ gst_text_overlay_setcaps (GstPad * pad, GstCaps * caps)
   g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay))
+    return FALSE;
 
   overlay->width = 0;
   overlay->height = 0;
@@ -770,8 +800,20 @@ gst_text_overlay_setcaps (GstPad * pad, GstCaps * caps)
   overlay->fps_d = gst_value_get_fraction_denominator (fps);
 
   if (ret) {
+    GstStructure *structure;
+
     GST_OBJECT_LOCK (overlay);
     g_mutex_lock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+
+    /* FIXME Use the query to the sink to do that when implemented */
+    /* Update wether to attach composition to buffer or do the composition
+     * ourselves */
+    structure = gst_caps_get_structure (caps, 0);
+    if (gst_structure_has_name (structure, "video/x-surface"))
+      overlay->attach_compo_to_buffer = TRUE;
+    else
+      overlay->attach_compo_to_buffer = FALSE;
+
     gst_text_overlay_update_wrap_mode (overlay);
     g_mutex_unlock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
     GST_OBJECT_UNLOCK (overlay);
@@ -798,6 +840,9 @@ gst_text_overlay_set_property (GObject * object, guint prop_id,
     case PROP_SHADING:
       overlay->want_shading = g_value_get_boolean (value);
       break;
+    case PROP_SHADOW:
+      overlay->want_shadow = g_value_get_boolean (value);
+      break;
     case PROP_XPAD:
       overlay->xpad = g_value_get_int (value);
       break;
@@ -879,6 +924,9 @@ gst_text_overlay_set_property (GObject * object, guint prop_id,
     case PROP_COLOR:
       overlay->color = g_value_get_uint (value);
       break;
+    case PROP_OUTLINE_COLOR:
+      overlay->outline_color = g_value_get_uint (value);
+      break;
     case PROP_SILENT:
       overlay->silent = g_value_get_boolean (value);
       break;
@@ -926,6 +974,9 @@ gst_text_overlay_get_property (GObject * object, guint prop_id,
     case PROP_SHADING:
       g_value_set_boolean (value, overlay->want_shading);
       break;
+    case PROP_SHADOW:
+      g_value_set_boolean (value, overlay->want_shadow);
+      break;
     case PROP_XPAD:
       g_value_set_int (value, overlay->xpad);
       break;
@@ -971,6 +1022,9 @@ gst_text_overlay_get_property (GObject * object, guint prop_id,
     case PROP_COLOR:
       g_value_set_uint (value, overlay->color);
       break;
+    case PROP_OUTLINE_COLOR:
+      g_value_set_uint (value, overlay->outline_color);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -987,6 +1041,8 @@ gst_text_overlay_src_query (GstPad * pad, GstQuery * query)
   GstTextOverlay *overlay = NULL;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay))
+    return FALSE;
 
   ret = gst_pad_peer_query (overlay->video_sinkpad, query);
 
@@ -1002,6 +1058,10 @@ gst_text_overlay_src_event (GstPad * pad, GstEvent * event)
   GstTextOverlay *overlay = NULL;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay)) {
+    gst_event_unref (event);
+    return FALSE;
+  }
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:{
@@ -1064,6 +1124,8 @@ gst_text_overlay_getcaps (GstPad * pad)
   GstCaps *caps;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay))
+    return gst_caps_copy (gst_pad_get_pad_template_caps (pad));
 
   if (pad == overlay->srcpad)
     otherpad = overlay->video_sinkpad;
@@ -1110,158 +1172,115 @@ gst_text_overlay_adjust_values_with_fontdesc (GstTextOverlay * overlay,
 }
 
 #define CAIRO_UNPREMULTIPLY(a,r,g,b) G_STMT_START { \
-  b = (a > 0) ? MIN ((b * 255 + a / 2) / a, 255) : 0; \
-  g = (a > 0) ? MIN ((g * 255 + a / 2) / a, 255) : 0; \
-  r = (a > 0) ? MIN ((r * 255 + a / 2) / a, 255) : 0; \
+  *b = (a > 0) ? MIN ((*b * 255 + a / 2) / a, 255) : 0; \
+  *g = (a > 0) ? MIN ((*g * 255 + a / 2) / a, 255) : 0; \
+  *r = (a > 0) ? MIN ((*r * 255 + a / 2) / a, 255) : 0; \
 } G_STMT_END
 
-static inline void
-gst_text_overlay_blit_1 (GstTextOverlay * overlay, guchar * dest, gint xpos,
-    gint ypos, guchar * text_image, guint dest_stride)
+static void
+gst_text_overlay_get_pos (GstTextOverlay * overlay, gint * xpos, gint * ypos)
 {
-  gint i, j = 0;
-  gint x, y;
-  guchar r, g, b, a;
-  guchar *pimage;
-  guchar *py;
-  gint width = overlay->image_width;
-  gint height = overlay->image_height;
-
-  if (xpos < 0) {
-    xpos = 0;
-  }
+  gint width, height;
+  GstTextOverlayVAlign valign;
+  GstTextOverlayHAlign halign;
+
+  width = overlay->image_width;
+  height = overlay->image_height;
+
+  if (overlay->use_vertical_render)
+    halign = GST_TEXT_OVERLAY_HALIGN_RIGHT;
+  else
+    halign = overlay->halign;
 
-  if (xpos + width > overlay->width) {
-    width = overlay->width - xpos;
+  switch (halign) {
+    case GST_TEXT_OVERLAY_HALIGN_LEFT:
+      *xpos = overlay->xpad;
+      break;
+    case GST_TEXT_OVERLAY_HALIGN_CENTER:
+      *xpos = (overlay->width - width) / 2;
+      break;
+    case GST_TEXT_OVERLAY_HALIGN_RIGHT:
+      *xpos = overlay->width - width - overlay->xpad;
+      break;
+    case GST_TEXT_OVERLAY_HALIGN_POS:
+      *xpos = (gint) (overlay->width * overlay->xpos) - width / 2;
+      *xpos = CLAMP (*xpos, 0, overlay->width - width);
+      if (*xpos < 0)
+        *xpos = 0;
+      break;
+    default:
+      *xpos = 0;
   }
+  *xpos += overlay->deltax;
 
-  if (ypos + height > overlay->height) {
-    height = overlay->height - ypos;
+  if (overlay->use_vertical_render)
+    valign = GST_TEXT_OVERLAY_VALIGN_TOP;
+  else
+    valign = overlay->valign;
+
+  switch (valign) {
+    case GST_TEXT_OVERLAY_VALIGN_BOTTOM:
+      *ypos = overlay->height - height - overlay->ypad;
+      break;
+    case GST_TEXT_OVERLAY_VALIGN_BASELINE:
+      *ypos = overlay->height - (height + overlay->ypad);
+      break;
+    case GST_TEXT_OVERLAY_VALIGN_TOP:
+      *ypos = overlay->ypad;
+      break;
+    case GST_TEXT_OVERLAY_VALIGN_POS:
+      *ypos = (gint) (overlay->height * overlay->ypos) - height / 2;
+      *ypos = CLAMP (*ypos, 0, overlay->height - height);
+      break;
+    case GST_TEXT_OVERLAY_VALIGN_CENTER:
+      *ypos = (overlay->height - height) / 2;
+      break;
+    default:
+      *ypos = overlay->ypad;
+      break;
   }
+  *ypos += overlay->deltay;
+}
 
-  dest += (ypos / 1) * dest_stride;
+static inline void
+gst_text_overlay_unpremultiply (GstTextOverlay * overlay)
+{
+  guint i, j;
+  guint8 *pimage, *text_image = GST_BUFFER_DATA (overlay->text_image);
 
-  for (i = 0; i < height; i++) {
+  for (i = 0; i < overlay->image_height; i++) {
     pimage = text_image + 4 * (i * overlay->image_width);
-    py = dest + i * dest_stride + xpos;
-    for (j = 0; j < width; j++) {
-      b = pimage[CAIRO_ARGB_B];
-      g = pimage[CAIRO_ARGB_G];
-      r = pimage[CAIRO_ARGB_R];
-      a = pimage[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a, r, g, b);
+    for (j = 0; j < overlay->image_width; j++) {
+      CAIRO_UNPREMULTIPLY (pimage[CAIRO_ARGB_A], &pimage[CAIRO_ARGB_R],
+          &pimage[CAIRO_ARGB_G], &pimage[CAIRO_ARGB_B]);
 
       pimage += 4;
-      if (a == 0) {
-        py++;
-        continue;
-      }
-      COMP_Y (y, r, g, b);
-      x = *py;
-      BLEND (*py++, a, y, x);
     }
   }
 }
 
 static inline void
-gst_text_overlay_blit_sub2x2cbcr (GstTextOverlay * overlay,
-    guchar * destcb, guchar * destcr, gint xpos, gint ypos, guchar * text_image,
-    guint destcb_stride, guint destcr_stride, guint pix_stride)
+gst_text_overlay_set_composition (GstTextOverlay * overlay)
 {
-  gint i, j;
-  gint x, cb, cr;
-  gushort r, g, b, a;
-  gushort r1, g1, b1, a1;
-  guchar *pimage1, *pimage2;
-  guchar *pcb, *pcr;
-  gint width = overlay->image_width - 2;
-  gint height = overlay->image_height - 2;
-
-  xpos *= pix_stride;
-
-  if (xpos < 0) {
-    xpos = 0;
-  }
-
-  if (xpos + width > overlay->width) {
-    width = overlay->width - xpos;
-  }
+  gint xpos, ypos;
+  GstVideoOverlayRectangle *rectangle;
 
-  if (ypos + height > overlay->height) {
-    height = overlay->height - ypos;
-  }
+  gst_text_overlay_get_pos (overlay, &xpos, &ypos);
 
-  destcb += (ypos / 2) * destcb_stride;
-  destcr += (ypos / 2) * destcr_stride;
-
-  for (i = 0; i < height; i += 2) {
-    pimage1 = text_image + 4 * (i * overlay->image_width);
-    pimage2 = pimage1 + 4 * overlay->image_width;
-    pcb = destcb + (i / 2) * destcb_stride + xpos / 2;
-    pcr = destcr + (i / 2) * destcr_stride + xpos / 2;
-    for (j = 0; j < width; j += 2) {
-      b = pimage1[CAIRO_ARGB_B];
-      g = pimage1[CAIRO_ARGB_G];
-      r = pimage1[CAIRO_ARGB_R];
-      a = pimage1[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a, r, g, b);
-      pimage1 += 4;
-
-      b1 = pimage1[CAIRO_ARGB_B];
-      g1 = pimage1[CAIRO_ARGB_G];
-      r1 = pimage1[CAIRO_ARGB_R];
-      a1 = pimage1[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
-      b += b1;
-      g += g1;
-      r += r1;
-      a += a1;
-      pimage1 += 4;
-
-      b1 = pimage2[CAIRO_ARGB_B];
-      g1 = pimage2[CAIRO_ARGB_G];
-      r1 = pimage2[CAIRO_ARGB_R];
-      a1 = pimage2[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
-      b += b1;
-      g += g1;
-      r += r1;
-      a += a1;
-      pimage2 += 4;
-
-      /* + 2 for rounding */
-      b1 = pimage2[CAIRO_ARGB_B];
-      g1 = pimage2[CAIRO_ARGB_G];
-      r1 = pimage2[CAIRO_ARGB_R];
-      a1 = pimage2[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
-      b += b1 + 2;
-      g += g1 + 2;
-      r += r1 + 2;
-      a += a1 + 2;
-      pimage2 += 4;
-
-      b /= 4;
-      g /= 4;
-      r /= 4;
-      a /= 4;
-
-      if (a == 0) {
-        pcb += pix_stride;
-        pcr += pix_stride;
-        continue;
-      }
-      COMP_U (cb, r, g, b);
-      COMP_V (cr, r, g, b);
+  if (overlay->text_image) {
+    rectangle = gst_video_overlay_rectangle_new_argb (overlay->text_image,
+        overlay->image_width, overlay->image_height, 4 * overlay->image_width,
+        xpos, ypos, overlay->image_width, overlay->image_height,
+        GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
 
-      x = *pcb;
-      BLEND (*pcb, a, cb, x);
-      x = *pcr;
-      BLEND (*pcr, a, cr, x);
+    if (overlay->composition)
+      gst_video_overlay_composition_unref (overlay->composition);
+    overlay->composition = gst_video_overlay_composition_new (rectangle);
+    gst_video_overlay_rectangle_unref (rectangle);
 
-      pcb += pix_stride;
-      pcr += pix_stride;
-    }
+  } else if (overlay->composition) {
+    gst_video_overlay_composition_unref (overlay->composition);
+    overlay->composition = NULL;
   }
 }
 
@@ -1276,7 +1295,8 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
   int width, height;
   double scalef = 1.0;
   double a, r, g, b;
-
+  GstBuffer *buffer;
+  guint8 *text_image;
   g_mutex_lock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
 
   if (overlay->auto_adjust_size) {
@@ -1342,10 +1362,13 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
     cairo_matrix_init_scale (&cairo_matrix, scalef, scalef);
   }
 
-  /* reallocate surface */
-  overlay->text_image = g_realloc (overlay->text_image, 4 * width * height);
+  /* reallocate overlay buffer */
+  buffer = gst_buffer_new_and_alloc (4 * width * height);
+  gst_buffer_replace (&overlay->text_image, buffer);
+  text_image = GST_BUFFER_DATA (buffer);
+  gst_buffer_unref (buffer);
 
-  surface = cairo_image_surface_create_for_data (overlay->text_image,
+  surface = cairo_image_surface_create_for_data (text_image,
       CAIRO_FORMAT_ARGB32, width, height, width * 4);
   cr = cairo_create (surface);
 
@@ -1374,15 +1397,22 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
    */
 
   /* draw shadow text */
-  cairo_save (cr);
-  cairo_translate (cr, overlay->shadow_offset, overlay->shadow_offset);
-  cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
-  pango_cairo_show_layout (cr, overlay->layout);
-  cairo_restore (cr);
+  if (overlay->want_shadow) {
+    cairo_save (cr);
+    cairo_translate (cr, overlay->shadow_offset, overlay->shadow_offset);
+    cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
+    pango_cairo_show_layout (cr, overlay->layout);
+    cairo_restore (cr);
+  }
+
+  a = (overlay->outline_color >> 24) & 0xff;
+  r = (overlay->outline_color >> 16) & 0xff;
+  g = (overlay->outline_color >> 8) & 0xff;
+  b = (overlay->outline_color >> 0) & 0xff;
 
   /* draw outline text */
   cairo_save (cr);
-  cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
+  cairo_set_source_rgba (cr, r / 255.0, g / 255.0, b / 255.0, a / 255.0);
   cairo_set_line_width (cr, overlay->outline_offset);
   pango_cairo_layout_path (cr, overlay->layout);
   cairo_stroke (cr);
@@ -1406,6 +1436,11 @@ gst_text_overlay_render_pangocairo (GstTextOverlay * overlay,
   overlay->baseline_y = ink_rect.y;
 
   g_mutex_unlock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+
+  /* As the GstVideoOverlayComposition supports only unpremultiply ARGB,
+   * we need to unpermultiply it */
+  gst_text_overlay_unpremultiply (overlay);
+  gst_text_overlay_set_composition (overlay);
 }
 
 #define BOX_XPAD         6
@@ -1536,309 +1571,6 @@ ARGB_SHADE_FUNCTION (RGBA, 0);
 ARGB_SHADE_FUNCTION (BGRA, 0);
 
 
-/* FIXME:
- *  - use proper strides and offset for I420
- *  - don't draw over the edge of the picture (try a longer
- *    text with a huge font size)
- */
-
-static inline void
-gst_text_overlay_blit_NV12_NV21 (GstTextOverlay * overlay,
-    guint8 * yuv_pixels, gint xpos, gint ypos)
-{
-  int y_stride, uv_stride;
-  int u_offset, v_offset;
-  int h, w;
-
-  /* because U/V is 2x2 subsampled, we need to round, either up or down,
-   * to a boundary of integer number of U/V pixels:
-   */
-  xpos = GST_ROUND_UP_2 (xpos);
-  ypos = GST_ROUND_UP_2 (ypos);
-
-  w = overlay->width;
-  h = overlay->height;
-
-  y_stride = gst_video_format_get_row_stride (overlay->format, 0, w);
-  uv_stride = gst_video_format_get_row_stride (overlay->format, 1, w);
-  u_offset = gst_video_format_get_component_offset (overlay->format, 1, w, h);
-  v_offset = gst_video_format_get_component_offset (overlay->format, 2, w, h);
-
-  gst_text_overlay_blit_1 (overlay, yuv_pixels, xpos, ypos, overlay->text_image,
-      y_stride);
-  gst_text_overlay_blit_sub2x2cbcr (overlay, yuv_pixels + u_offset,
-      yuv_pixels + v_offset, xpos, ypos, overlay->text_image, uv_stride,
-      uv_stride, 2);
-}
-
-static inline void
-gst_text_overlay_blit_I420 (GstTextOverlay * overlay,
-    guint8 * yuv_pixels, gint xpos, gint ypos)
-{
-  int y_stride, u_stride, v_stride;
-  int u_offset, v_offset;
-  int h, w;
-
-  /* because U/V is 2x2 subsampled, we need to round, either up or down,
-   * to a boundary of integer number of U/V pixels:
-   */
-  xpos = GST_ROUND_UP_2 (xpos);
-  ypos = GST_ROUND_UP_2 (ypos);
-
-  w = overlay->width;
-  h = overlay->height;
-
-  y_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 0, w);
-  u_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 1, w);
-  v_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 2, w);
-  u_offset =
-      gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 1, w, h);
-  v_offset =
-      gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 2, w, h);
-
-  gst_text_overlay_blit_1 (overlay, yuv_pixels, xpos, ypos, overlay->text_image,
-      y_stride);
-  gst_text_overlay_blit_sub2x2cbcr (overlay, yuv_pixels + u_offset,
-      yuv_pixels + v_offset, xpos, ypos, overlay->text_image, u_stride,
-      v_stride, 1);
-}
-
-static inline void
-gst_text_overlay_blit_UYVY (GstTextOverlay * overlay,
-    guint8 * yuv_pixels, gint xpos, gint ypos)
-{
-  int a0, r0, g0, b0;
-  int a1, r1, g1, b1;
-  int y0, y1, u, v;
-  int i, j;
-  int h, w;
-  guchar *pimage, *dest;
-
-  /* because U/V is 2x horizontally subsampled, we need to round to a
-   * boundary of integer number of U/V pixels in x dimension:
-   */
-  xpos = GST_ROUND_UP_2 (xpos);
-
-  w = overlay->image_width - 2;
-  h = overlay->image_height - 2;
-
-  if (xpos < 0) {
-    xpos = 0;
-  }
-
-  if (xpos + w > overlay->width) {
-    w = overlay->width - xpos;
-  }
-
-  if (ypos + h > overlay->height) {
-    h = overlay->height - ypos;
-  }
-
-  for (i = 0; i < h; i++) {
-    pimage = overlay->text_image + i * overlay->image_width * 4;
-    dest = yuv_pixels + (i + ypos) * overlay->width * 2 + xpos * 2;
-    for (j = 0; j < w; j += 2) {
-      b0 = pimage[CAIRO_ARGB_B];
-      g0 = pimage[CAIRO_ARGB_G];
-      r0 = pimage[CAIRO_ARGB_R];
-      a0 = pimage[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a0, r0, g0, b0);
-      pimage += 4;
-
-      b1 = pimage[CAIRO_ARGB_B];
-      g1 = pimage[CAIRO_ARGB_G];
-      r1 = pimage[CAIRO_ARGB_R];
-      a1 = pimage[CAIRO_ARGB_A];
-      CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
-      pimage += 4;
-
-      a0 += a1 + 2;
-      a0 /= 2;
-      if (a0 == 0) {
-        dest += 4;
-        continue;
-      }
-
-      COMP_Y (y0, r0, g0, b0);
-      COMP_Y (y1, r1, g1, b1);
-
-      b0 += b1 + 2;
-      g0 += g1 + 2;
-      r0 += r1 + 2;
-
-      b0 /= 2;
-      g0 /= 2;
-      r0 /= 2;
-
-      COMP_U (u, r0, g0, b0);
-      COMP_V (v, r0, g0, b0);
-
-      BLEND (*dest, a0, u, *dest);
-      dest++;
-      BLEND (*dest, a0, y0, *dest);
-      dest++;
-      BLEND (*dest, a0, v, *dest);
-      dest++;
-      BLEND (*dest, a0, y1, *dest);
-      dest++;
-    }
-  }
-}
-
-static inline void
-gst_text_overlay_blit_AYUV (GstTextOverlay * overlay,
-    guint8 * rgb_pixels, gint xpos, gint ypos)
-{
-  int a, r, g, b, a1;
-  int y, u, v;
-  int i, j;
-  int h, w;
-  guchar *pimage, *dest;
-
-  w = overlay->image_width;
-  h = overlay->image_height;
-
-  if (xpos < 0) {
-    xpos = 0;
-  }
-
-  if (xpos + w > overlay->width) {
-    w = overlay->width - xpos;
-  }
-
-  if (ypos + h > overlay->height) {
-    h = overlay->height - ypos;
-  }
-
-  for (i = 0; i < h; i++) {
-    pimage = overlay->text_image + i * overlay->image_width * 4;
-    dest = rgb_pixels + (i + ypos) * 4 * overlay->width + xpos * 4;
-    for (j = 0; j < w; j++) {
-      a = pimage[CAIRO_ARGB_A];
-      b = pimage[CAIRO_ARGB_B];
-      g = pimage[CAIRO_ARGB_G];
-      r = pimage[CAIRO_ARGB_R];
-
-      CAIRO_UNPREMULTIPLY (a, r, g, b);
-
-      // convert background to yuv
-      COMP_Y (y, r, g, b);
-      COMP_U (u, r, g, b);
-      COMP_V (v, r, g, b);
-
-      // preform text "OVER" background alpha compositing
-      a1 = a + (dest[0] * (255 - a)) / 255 + 1; // add 1 to prevent divide by 0
-      OVER (dest[1], a, y, dest[0], dest[1], a1);
-      OVER (dest[2], a, u, dest[0], dest[2], a1);
-      OVER (dest[3], a, v, dest[0], dest[3], a1);
-      dest[0] = a1 - 1;         // remove the temporary 1 we added
-
-      pimage += 4;
-      dest += 4;
-    }
-  }
-}
-
-#define xRGB_BLIT_FUNCTION(name, R, G, B) \
-static inline void \
-gst_text_overlay_blit_##name (GstTextOverlay * overlay, \
-    guint8 * rgb_pixels, gint xpos, gint ypos) \
-{ \
-  int a, r, g, b; \
-  int i, j; \
-  int h, w; \
-  guchar *pimage, *dest; \
-  \
-  w = overlay->image_width; \
-  h = overlay->image_height; \
-  \
-  if (xpos < 0) { \
-    xpos = 0; \
-  } \
-  \
-  if (xpos + w > overlay->width) { \
-    w = overlay->width - xpos; \
-  } \
-  \
-  if (ypos + h > overlay->height) { \
-    h = overlay->height - ypos; \
-  } \
-  \
-  for (i = 0; i < h; i++) { \
-    pimage = overlay->text_image + i * overlay->image_width * 4; \
-    dest = rgb_pixels + (i + ypos) * 4 * overlay->width + xpos * 4; \
-    for (j = 0; j < w; j++) { \
-      a = pimage[CAIRO_ARGB_A]; \
-      b = pimage[CAIRO_ARGB_B]; \
-      g = pimage[CAIRO_ARGB_G]; \
-      r = pimage[CAIRO_ARGB_R]; \
-      CAIRO_UNPREMULTIPLY (a, r, g, b); \
-      b = (b*a + dest[B] * (255-a)) / 255; \
-      g = (g*a + dest[G] * (255-a)) / 255; \
-      r = (r*a + dest[R] * (255-a)) / 255; \
-      \
-      dest[B] = b; \
-      dest[G] = g; \
-      dest[R] = r; \
-      pimage += 4; \
-      dest += 4; \
-    } \
-  } \
-}
-xRGB_BLIT_FUNCTION (xRGB, 1, 2, 3);
-xRGB_BLIT_FUNCTION (BGRx, 2, 1, 0);
-xRGB_BLIT_FUNCTION (xBGR, 3, 2, 1);
-xRGB_BLIT_FUNCTION (RGBx, 0, 1, 2);
-
-#define ARGB_BLIT_FUNCTION(name, A, R, G, B)   \
-static inline void \
-gst_text_overlay_blit_##name (GstTextOverlay * overlay, \
-    guint8 * rgb_pixels, gint xpos, gint ypos) \
-{ \
-  int a, r, g, b, a1;                          \
-  int i, j; \
-  int h, w; \
-  guchar *pimage, *dest; \
-  \
-  w = overlay->image_width; \
-  h = overlay->image_height; \
-  \
-  if (xpos < 0) { \
-    xpos = 0; \
-  } \
-  \
-  if (xpos + w > overlay->width) { \
-    w = overlay->width - xpos; \
-  } \
-  \
-  if (ypos + h > overlay->height) { \
-    h = overlay->height - ypos; \
-  } \
-  \
-  for (i = 0; i < h; i++) { \
-    pimage = overlay->text_image + i * overlay->image_width * 4; \
-    dest = rgb_pixels + (i + ypos) * 4 * overlay->width + xpos * 4; \
-    for (j = 0; j < w; j++) { \
-      a = pimage[CAIRO_ARGB_A]; \
-      b = pimage[CAIRO_ARGB_B]; \
-      g = pimage[CAIRO_ARGB_G]; \
-      r = pimage[CAIRO_ARGB_R]; \
-      CAIRO_UNPREMULTIPLY (a, r, g, b); \
-      a1 = a + (dest[A] * (255 - a)) / 255 + 1; \
-      OVER (dest[R], a, r, dest[0], dest[R], a1); \
-      OVER (dest[G], a, g, dest[0], dest[G], a1); \
-      OVER (dest[B], a, b, dest[0], dest[B], a1); \
-      dest[A] = a1 - 1; \
-      pimage += 4; \
-      dest += 4; \
-    } \
-  } \
-}
-ARGB_BLIT_FUNCTION (RGBA, 3, 0, 1, 2);
-ARGB_BLIT_FUNCTION (BGRA, 3, 2, 1, 0);
-ARGB_BLIT_FUNCTION (ARGB, 0, 1, 2, 3);
-ARGB_BLIT_FUNCTION (ABGR, 0, 3, 2, 1);
-
 static void
 gst_text_overlay_render_text (GstTextOverlay * overlay,
     const gchar * text, gint textlen)
@@ -1877,73 +1609,15 @@ static GstFlowReturn
 gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
 {
   gint xpos, ypos;
-  gint width, height;
-  GstTextOverlayVAlign valign;
-  GstTextOverlayHAlign halign;
-
-  width = overlay->image_width;
-  height = overlay->image_height;
 
   video_frame = gst_buffer_make_writable (video_frame);
 
-  if (overlay->use_vertical_render)
-    halign = GST_TEXT_OVERLAY_HALIGN_RIGHT;
-  else
-    halign = overlay->halign;
-
-  switch (halign) {
-    case GST_TEXT_OVERLAY_HALIGN_LEFT:
-      xpos = overlay->xpad;
-      break;
-    case GST_TEXT_OVERLAY_HALIGN_CENTER:
-      xpos = (overlay->width - width) / 2;
-      break;
-    case GST_TEXT_OVERLAY_HALIGN_RIGHT:
-      xpos = overlay->width - width - overlay->xpad;
-      break;
-    case GST_TEXT_OVERLAY_HALIGN_POS:
-      xpos = (gint) (overlay->width * overlay->xpos) - width / 2;
-      xpos = CLAMP (xpos, 0, overlay->width - width);
-      if (xpos < 0)
-        xpos = 0;
-      break;
-    default:
-      xpos = 0;
-  }
-  xpos += overlay->deltax;
-
-  if (overlay->use_vertical_render)
-    valign = GST_TEXT_OVERLAY_VALIGN_TOP;
-  else
-    valign = overlay->valign;
-
-  switch (valign) {
-    case GST_TEXT_OVERLAY_VALIGN_BOTTOM:
-      ypos = overlay->height - height - overlay->ypad;
-      break;
-    case GST_TEXT_OVERLAY_VALIGN_BASELINE:
-      ypos = overlay->height - (height + overlay->ypad);
-      break;
-    case GST_TEXT_OVERLAY_VALIGN_TOP:
-      ypos = overlay->ypad;
-      break;
-    case GST_TEXT_OVERLAY_VALIGN_POS:
-      ypos = (gint) (overlay->height * overlay->ypos) - height / 2;
-      ypos = CLAMP (ypos, 0, overlay->height - height);
-      break;
-    case GST_TEXT_OVERLAY_VALIGN_CENTER:
-      ypos = (overlay->height - height) / 2;
-      break;
-    default:
-      ypos = overlay->ypad;
-      break;
-  }
-  ypos += overlay->deltay;
-
+  gst_text_overlay_get_pos (overlay, &xpos, &ypos);
   /* shaded background box */
   if (overlay->want_shading) {
     switch (overlay->format) {
       case GST_VIDEO_FORMAT_I420:
+      case GST_VIDEO_FORMAT_YV12:
       case GST_VIDEO_FORMAT_NV12:
       case GST_VIDEO_FORMAT_NV21:
         gst_text_overlay_shade_planar_Y (overlay,
@@ -2001,64 +1675,16 @@ gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
     }
   }
 
-  if (ypos < 0)
-    ypos = 0;
-
-  if (overlay->text_image) {
-    switch (overlay->format) {
-      case GST_VIDEO_FORMAT_I420:
-        gst_text_overlay_blit_I420 (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_NV12:
-      case GST_VIDEO_FORMAT_NV21:
-        gst_text_overlay_blit_NV12_NV21 (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_UYVY:
-        gst_text_overlay_blit_UYVY (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_AYUV:
-        gst_text_overlay_blit_AYUV (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_BGRx:
-        gst_text_overlay_blit_BGRx (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_xRGB:
-        gst_text_overlay_blit_xRGB (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_RGBx:
-        gst_text_overlay_blit_RGBx (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_xBGR:
-        gst_text_overlay_blit_xBGR (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_ARGB:
-        gst_text_overlay_blit_ARGB (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_ABGR:
-        gst_text_overlay_blit_ABGR (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_RGBA:
-        gst_text_overlay_blit_RGBA (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      case GST_VIDEO_FORMAT_BGRA:
-        gst_text_overlay_blit_BGRA (overlay,
-            GST_BUFFER_DATA (video_frame), xpos, ypos);
-        break;
-      default:
-        g_assert_not_reached ();
+  if (overlay->composition) {
+    if (overlay->attach_compo_to_buffer) {
+      GST_DEBUG_OBJECT (overlay, "Attaching text to the buffer");
+      gst_video_buffer_set_overlay_composition (video_frame,
+          overlay->composition);
+    } else {
+      gst_video_overlay_composition_blend (overlay->composition, video_frame);
     }
   }
+
   return gst_pad_push (overlay->srcpad, video_frame);
 }
 
@@ -2068,6 +1694,8 @@ gst_text_overlay_text_pad_link (GstPad * pad, GstPad * peer)
   GstTextOverlay *overlay;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay))
+    return GST_PAD_LINK_REFUSED;
 
   GST_DEBUG_OBJECT (overlay, "Text pad linked");
 
@@ -2100,6 +1728,10 @@ gst_text_overlay_text_event (GstPad * pad, GstEvent * event)
   GstTextOverlay *overlay = NULL;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay)) {
+    gst_event_unref (event);
+    return FALSE;
+  }
 
   GST_LOG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event));
 
@@ -2185,6 +1817,10 @@ gst_text_overlay_video_event (GstPad * pad, GstEvent * event)
   GstTextOverlay *overlay = NULL;
 
   overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (!overlay)) {
+    gst_event_unref (event);
+    return FALSE;
+  }
 
   GST_DEBUG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event));
 
@@ -2257,6 +1893,9 @@ gst_text_overlay_video_bufferalloc (GstPad * pad, guint64 offset, guint size,
   GstFlowReturn ret = GST_FLOW_WRONG_STATE;
   GstPad *allocpad;
 
+  if (G_UNLIKELY (!overlay))
+    return GST_FLOW_WRONG_STATE;
+
   GST_OBJECT_LOCK (overlay);
   allocpad = overlay->srcpad ? gst_object_ref (overlay->srcpad) : NULL;
   GST_OBJECT_UNLOCK (overlay);
@@ -2342,16 +1981,22 @@ gst_text_overlay_text_chain (GstPad * pad, GstBuffer * buffer)
     else if (GST_BUFFER_DURATION_IS_VALID (buffer))
       GST_BUFFER_DURATION (buffer) = clip_stop - clip_start;
 
-    /* Wait for the previous buffer to go away */
-    while (overlay->text_buffer != NULL) {
-      GST_DEBUG ("Pad %s:%s has a buffer queued, waiting",
-          GST_DEBUG_PAD_NAME (pad));
-      GST_TEXT_OVERLAY_WAIT (overlay);
-      GST_DEBUG ("Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad));
-      if (overlay->text_flushing) {
-        GST_OBJECT_UNLOCK (overlay);
-        ret = GST_FLOW_WRONG_STATE;
-        goto beach;
+    if (overlay->text_buffer
+        && (!GST_BUFFER_TIMESTAMP_IS_VALID (overlay->text_buffer)
+            || !GST_BUFFER_DURATION_IS_VALID (overlay->text_buffer))) {
+      gst_text_overlay_pop_text (overlay);
+    } else {
+      /* Wait for the previous buffer to go away */
+      while (overlay->text_buffer != NULL) {
+        GST_DEBUG ("Pad %s:%s has a buffer queued, waiting",
+            GST_DEBUG_PAD_NAME (pad));
+        GST_TEXT_OVERLAY_WAIT (overlay);
+        GST_DEBUG ("Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad));
+        if (overlay->text_flushing) {
+          GST_OBJECT_UNLOCK (overlay);
+          ret = GST_FLOW_WRONG_STATE;
+          goto beach;
+        }
       }
     }
 
@@ -2359,7 +2004,7 @@ gst_text_overlay_text_chain (GstPad * pad, GstBuffer * buffer)
       gst_segment_set_last_stop (&overlay->text_segment, GST_FORMAT_TIME,
           clip_start);
 
-    overlay->text_buffer = buffer;
+    overlay->text_buffer = gst_buffer_ref (buffer);
     /* That's a new text buffer we need to render */
     overlay->need_render = TRUE;
 
@@ -2371,6 +2016,7 @@ gst_text_overlay_text_chain (GstPad * pad, GstBuffer * buffer)
 
 beach:
 
+  gst_buffer_unref (buffer);
   return ret;
 }
 
@@ -2453,7 +2099,7 @@ wait_for_text_buf:
   if (overlay->video_eos)
     goto have_eos;
 
-  if (overlay->silent) {
+  if (overlay->silent && !overlay->text_linked) {
     GST_OBJECT_UNLOCK (overlay);
     ret = gst_pad_push (overlay->srcpad, buffer);
 
@@ -2500,7 +2146,6 @@ wait_for_text_buf:
           !GST_BUFFER_DURATION_IS_VALID (overlay->text_buffer)) {
         GST_WARNING_OBJECT (overlay,
             "Got text buffer with invalid timestamp or duration");
-        pop_text = TRUE;
         valid_text_time = FALSE;
       } else {
         text_start = GST_BUFFER_TIMESTAMP (overlay->text_buffer);
@@ -2544,6 +2189,11 @@ wait_for_text_buf:
         GST_OBJECT_UNLOCK (overlay);
         /* Push the video frame */
         ret = gst_pad_push (overlay->srcpad, buffer);
+      } else if (overlay->silent) {
+        GST_LOG_OBJECT (overlay, "silent enabled, pushing video buf");
+        GST_OBJECT_UNLOCK (overlay);
+        /* Push the video frame */
+        ret = gst_pad_push (overlay->srcpad, buffer);
       } else {
         gchar *in_text;
         gsize in_size;
index 5cd4260..d36e476 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <gst/gst.h>
 #include <gst/video/video.h>
+#include <gst/video/video-overlay-composition.h>
 #include <gst/controller/gstcontroller.h>
 #include <pango/pangocairo.h>
 
@@ -95,64 +96,69 @@ typedef enum {
  * Opaque textoverlay object structure
  */
 struct _GstTextOverlay {
-    GstElement               element;
-
-    GstPad                  *video_sinkpad;
-    GstPad                  *text_sinkpad;
-    GstPad                  *srcpad;
-
-    GstSegment               segment;
-    GstSegment               text_segment;
-    GstBuffer               *text_buffer;
-    gboolean                text_linked;
-    gboolean                video_flushing;
-    gboolean                video_eos;
-    gboolean                text_flushing;
-    gboolean                text_eos;
-
-    GCond                   *cond;  /* to signal removal of a queued text
+    GstElement                  element;
+
+    GstPad                     *video_sinkpad;
+    GstPad                     *text_sinkpad;
+    GstPad                     *srcpad;
+
+    GstSegment                  segment;
+    GstSegment                  text_segment;
+    GstBuffer                  *text_buffer;
+    gboolean                    text_linked;
+    gboolean                    video_flushing;
+    gboolean                    video_eos;
+    gboolean                    text_flushing;
+    gboolean                    text_eos;
+
+    GCond                      *cond;  /* to signal removal of a queued text
                                      * buffer, arrival of a text buffer,
                                      * a text segment update, or a change
                                      * in status (e.g. shutdown, flushing) */
 
-    gint                     width;
-    gint                     height;
-    gint                     fps_n;
-    gint                     fps_d;
-    GstVideoFormat           format;
-
-    GstTextOverlayVAlign     valign;
-    GstTextOverlayHAlign     halign;
-    GstTextOverlayWrapMode   wrap_mode;
-    GstTextOverlayLineAlign  line_align;
-
-    gint                     xpad;
-    gint                     ypad;
-    gint                     deltax;
-    gint                     deltay;
-    gdouble                  xpos;
-    gdouble                  ypos;
-    gchar                   *default_text;
-    gboolean                 want_shading;
-    gboolean                 silent;
-    gboolean                 wait_text;
-    guint                    color;
-
-    PangoLayout             *layout;
-    gdouble                  shadow_offset;
-    gdouble                  outline_offset;
-    guchar                  *text_image;
-    gint                     image_width;
-    gint                     image_height;
-    gint                     baseline_y;
-
-    gboolean                 auto_adjust_size;
-    gboolean                 need_render;
-
-    gint                     shading_value;  /* for timeoverlay subclass */
-
-    gboolean                 have_pango_markup;
-    gboolean                 use_vertical_render;
+    gint                        width;
+    gint                        height;
+    gint                        fps_n;
+    gint                        fps_d;
+    GstVideoFormat              format;
+
+    GstTextOverlayVAlign        valign;
+    GstTextOverlayHAlign        halign;
+    GstTextOverlayWrapMode      wrap_mode;
+    GstTextOverlayLineAlign     line_align;
+
+    gint                        xpad;
+    gint                        ypad;
+    gint                        deltax;
+    gint                        deltay;
+    gdouble                     xpos;
+    gdouble                     ypos;
+    gchar                      *default_text;
+    gboolean                    want_shading;
+    gboolean                    silent;
+    gboolean                    wait_text;
+    guint                       color, outline_color;
+
+    PangoLayout                *layout;
+    gdouble                     shadow_offset;
+    gboolean                    want_shadow;
+    gdouble                     outline_offset;
+    GstBuffer                  *text_image;
+    gint                        image_width;
+    gint                        image_height;
+    gint                        baseline_y;
+
+    gboolean                    auto_adjust_size;
+    gboolean                    need_render;
+
+    gint                        shading_value;  /* for timeoverlay subclass */
+
+    gboolean                    have_pango_markup;
+    gboolean                    use_vertical_render;
+
+    gboolean                    attach_compo_to_buffer;
+
+    GstVideoOverlayComposition *composition;
 };
 
 struct _GstTextOverlayClass {
old mode 100755 (executable)
new mode 100644 (file)
index 0c988ea..38ea44a
@@ -71,14 +71,9 @@ GST_DEBUG_CATEGORY_EXTERN (pango_debug);
 #define DEFAULT_PROP_LINE_ALIGNMENT GST_TEXT_RENDER_LINE_ALIGN_CENTER
 #define DEFAULT_PROP_XPAD       25
 #define DEFAULT_PROP_YPAD       25
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-#define DEFAULT_PROP_RENDER_WIDTH 800
-#define DEFAULT_PROP_RENDER_HEIGHT 480
-#define DEFAULT_PROP_RENDER_SILENT FALSE
-#else
+
 #define DEFAULT_RENDER_WIDTH 720
 #define DEFAULT_RENDER_HEIGHT 576
-#endif
 
 enum
 {
@@ -88,11 +83,6 @@ enum
   PROP_LINE_ALIGNMENT,
   PROP_XPAD,
   PROP_YPAD,
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-  PROP_RENDER_WIDTH,
-  PROP_RENDER_HEIGHT,
-  PROP_RENDER_SILENT,
-#endif
   PROP_FONT_DESC
 };
 
@@ -185,10 +175,10 @@ gst_text_render_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &src_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template_factory);
 
   gst_element_class_set_details_simple (element_class, "Text renderer",
       "Filter/Editor/Video",
@@ -237,20 +227,6 @@ gst_text_render_class_init (GstTextRenderClass * klass)
       g_param_spec_int ("ypad", "vertical padding",
           "Vertical padding when using top/bottom alignment", 0, G_MAXINT,
           DEFAULT_PROP_YPAD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RENDER_WIDTH,
-      g_param_spec_int ("width", "render width",
-          "Width of rendered video size", 0, G_MAXINT,
-          DEFAULT_PROP_RENDER_WIDTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RENDER_HEIGHT,
-      g_param_spec_int ("height", "render height",
-          "Height of rendered video size", 0, G_MAXINT,
-          DEFAULT_PROP_RENDER_HEIGHT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RENDER_SILENT,
-      g_param_spec_boolean ("silent", "render silent",
-          "Whether to render the text string", 
-          DEFAULT_PROP_RENDER_SILENT, G_PARAM_READWRITE));
-#endif
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_LINE_ALIGNMENT,
       g_param_spec_enum ("line-alignment", "line alignment",
           "Alignment of text lines relative to each other.",
@@ -404,8 +380,10 @@ gst_text_render_fixate_caps (GstPad * pad, GstCaps * caps)
   GstStructure *s = gst_caps_get_structure (caps, 0);
 
   GST_DEBUG ("Fixating caps %" GST_PTR_FORMAT, caps);
-  gst_structure_fixate_field_nearest_int (s, "width", render->image_width);
-  gst_structure_fixate_field_nearest_int (s, "height", render->image_height);
+  gst_structure_fixate_field_nearest_int (s, "width", MAX (render->image_width,
+          DEFAULT_RENDER_WIDTH));
+  gst_structure_fixate_field_nearest_int (s, "height",
+      MAX (render->image_height + render->ypad, DEFAULT_RENDER_HEIGHT));
   GST_DEBUG ("Fixated to    %" GST_PTR_FORMAT, caps);
 
   gst_object_unref (render);
@@ -428,12 +406,12 @@ gst_text_renderer_image_to_ayuv (GstTextRender * render, guchar * pixbuf,
 
   width = render->image_width;
   height = render->image_height;
-  bitp = render->text_image;
 
-  for (y = 0; y < height; y++) {
+  for (y = 0; y < height && ypos + y < render->height; y++) {
     int n;
     p = pixbuf + (ypos + y) * stride + xpos * 4;
-    for (n = 0; n < width; n++) {
+    bitp = render->text_image + y * width * 4;
+    for (n = 0; n < width && n < render->width; n++) {
       b = bitp[CAIRO_ARGB_B];
       g = bitp[CAIRO_ARGB_G];
       r = bitp[CAIRO_ARGB_R];
@@ -464,11 +442,11 @@ gst_text_renderer_image_to_argb (GstTextRender * render, guchar * pixbuf,
 
   width = render->image_width;
   height = render->image_height;
-  bitp = render->text_image;
 
-  for (i = 0; i < height; i++) {
+  for (i = 0; i < height && ypos + i < render->height; i++) {
     p = pixbuf + (ypos + i) * stride + xpos * 4;
-    for (j = 0; j < width; j++) {
+    bitp = render->text_image + i * width * 4;
+    for (j = 0; j < width && j < render->width; j++) {
       p[0] = bitp[CAIRO_ARGB_A];
       p[1] = bitp[CAIRO_ARGB_R];
       p[2] = bitp[CAIRO_ARGB_G];
@@ -489,7 +467,7 @@ gst_text_render_chain (GstPad * pad, GstBuffer * inbuf)
   GstTextRender *render;
   GstFlowReturn ret;
   GstBuffer *outbuf;
-  GstCaps *caps = NULL;
+  GstCaps *caps = NULL, *padcaps, *peercaps;
   guint8 *data = GST_BUFFER_DATA (inbuf);
   guint size = GST_BUFFER_SIZE (inbuf);
   gint n;
@@ -505,34 +483,28 @@ gst_text_render_chain (GstPad * pad, GstBuffer * inbuf)
   }
 
   /* render text */
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-  if (!render->silent) {
-    GST_DEBUG ("rendering '%*s'", size, data);
-    pango_layout_set_markup (render->layout, (gchar *) data, size);
-    gst_text_render_render_pangocairo (render);
-  } else {
-    GST_DEBUG ("silent mode is on, not rendering '%*s'", size, data);
-  }
-#else
   GST_DEBUG ("rendering '%*s'", size, data);
   pango_layout_set_markup (render->layout, (gchar *) data, size);
   gst_text_render_render_pangocairo (render);
-#endif
 
   gst_text_render_check_argb (render);
 
-  if (!render->use_ARGB) {
-    caps =
-        gst_video_format_new_caps (GST_VIDEO_FORMAT_AYUV, render->width,
-        render->height, 1, 1, 1, 1);
-  } else {
-    caps =
-        gst_video_format_new_caps (GST_VIDEO_FORMAT_ARGB, render->width,
-        render->height, 1, 1, 1, 1);
+  peercaps = gst_pad_peer_get_caps (render->srcpad);
+  padcaps = gst_pad_get_caps (render->srcpad);
+  caps = gst_caps_intersect (padcaps, peercaps);
+  gst_caps_unref (padcaps);
+  gst_caps_unref (peercaps);
+
+  if (!caps || gst_caps_is_empty (caps)) {
+    GST_ELEMENT_ERROR (render, CORE, NEGOTIATION, (NULL), (NULL));
+    ret = GST_FLOW_ERROR;
+    goto done;
   }
 
+  gst_caps_truncate (caps);
+  gst_pad_fixate_caps (render->srcpad, caps);
+
   if (!gst_pad_set_caps (render->srcpad, caps)) {
-    gst_caps_unref (caps);
     GST_ELEMENT_ERROR (render, CORE, NEGOTIATION, (NULL), (NULL));
     ret = GST_FLOW_ERROR;
     goto done;
@@ -558,13 +530,6 @@ gst_text_render_chain (GstPad * pad, GstBuffer * inbuf)
     }
   }
 
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-  if (render->silent) {
-    ret = gst_pad_push (render->srcpad, outbuf);
-    goto done;
-  }
-#endif
-
   switch (render->halign) {
     case GST_TEXT_RENDER_HALIGN_LEFT:
       xpos = render->xpad;
@@ -662,14 +627,8 @@ gst_text_render_init (GstTextRender * render, GstTextRenderClass * klass)
   render->xpad = DEFAULT_PROP_XPAD;
   render->ypad = DEFAULT_PROP_YPAD;
 
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-  render->width = DEFAULT_PROP_RENDER_WIDTH;
-  render->height = DEFAULT_PROP_RENDER_HEIGHT;
-  render->silent = DEFAULT_PROP_RENDER_SILENT;
-#else
   render->width = DEFAULT_RENDER_WIDTH;
   render->height = DEFAULT_RENDER_HEIGHT;
-#endif
 
   render->use_ARGB = FALSE;
 }
@@ -698,17 +657,6 @@ gst_text_render_set_property (GObject * object, guint prop_id,
     case PROP_YPAD:
       render->ypad = g_value_get_int (value);
       break;
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-    case PROP_RENDER_WIDTH:
-      render->width = g_value_get_int (value);
-      break;
-    case PROP_RENDER_HEIGHT:
-      render->height = g_value_get_int (value);
-      break;
-    case PROP_RENDER_SILENT:
-      render->silent = g_value_get_boolean (value);
-      break;
-#endif
     case PROP_FONT_DESC:
     {
       PangoFontDescription *desc;
@@ -756,17 +704,6 @@ gst_text_render_get_property (GObject * object, guint prop_id,
     case PROP_YPAD:
       g_value_set_int (value, render->ypad);
       break;
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-    case PROP_RENDER_WIDTH:
-      g_value_set_int (value, render->width);
-      break;
-    case PROP_RENDER_HEIGHT:
-      g_value_set_int (value, render->height);
-      break;
-    case PROP_RENDER_SILENT:
-      g_value_set_boolean (value, render->silent);
-      break;
-#endif
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
old mode 100755 (executable)
new mode 100644 (file)
index b72b77c..66d37db
@@ -89,11 +89,6 @@ struct _GstTextRender {
 
     gint xpad;
     gint ypad;
-
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-    gboolean              silent;
-#endif
-
 };
 
 struct _GstTextRenderClass {
index 27fab92..fc66304 100644 (file)
@@ -48,7 +48,7 @@
 
 #include <gst/video/video.h>
 
-#include <gsttimeoverlay.h>
+#include "gsttimeoverlay.h"
 
 GST_BOILERPLATE (GstTimeOverlay, gst_time_overlay, GstTextOverlay,
     GST_TYPE_TEXT_OVERLAY);
index 57cd1eb..223ac23 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -114,8 +121,8 @@ am_libgsttheora_la_OBJECTS = libgsttheora_la-gsttheora.lo \
        libgsttheora_la-gsttheoradec.lo \
        libgsttheora_la-gsttheoraparse.lo
 libgsttheora_la_OBJECTS = $(am_libgsttheora_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgsttheora_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -131,21 +138,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgsttheora_la_SOURCES)
 DIST_SOURCES = $(libgsttheora_la_SOURCES)
@@ -213,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -273,6 +281,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -282,9 +291,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -307,6 +319,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -379,10 +392,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -416,7 +432,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -522,7 +537,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgsttheora.la: $(libgsttheora_la_OBJECTS) $(libgsttheora_la_DEPENDENCIES) 
+libgsttheora.la: $(libgsttheora_la_OBJECTS) $(libgsttheora_la_DEPENDENCIES) $(EXTRA_libgsttheora_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgsttheora_la_LINK) -rpath $(plugindir) $(libgsttheora_la_OBJECTS) $(libgsttheora_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -539,58 +554,51 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsttheora_la-gsttheora.lo: gsttheora.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheora.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheora.Tpo -c -o libgsttheora_la-gsttheora.lo `test -f 'gsttheora.c' || echo '$(srcdir)/'`gsttheora.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheora.Tpo $(DEPDIR)/libgsttheora_la-gsttheora.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttheora.c' object='libgsttheora_la-gsttheora.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttheora.c' object='libgsttheora_la-gsttheora.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheora.lo `test -f 'gsttheora.c' || echo '$(srcdir)/'`gsttheora.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheora.lo `test -f 'gsttheora.c' || echo '$(srcdir)/'`gsttheora.c
 
 libgsttheora_la-gsttheoraenc.lo: gsttheoraenc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheoraenc.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheoraenc.Tpo -c -o libgsttheora_la-gsttheoraenc.lo `test -f 'gsttheoraenc.c' || echo '$(srcdir)/'`gsttheoraenc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheoraenc.Tpo $(DEPDIR)/libgsttheora_la-gsttheoraenc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttheoraenc.c' object='libgsttheora_la-gsttheoraenc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttheoraenc.c' object='libgsttheora_la-gsttheoraenc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraenc.lo `test -f 'gsttheoraenc.c' || echo '$(srcdir)/'`gsttheoraenc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraenc.lo `test -f 'gsttheoraenc.c' || echo '$(srcdir)/'`gsttheoraenc.c
 
 libgsttheora_la-gsttheoradec.lo: gsttheoradec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheoradec.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheoradec.Tpo -c -o libgsttheora_la-gsttheoradec.lo `test -f 'gsttheoradec.c' || echo '$(srcdir)/'`gsttheoradec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheoradec.Tpo $(DEPDIR)/libgsttheora_la-gsttheoradec.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttheoradec.c' object='libgsttheora_la-gsttheoradec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttheoradec.c' object='libgsttheora_la-gsttheoradec.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoradec.lo `test -f 'gsttheoradec.c' || echo '$(srcdir)/'`gsttheoradec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoradec.lo `test -f 'gsttheoradec.c' || echo '$(srcdir)/'`gsttheoradec.c
 
 libgsttheora_la-gsttheoraparse.lo: gsttheoraparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheoraparse.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheoraparse.Tpo -c -o libgsttheora_la-gsttheoraparse.lo `test -f 'gsttheoraparse.c' || echo '$(srcdir)/'`gsttheoraparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheoraparse.Tpo $(DEPDIR)/libgsttheora_la-gsttheoraparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttheoraparse.c' object='libgsttheora_la-gsttheoraparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttheoraparse.c' object='libgsttheora_la-gsttheoraparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraparse.lo `test -f 'gsttheoraparse.c' || echo '$(srcdir)/'`gsttheoraparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraparse.lo `test -f 'gsttheoraparse.c' || echo '$(srcdir)/'`gsttheoraparse.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -697,10 +705,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 96e12ee..5271109 100644 (file)
@@ -113,10 +113,10 @@ gst_theora_dec_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_dec_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_dec_sink_factory);
   gst_element_class_set_details_simple (element_class,
       "Theora video decoder", "Codec/Decoder/Video",
       "decode raw theora streams to raw YUV video",
@@ -1411,7 +1411,7 @@ theora_dec_flush_decode (GstTheoraDec * dec)
   while (dec->queued) {
     GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
 
-    /* iterate ouput queue an push downstream */
+    /* iterate output queue an push downstream */
     res = gst_pad_push (dec->srcpad, buf);
 
     dec->queued = g_list_delete_link (dec->queued, dec->queued);
@@ -1440,7 +1440,7 @@ theora_dec_chain_reverse (GstTheoraDec * dec, gboolean discont, GstBuffer * buf)
 
       /* if we copied a keyframe, flush and decode the decode queue */
       data = GST_BUFFER_DATA (gbuf);
-      if ((data[0] & 0x40) == 0) {
+      if (data && (data[0] & 0x40) == 0) {
         GST_DEBUG_OBJECT (dec, "copied keyframe");
         res = theora_dec_flush_decode (dec);
       }
index f672211..34578ce 100644 (file)
@@ -73,7 +73,7 @@ struct _GstTheoraDec
   gint offset_x, offset_y;
   gint output_bpp;
 
-  /* telemetry debuging options */
+  /* telemetry debugging options */
   gint telemetry_mv;
   gint telemetry_mbmode;
   gint telemetry_qi;
index c580675..f468439 100644 (file)
@@ -243,6 +243,8 @@ GST_STATIC_PAD_TEMPLATE ("src",
     GST_STATIC_CAPS ("video/x-theora")
     );
 
+static GstCaps *theora_enc_src_caps;
+
 static void
 _do_init (GType object_type)
 {
@@ -275,15 +277,17 @@ static void theora_enc_finalize (GObject * object);
 static gboolean theora_enc_write_multipass_cache (GstTheoraEnc * enc,
     gboolean begin, gboolean eos);
 
+static char *theora_enc_get_supported_formats (void);
+
 static void
 gst_theora_enc_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_enc_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_enc_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_enc_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_enc_sink_factory);
   gst_element_class_set_details_simple (element_class,
       "Theora video encoder", "Codec/Encoder/Video",
       "encode raw YUV video to a theora stream",
@@ -295,6 +299,7 @@ gst_theora_enc_class_init (GstTheoraEncClass * klass)
 {
   GObjectClass *gobject_class = (GObjectClass *) klass;
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+  char *caps_string;
 
   /* query runtime encoder properties */
   th_enc_ctx *th_ctx;
@@ -305,7 +310,7 @@ gst_theora_enc_class_init (GstTheoraEncClass * klass)
 
   th_ctx = dummy_encode_ctx ();
   if (th_ctx) {
-    if (!check_speed_level (th_ctx, &default_speed_level, &max_speed_level))
+    if (check_speed_level (th_ctx, &default_speed_level, &max_speed_level))
       GST_WARNING
           ("Failed to determine settings for the speed-level property.");
     th_encode_free (th_ctx);
@@ -383,17 +388,17 @@ gst_theora_enc_class_init (GstTheoraEncClass * klass)
           THEORA_DEF_VP3_COMPATIBLE,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_DROP_FRAMES,
-      g_param_spec_boolean ("drop-frames", "VP3 Compatible",
+      g_param_spec_boolean ("drop-frames", "Drop Frames",
           "Allow or disallow frame dropping",
           THEORA_DEF_DROP_FRAMES,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_CAP_OVERFLOW,
-      g_param_spec_boolean ("cap-overflow", "VP3 Compatible",
+      g_param_spec_boolean ("cap-overflow", "Cap Overflow",
           "Enable capping of bit reservoir overflows",
           THEORA_DEF_CAP_OVERFLOW,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_CAP_UNDERFLOW,
-      g_param_spec_boolean ("cap-underflow", "VP3 Compatible",
+      g_param_spec_boolean ("cap-underflow", "Cap Underflow",
           "Enable capping of bit reservoir underflows",
           THEORA_DEF_CAP_UNDERFLOW,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
@@ -414,6 +419,14 @@ gst_theora_enc_class_init (GstTheoraEncClass * klass)
           THEORA_DEF_MULTIPASS_MODE,
           (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  caps_string = g_strdup_printf ("video/x-raw-yuv, "
+      "format = (fourcc) { %s }, "
+      "framerate = (fraction) [1/MAX, MAX], "
+      "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
+      theora_enc_get_supported_formats ());
+  theora_enc_src_caps = gst_caps_from_string (caps_string);
+  g_free (caps_string);
+
   gstelement_class->change_state = theora_enc_change_state;
 }
 
@@ -431,6 +444,7 @@ gst_theora_enc_init (GstTheoraEnc * enc, GstTheoraEncClass * g_class)
   enc->srcpad =
       gst_pad_new_from_static_template (&theora_enc_src_factory, "src");
   gst_pad_set_event_function (enc->srcpad, theora_enc_src_event);
+  gst_pad_use_fixed_caps (enc->srcpad);
   gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad);
 
   gst_segment_init (&enc->segment, GST_FORMAT_UNDEFINED);
@@ -494,7 +508,13 @@ theora_enc_reset (GstTheoraEnc * enc)
 
   GST_OBJECT_LOCK (enc);
   enc->info.target_bitrate = enc->video_bitrate;
-  enc->info.quality = enc->video_quality;
+  if (enc->quality_changed) {
+    enc->info.quality = enc->video_quality;
+  } else {
+    if (enc->video_bitrate == 0) {
+      enc->info.quality = enc->video_quality;
+    }
+  }
   enc->bitrate_changed = FALSE;
   enc->quality_changed = FALSE;
   GST_OBJECT_UNLOCK (enc);
@@ -555,10 +575,10 @@ theora_enc_get_supported_formats (void)
 {
   th_enc_ctx *encoder;
   th_info info;
-  struct
+  static const struct
   {
     th_pixel_fmt pixelformat;
-    const char *fourcc;
+    const char fourcc[5];
   } formats[] = {
     {
     TH_PF_420, "I420"}, {
@@ -598,24 +618,50 @@ theora_enc_get_supported_formats (void)
 static GstCaps *
 theora_enc_sink_getcaps (GstPad * pad)
 {
+  GstTheoraEnc *encoder;
+  GstPad *peer;
   GstCaps *caps;
-  char *supported_formats, *caps_string;
 
-  supported_formats = theora_enc_get_supported_formats ();
-  if (!supported_formats) {
-    GST_WARNING ("no supported formats found. Encoder disabled?");
+  /* If we already have caps return them */
+  if (GST_PAD_CAPS (pad))
+    return gst_caps_ref (GST_PAD_CAPS (pad));
+
+  encoder = GST_THEORA_ENC (gst_pad_get_parent (pad));
+  if (!encoder)
     return gst_caps_new_empty ();
+
+  peer = gst_pad_get_peer (encoder->srcpad);
+  if (peer) {
+    const GstCaps *templ_caps;
+    GstCaps *peer_caps, *tmp_caps;
+    GstStructure *s;
+    guint i, n;
+
+    peer_caps = gst_pad_get_caps (peer);
+
+    /* Translate peercaps to YUV */
+    peer_caps = gst_caps_make_writable (peer_caps);
+    n = gst_caps_get_size (peer_caps);
+    for (i = 0; i < n; i++) {
+      s = gst_caps_get_structure (peer_caps, i);
+
+      gst_structure_set_name (s, "video/x-raw-yuv");
+      gst_structure_remove_field (s, "streamheader");
+    }
+
+    templ_caps = gst_pad_get_pad_template_caps (pad);
+
+    tmp_caps = gst_caps_intersect (peer_caps, templ_caps);
+    caps = gst_caps_intersect (tmp_caps, theora_enc_src_caps);
+    gst_caps_unref (tmp_caps);
+    gst_caps_unref (peer_caps);
+    gst_object_unref (peer);
+    peer = NULL;
+  } else {
+    caps = gst_caps_ref (theora_enc_src_caps);
   }
 
-  caps_string = g_strdup_printf ("video/x-raw-yuv, "
-      "format = (fourcc) { %s }, "
-      "framerate = (fraction) [1/MAX, MAX], "
-      "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
-      supported_formats);
-  caps = gst_caps_from_string (caps_string);
-  g_free (caps_string);
-  g_free (supported_formats);
-  GST_DEBUG ("Supported caps: %" GST_PTR_FORMAT, caps);
+  gst_object_unref (encoder);
 
   return caps;
 }
@@ -661,12 +707,16 @@ theora_enc_sink_setcaps (GstPad * pad, GstCaps * caps)
   enc->info.fps_denominator = enc->fps_d = fps_d;
   if (par) {
     enc->info.aspect_numerator = gst_value_get_fraction_numerator (par);
+    enc->par_n = gst_value_get_fraction_numerator (par);
     enc->info.aspect_denominator = gst_value_get_fraction_denominator (par);
+    enc->par_d = gst_value_get_fraction_denominator (par);
   } else {
     /* setting them to 0 indicates that the decoder can chose a good aspect
      * ratio, defaulting to 1/1 */
     enc->info.aspect_numerator = 0;
+    enc->par_n = 1;
     enc->info.aspect_denominator = 0;
+    enc->par_d = 1;
   }
 
   enc->info.colorspace = TH_CS_UNSPECIFIED;
@@ -731,9 +781,8 @@ theora_buffer_from_packet (GstTheoraEnc * enc, ogg_packet * packet,
     enc->next_discont = FALSE;
   }
 
-  /* the second most significant bit of the first data byte is cleared
-   * for keyframes */
-  if (packet->bytes > 0 && (packet->packet[0] & 0x40) == 0) {
+  /* th_packet_iskeyframe returns positive for keyframes */
+  if (th_packet_iskeyframe (packet) > 0) {
     GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
   } else {
     GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
@@ -1008,7 +1057,8 @@ theora_enc_read_multipass_cache (GstTheoraEnc * enc)
 {
   GstBuffer *cache_buf;
   const guint8 *cache_data;
-  gsize bytes_read = 0, bytes_consumed = 0;
+  gsize bytes_read = 0;
+  gint bytes_consumed = 0;
   GIOStatus stat = G_IO_STATUS_NORMAL;
   gboolean done = FALSE;
 
@@ -1077,7 +1127,7 @@ theora_enc_write_multipass_cache (GstTheoraEnc * enc, gboolean begin,
 
   }
 
-  if (stat == G_IO_STATUS_ERROR || bytes_read < 0 || bytes_written < 0) {
+  if (stat == G_IO_STATUS_ERROR || bytes_read < 0) {
     if (begin) {
       if (eos)
         GST_ELEMENT_WARNING (enc, RESOURCE, WRITE, (NULL),
@@ -1100,6 +1150,83 @@ theora_enc_write_multipass_cache (GstTheoraEnc * enc, gboolean begin,
 }
 
 static GstFlowReturn
+theora_enc_encode_and_push (GstTheoraEnc * enc, ogg_packet op,
+    GstClockTime timestamp, GstClockTime running_time,
+    GstClockTime duration, GstBuffer * buffer)
+{
+  GstFlowReturn ret;
+  th_ycbcr_buffer ycbcr;
+  gint res;
+
+  theora_enc_init_buffer (ycbcr, &enc->info, GST_BUFFER_DATA (buffer));
+
+  if (theora_enc_is_discontinuous (enc, running_time, duration)) {
+    theora_enc_reset (enc);
+    enc->granulepos_offset =
+        gst_util_uint64_scale (running_time, enc->fps_n,
+        GST_SECOND * enc->fps_d);
+    enc->timestamp_offset = running_time;
+    enc->next_ts = 0;
+    enc->next_discont = TRUE;
+  }
+
+  if (enc->multipass_cache_fd
+      && enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS) {
+    if (!theora_enc_read_multipass_cache (enc)) {
+      ret = GST_FLOW_ERROR;
+      goto multipass_read_failed;
+    }
+  }
+
+  res = th_encode_ycbcr_in (enc->encoder, ycbcr);
+  /* none of the failure cases can happen here */
+  g_assert (res == 0);
+
+  if (enc->multipass_cache_fd
+      && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS) {
+    if (!theora_enc_write_multipass_cache (enc, FALSE, FALSE)) {
+      ret = GST_FLOW_ERROR;
+      goto multipass_write_failed;
+    }
+  }
+
+  ret = GST_FLOW_OK;
+  while (th_encode_packetout (enc->encoder, 0, &op)) {
+    GstClockTime next_time;
+
+    next_time = th_granule_time (enc->encoder, op.granulepos) * GST_SECOND;
+
+    ret =
+        theora_push_packet (enc, &op, timestamp, enc->next_ts,
+        next_time - enc->next_ts);
+
+    enc->next_ts = next_time;
+    if (ret != GST_FLOW_OK)
+      goto data_push;
+  }
+  gst_buffer_unref (buffer);
+
+  return ret;
+
+  /* ERRORS */
+multipass_read_failed:
+  {
+    gst_buffer_unref (buffer);
+    return ret;
+  }
+multipass_write_failed:
+  {
+    gst_buffer_unref (buffer);
+    return ret;
+  }
+data_push:
+  {
+    gst_buffer_unref (buffer);
+    return ret;
+  }
+}
+
+static GstFlowReturn
 theora_enc_chain (GstPad * pad, GstBuffer * buffer)
 {
   GstTheoraEnc *enc;
@@ -1111,7 +1238,7 @@ theora_enc_chain (GstPad * pad, GstBuffer * buffer)
   enc = GST_THEORA_ENC (GST_PAD_PARENT (pad));
 
   /* we keep track of two timelines.
-   * - The timestamps from the incomming buffers, which we copy to the outgoing
+   * - The timestamps from the incoming buffers, which we copy to the outgoing
    *   encoded buffers as-is. We need to do this as we simply forward the
    *   newsegment events.
    * - The running_time of the buffers, which we use to construct the granulepos
@@ -1170,7 +1297,7 @@ theora_enc_chain (GstPad * pad, GstBuffer * buffer)
   }
 
   /* make sure we copy the discont flag to the next outgoing buffer when it's
-   * set on the incomming buffer */
+   * set on the incoming buffer */
   if (GST_BUFFER_IS_DISCONT (buffer)) {
     enc->next_discont = TRUE;
   }
@@ -1216,7 +1343,11 @@ theora_enc_chain (GstPad * pad, GstBuffer * buffer)
     buffers = g_slist_reverse (buffers);
 
     /* mark buffers and put on caps */
-    caps = gst_pad_get_caps (enc->srcpad);
+    caps = gst_caps_new_simple ("video/x-theora",
+        "width", G_TYPE_INT, enc->width,
+        "height", G_TYPE_INT, enc->height,
+        "framerate", GST_TYPE_FRACTION, enc->fps_n, enc->fps_d,
+        "pixel-aspect-ratio", GST_TYPE_FRACTION, enc->par_n, enc->par_d, NULL);
     caps = theora_set_header_on_caps (caps, buffers);
     GST_DEBUG ("here are the caps: %" GST_PTR_FORMAT, caps);
     gst_pad_set_caps (enc->srcpad, caps);
@@ -1243,72 +1374,12 @@ theora_enc_chain (GstPad * pad, GstBuffer * buffer)
     enc->next_ts = 0;
   }
 
-  {
-    th_ycbcr_buffer ycbcr;
-    gint res;
-
-    theora_enc_init_buffer (ycbcr, &enc->info, GST_BUFFER_DATA (buffer));
-
-    if (theora_enc_is_discontinuous (enc, running_time, duration)) {
-      theora_enc_reset (enc);
-      enc->granulepos_offset =
-          gst_util_uint64_scale (running_time, enc->fps_n,
-          GST_SECOND * enc->fps_d);
-      enc->timestamp_offset = running_time;
-      enc->next_ts = 0;
-      enc->next_discont = TRUE;
-    }
-
-    if (enc->multipass_cache_fd
-        && enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS) {
-      if (!theora_enc_read_multipass_cache (enc)) {
-        ret = GST_FLOW_ERROR;
-        goto multipass_read_failed;
-      }
-    }
-
-    res = th_encode_ycbcr_in (enc->encoder, ycbcr);
-    /* none of the failure cases can happen here */
-    g_assert (res == 0);
-
-    if (enc->multipass_cache_fd
-        && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS) {
-      if (!theora_enc_write_multipass_cache (enc, FALSE, FALSE)) {
-        ret = GST_FLOW_ERROR;
-        goto multipass_write_failed;
-      }
-    }
-
-    ret = GST_FLOW_OK;
-    while (th_encode_packetout (enc->encoder, 0, &op)) {
-      GstClockTime next_time;
-
-      next_time = th_granule_time (enc->encoder, op.granulepos) * GST_SECOND;
-
-      ret =
-          theora_push_packet (enc, &op, timestamp, enc->next_ts,
-          next_time - enc->next_ts);
-
-      enc->next_ts = next_time;
-      if (ret != GST_FLOW_OK)
-        goto data_push;
-    }
-    gst_buffer_unref (buffer);
-  }
+  ret = theora_enc_encode_and_push (enc, op, timestamp, running_time, duration,
+      buffer);
 
   return ret;
 
   /* ERRORS */
-multipass_read_failed:
-  {
-    gst_buffer_unref (buffer);
-    return ret;
-  }
-multipass_write_failed:
-  {
-    gst_buffer_unref (buffer);
-    return ret;
-  }
 header_buffer_alloc:
   {
     gst_buffer_unref (buffer);
@@ -1319,11 +1390,6 @@ header_push:
     gst_buffer_unref (buffer);
     return ret;
   }
-data_push:
-  {
-    gst_buffer_unref (buffer);
-    return ret;
-  }
 encoder_disabled:
   {
     GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
@@ -1338,11 +1404,19 @@ theora_enc_change_state (GstElement * element, GstStateChange transition)
 {
   GstTheoraEnc *enc;
   GstStateChangeReturn ret;
+  th_enc_ctx *th_ctx;
 
   enc = GST_THEORA_ENC (element);
 
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
+      th_ctx = dummy_encode_ctx ();
+      if (!th_ctx) {
+        GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
+            ("libtheora has been compiled with the encoder disabled"));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+      th_encode_free (th_ctx);
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_DEBUG_OBJECT (enc, "READY->PAUSED Initing theora state");
@@ -1425,6 +1499,8 @@ theora_enc_set_property (GObject * object, guint prop_id,
     case PROP_NOISE_SENSITIVITY:
     case PROP_SHARPNESS:
       /* kept for API compat, but ignored */
+      GST_WARNING_OBJECT (object, "Obsolete property '%s' ignored",
+          pspec->name);
       break;
     case PROP_BITRATE:
       GST_OBJECT_LOCK (enc);
index 08707d8..69d4050 100644 (file)
@@ -102,6 +102,7 @@ struct _GstTheoraEnc
   gint info_width, info_height;
   gint width, height;
   gint fps_n, fps_d;
+  gint par_n, par_d;
   GstClockTime next_ts;
 
   GstClockTime expected_ts;
index 0ce68d9..4e356c6 100644 (file)
@@ -105,10 +105,10 @@ gst_theora_parse_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_parse_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_parse_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_parse_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_parse_sink_factory);
   gst_element_class_set_details_simple (element_class,
       "Theora video parser", "Codec/Parser/Video",
       "parse raw theora streams", "Andy Wingo <wingo@pobox.com>");
@@ -241,7 +241,7 @@ theora_parse_get_property (GObject * object, guint prop_id,
         g_value_unset (&v);
       }
 
-      g_value_set_boxed (value, array);
+      g_value_take_boxed (value, array);
     }
       break;
     default:
@@ -328,7 +328,7 @@ theora_parse_set_streamheader (GstTheoraParse * parse)
   parse->shift = parse->info.keyframe_granule_shift;
 
   /* With libtheora-1.0beta1 the granulepos scheme was changed:
-   * where earlier the granulepos refered to the index/beginning
+   * where earlier the granulepos referred to the index/beginning
    * of a frame, it now refers to the end, which matches the use
    * in vorbis/speex. We check the bitstream version from the header so
    * we know which way to interpret the incoming granuepos
index 7c18ff1..81799bd 100644 (file)
@@ -11,7 +11,8 @@ libgstvorbis_la_SOURCES = gstvorbis.c \
                          gstvorbistag.c \
                          gstvorbiscommon.c
 
-libgstvorbis_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
+libgstvorbis_la_CFLAGS = \
+       $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
 ## AM_PATH_VORBIS also sets VORBISENC_LIBS
 libgstvorbis_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
@@ -27,7 +28,8 @@ plugin_LTLIBRARIES += libgstivorbisdec.la
 
 libgstivorbisdec_la_SOURCES = gstivorbisdec.c \
        gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
-libgstivorbisdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
+libgstivorbisdec_la_CFLAGS = \
+       $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
        -DTREMOR $(IVORBIS_CFLAGS)
 libgstivorbisdec_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
index 88c2ab1..d98ae76 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -59,6 +59,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -104,6 +105,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -118,8 +125,8 @@ am__libgstivorbisdec_la_SOURCES_DIST = gstivorbisdec.c gstvorbisdec.c \
 @USE_IVORBIS_TRUE@     libgstivorbisdec_la-gstvorbisdeclib.lo \
 @USE_IVORBIS_TRUE@     libgstivorbisdec_la-gstvorbiscommon.lo
 libgstivorbisdec_la_OBJECTS = $(am_libgstivorbisdec_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstivorbisdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -157,21 +164,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstivorbisdec_la_SOURCES) $(libgstvorbis_la_SOURCES)
 DIST_SOURCES = $(am__libgstivorbisdec_la_SOURCES_DIST) \
@@ -240,6 +247,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -300,6 +308,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -309,9 +318,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -334,6 +346,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -406,10 +419,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -443,7 +459,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -473,7 +488,9 @@ plugin_LTLIBRARIES = $(am__append_1) $(am__append_2)
 @USE_VORBIS_TRUE@                        gstvorbistag.c \
 @USE_VORBIS_TRUE@                        gstvorbiscommon.c
 
-@USE_VORBIS_TRUE@libgstvorbis_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
+@USE_VORBIS_TRUE@libgstvorbis_la_CFLAGS = \
+@USE_VORBIS_TRUE@      $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
+
 @USE_VORBIS_TRUE@libgstvorbis_la_LIBADD = \
 @USE_VORBIS_TRUE@      $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
 @USE_VORBIS_TRUE@      $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
@@ -485,7 +502,8 @@ plugin_LTLIBRARIES = $(am__append_1) $(am__append_2)
 @USE_IVORBIS_TRUE@libgstivorbisdec_la_SOURCES = gstivorbisdec.c \
 @USE_IVORBIS_TRUE@     gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
 
-@USE_IVORBIS_TRUE@libgstivorbisdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
+@USE_IVORBIS_TRUE@libgstivorbisdec_la_CFLAGS = \
+@USE_IVORBIS_TRUE@     $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
 @USE_IVORBIS_TRUE@     -DTREMOR $(IVORBIS_CFLAGS)
 
 @USE_IVORBIS_TRUE@libgstivorbisdec_la_LIBADD = \
@@ -567,9 +585,9 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstivorbisdec.la: $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_DEPENDENCIES) 
+libgstivorbisdec.la: $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_DEPENDENCIES) $(EXTRA_libgstivorbisdec_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstivorbisdec_la_LINK) $(am_libgstivorbisdec_la_rpath) $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_LIBADD) $(LIBS)
-libgstvorbis.la: $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_DEPENDENCIES) 
+libgstvorbis.la: $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_DEPENDENCIES) $(EXTRA_libgstvorbis_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvorbis_la_LINK) $(am_libgstvorbis_la_rpath) $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -593,114 +611,100 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstivorbisdec_la-gstivorbisdec.lo: gstivorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstivorbisdec.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstivorbisdec.Tpo -c -o libgstivorbisdec_la-gstivorbisdec.lo `test -f 'gstivorbisdec.c' || echo '$(srcdir)/'`gstivorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstivorbisdec.Tpo $(DEPDIR)/libgstivorbisdec_la-gstivorbisdec.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstivorbisdec.c' object='libgstivorbisdec_la-gstivorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstivorbisdec.c' object='libgstivorbisdec_la-gstivorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstivorbisdec.lo `test -f 'gstivorbisdec.c' || echo '$(srcdir)/'`gstivorbisdec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstivorbisdec.lo `test -f 'gstivorbisdec.c' || echo '$(srcdir)/'`gstivorbisdec.c
 
 libgstivorbisdec_la-gstvorbisdec.lo: gstvorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstvorbisdec.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstvorbisdec.Tpo -c -o libgstivorbisdec_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstvorbisdec.Tpo $(DEPDIR)/libgstivorbisdec_la-gstvorbisdec.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbisdec.c' object='libgstivorbisdec_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbisdec.c' object='libgstivorbisdec_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
 
 libgstivorbisdec_la-gstvorbisdeclib.lo: gstvorbisdeclib.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstvorbisdeclib.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstvorbisdeclib.Tpo -c -o libgstivorbisdec_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstvorbisdeclib.Tpo $(DEPDIR)/libgstivorbisdec_la-gstvorbisdeclib.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbisdeclib.c' object='libgstivorbisdec_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbisdeclib.c' object='libgstivorbisdec_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
 
 libgstivorbisdec_la-gstvorbiscommon.lo: gstvorbiscommon.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstvorbiscommon.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstvorbiscommon.Tpo -c -o libgstivorbisdec_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstvorbiscommon.Tpo $(DEPDIR)/libgstivorbisdec_la-gstvorbiscommon.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbiscommon.c' object='libgstivorbisdec_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbiscommon.c' object='libgstivorbisdec_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
 
 libgstvorbis_la-gstvorbis.lo: gstvorbis.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbis.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbis.Tpo -c -o libgstvorbis_la-gstvorbis.lo `test -f 'gstvorbis.c' || echo '$(srcdir)/'`gstvorbis.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbis.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbis.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbis.c' object='libgstvorbis_la-gstvorbis.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbis.c' object='libgstvorbis_la-gstvorbis.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbis.lo `test -f 'gstvorbis.c' || echo '$(srcdir)/'`gstvorbis.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbis.lo `test -f 'gstvorbis.c' || echo '$(srcdir)/'`gstvorbis.c
 
 libgstvorbis_la-gstvorbisdec.lo: gstvorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisdec.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisdec.Tpo -c -o libgstvorbis_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisdec.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisdec.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbisdec.c' object='libgstvorbis_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbisdec.c' object='libgstvorbis_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
 
 libgstvorbis_la-gstvorbisdeclib.lo: gstvorbisdeclib.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisdeclib.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisdeclib.Tpo -c -o libgstvorbis_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisdeclib.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisdeclib.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbisdeclib.c' object='libgstvorbis_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbisdeclib.c' object='libgstvorbis_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
 
 libgstvorbis_la-gstvorbisenc.lo: gstvorbisenc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisenc.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisenc.Tpo -c -o libgstvorbis_la-gstvorbisenc.lo `test -f 'gstvorbisenc.c' || echo '$(srcdir)/'`gstvorbisenc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisenc.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisenc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbisenc.c' object='libgstvorbis_la-gstvorbisenc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbisenc.c' object='libgstvorbis_la-gstvorbisenc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisenc.lo `test -f 'gstvorbisenc.c' || echo '$(srcdir)/'`gstvorbisenc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisenc.lo `test -f 'gstvorbisenc.c' || echo '$(srcdir)/'`gstvorbisenc.c
 
 libgstvorbis_la-gstvorbisparse.lo: gstvorbisparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisparse.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisparse.Tpo -c -o libgstvorbis_la-gstvorbisparse.lo `test -f 'gstvorbisparse.c' || echo '$(srcdir)/'`gstvorbisparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisparse.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbisparse.c' object='libgstvorbis_la-gstvorbisparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbisparse.c' object='libgstvorbis_la-gstvorbisparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisparse.lo `test -f 'gstvorbisparse.c' || echo '$(srcdir)/'`gstvorbisparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisparse.lo `test -f 'gstvorbisparse.c' || echo '$(srcdir)/'`gstvorbisparse.c
 
 libgstvorbis_la-gstvorbistag.lo: gstvorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbistag.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbistag.Tpo -c -o libgstvorbis_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbistag.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbistag.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbistag.c' object='libgstvorbis_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbistag.c' object='libgstvorbis_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
 
 libgstvorbis_la-gstvorbiscommon.lo: gstvorbiscommon.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbiscommon.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbiscommon.Tpo -c -o libgstvorbis_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbiscommon.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbiscommon.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbiscommon.c' object='libgstvorbis_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbiscommon.c' object='libgstvorbis_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -807,10 +811,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 645c27d..f476d45 100644 (file)
@@ -64,38 +64,26 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_STATIC_CAPS ("audio/x-vorbis")
     );
 
-GST_BOILERPLATE (GST_VORBIS_DEC_GLIB_TYPE_NAME, gst_vorbis_dec, GstElement,
-    GST_TYPE_ELEMENT);
+GST_BOILERPLATE (GstVorbisDec, gst_vorbis_dec, GstAudioDecoder,
+    GST_TYPE_AUDIO_DECODER);
 
 static void vorbis_dec_finalize (GObject * object);
-static gboolean vorbis_dec_sink_event (GstPad * pad, GstEvent * event);
-static GstFlowReturn vorbis_dec_chain (GstPad * pad, GstBuffer * buffer);
-static GstFlowReturn vorbis_dec_chain_forward (GstVorbisDec * vd,
-    gboolean discont, GstBuffer * buffer);
-static GstFlowReturn vorbis_dec_chain_reverse (GstVorbisDec * vd,
-    gboolean discont, GstBuffer * buf);
-static GstStateChangeReturn vorbis_dec_change_state (GstElement * element,
-    GstStateChange transition);
-
-static gboolean vorbis_dec_src_event (GstPad * pad, GstEvent * event);
-static gboolean vorbis_dec_src_query (GstPad * pad, GstQuery * query);
-static gboolean vorbis_dec_convert (GstPad * pad,
-    GstFormat src_format, gint64 src_value,
-    GstFormat * dest_format, gint64 * dest_value);
-
-static gboolean vorbis_dec_sink_query (GstPad * pad, GstQuery * query);
+
+static gboolean vorbis_dec_start (GstAudioDecoder * dec);
+static gboolean vorbis_dec_stop (GstAudioDecoder * dec);
+static GstFlowReturn vorbis_dec_handle_frame (GstAudioDecoder * dec,
+    GstBuffer * buffer);
+static void vorbis_dec_flush (GstAudioDecoder * dec, gboolean hard);
 
 static void
 gst_vorbis_dec_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-  GstPadTemplate *src_template, *sink_template;
-
-  src_template = gst_static_pad_template_get (&vorbis_dec_src_factory);
-  gst_element_class_add_pad_template (element_class, src_template);
 
-  sink_template = gst_static_pad_template_get (&vorbis_dec_sink_factory);
-  gst_element_class_add_pad_template (element_class, sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_dec_sink_factory);
 
   gst_element_class_set_details_simple (element_class,
       "Vorbis audio decoder", "Codec/Decoder/Audio",
@@ -107,55 +95,19 @@ static void
 gst_vorbis_dec_class_init (GstVorbisDecClass * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+  GstAudioDecoderClass *base_class = GST_AUDIO_DECODER_CLASS (klass);
 
   gobject_class->finalize = vorbis_dec_finalize;
 
-  gstelement_class->change_state = GST_DEBUG_FUNCPTR (vorbis_dec_change_state);
-}
-
-static const GstQueryType *
-vorbis_get_query_types (GstPad * pad)
-{
-  static const GstQueryType vorbis_dec_src_query_types[] = {
-    GST_QUERY_POSITION,
-    GST_QUERY_DURATION,
-    GST_QUERY_CONVERT,
-    0
-  };
-
-  return vorbis_dec_src_query_types;
+  base_class->start = GST_DEBUG_FUNCPTR (vorbis_dec_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (vorbis_dec_stop);
+  base_class->handle_frame = GST_DEBUG_FUNCPTR (vorbis_dec_handle_frame);
+  base_class->flush = GST_DEBUG_FUNCPTR (vorbis_dec_flush);
 }
 
 static void
 gst_vorbis_dec_init (GstVorbisDec * dec, GstVorbisDecClass * g_class)
 {
-  dec->sinkpad = gst_pad_new_from_static_template (&vorbis_dec_sink_factory,
-      "sink");
-
-  gst_pad_set_event_function (dec->sinkpad,
-      GST_DEBUG_FUNCPTR (vorbis_dec_sink_event));
-  gst_pad_set_chain_function (dec->sinkpad,
-      GST_DEBUG_FUNCPTR (vorbis_dec_chain));
-  gst_pad_set_query_function (dec->sinkpad,
-      GST_DEBUG_FUNCPTR (vorbis_dec_sink_query));
-  gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
-
-  dec->srcpad = gst_pad_new_from_static_template (&vorbis_dec_src_factory,
-      "src");
-
-  gst_pad_set_event_function (dec->srcpad,
-      GST_DEBUG_FUNCPTR (vorbis_dec_src_event));
-  gst_pad_set_query_type_function (dec->srcpad,
-      GST_DEBUG_FUNCPTR (vorbis_get_query_types));
-  gst_pad_set_query_function (dec->srcpad,
-      GST_DEBUG_FUNCPTR (vorbis_dec_src_query));
-  gst_pad_use_fixed_caps (dec->srcpad);
-  gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
-
-  dec->queued = NULL;
-  dec->pendingevents = NULL;
-  dec->taglist = NULL;
 }
 
 static void
@@ -169,7 +121,6 @@ vorbis_dec_finalize (GObject * object)
 #ifndef USE_TREMOLO
   vorbis_block_clear (&vd->vb);
 #endif
-
   vorbis_dsp_clear (&vd->vd);
   vorbis_comment_clear (&vd->vc);
   vorbis_info_clear (&vd->vi);
@@ -180,232 +131,44 @@ vorbis_dec_finalize (GObject * object)
 static void
 gst_vorbis_dec_reset (GstVorbisDec * dec)
 {
-  dec->last_timestamp = GST_CLOCK_TIME_NONE;
-  dec->discont = TRUE;
-  dec->seqnum = gst_util_seqnum_next ();
-  gst_segment_init (&dec->segment, GST_FORMAT_TIME);
-
-  g_list_foreach (dec->queued, (GFunc) gst_mini_object_unref, NULL);
-  g_list_free (dec->queued);
-  dec->queued = NULL;
-  g_list_foreach (dec->gather, (GFunc) gst_mini_object_unref, NULL);
-  g_list_free (dec->gather);
-  dec->gather = NULL;
-  g_list_foreach (dec->decode, (GFunc) gst_mini_object_unref, NULL);
-  g_list_free (dec->decode);
-  dec->decode = NULL;
-  g_list_foreach (dec->pendingevents, (GFunc) gst_mini_object_unref, NULL);
-  g_list_free (dec->pendingevents);
-  dec->pendingevents = NULL;
-
   if (dec->taglist)
     gst_tag_list_free (dec->taglist);
   dec->taglist = NULL;
 }
 
-
 static gboolean
-vorbis_dec_convert (GstPad * pad,
-    GstFormat src_format, gint64 src_value,
-    GstFormat * dest_format, gint64 * dest_value)
+vorbis_dec_start (GstAudioDecoder * dec)
 {
-  gboolean res = TRUE;
-  GstVorbisDec *dec;
-  guint64 scale = 1;
-
-  if (src_format == *dest_format) {
-    *dest_value = src_value;
-    return TRUE;
-  }
+  GstVorbisDec *vd = GST_VORBIS_DEC (dec);
 
-  dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
+  GST_DEBUG_OBJECT (dec, "start");
+  vorbis_info_init (&vd->vi);
+  vorbis_comment_init (&vd->vc);
+  vd->initialized = FALSE;
+  gst_vorbis_dec_reset (vd);
 
-  if (!dec->initialized)
-    goto no_header;
-
-  if (dec->sinkpad == pad &&
-      (src_format == GST_FORMAT_BYTES || *dest_format == GST_FORMAT_BYTES))
-    goto no_format;
-
-  switch (src_format) {
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          scale = dec->width * dec->vi.channels;
-        case GST_FORMAT_DEFAULT:
-          *dest_value =
-              scale * gst_util_uint64_scale_int (src_value, dec->vi.rate,
-              GST_SECOND);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_DEFAULT:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = src_value * dec->width * dec->vi.channels;
-          break;
-        case GST_FORMAT_TIME:
-          *dest_value =
-              gst_util_uint64_scale_int (src_value, GST_SECOND, dec->vi.rate);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_DEFAULT:
-          *dest_value = src_value / (dec->width * dec->vi.channels);
-          break;
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND,
-              dec->vi.rate * dec->width * dec->vi.channels);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-done:
-  gst_object_unref (dec);
-
-  return res;
-
-  /* ERRORS */
-no_header:
-  {
-    GST_DEBUG_OBJECT (dec, "no header packets received");
-    res = FALSE;
-    goto done;
-  }
-no_format:
-  {
-    GST_DEBUG_OBJECT (dec, "formats unsupported");
-    res = FALSE;
-    goto done;
-  }
+  return TRUE;
 }
 
 static gboolean
-vorbis_dec_src_query (GstPad * pad, GstQuery * query)
+vorbis_dec_stop (GstAudioDecoder * dec)
 {
-  GstVorbisDec *dec;
-  gboolean res = FALSE;
-
-  dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (dec == NULL))
-    return FALSE;
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_POSITION:
-    {
-      gint64 value;
-      GstFormat format;
-      gint64 time;
-
-      gst_query_parse_position (query, &format, NULL);
-
-      /* we start from the last seen time */
-      time = dec->last_timestamp;
-      /* correct for the segment values */
-      time = gst_segment_to_stream_time (&dec->segment, GST_FORMAT_TIME, time);
-
-      GST_LOG_OBJECT (dec,
-          "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
-
-      /* and convert to the final format */
-      if (!(res =
-              vorbis_dec_convert (pad, GST_FORMAT_TIME, time, &format, &value)))
-        goto error;
-
-      gst_query_set_position (query, format, value);
-
-      GST_LOG_OBJECT (dec,
-          "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value,
-          format);
-
-      break;
-    }
-    case GST_QUERY_DURATION:
-    {
-      res = gst_pad_peer_query (dec->sinkpad, query);
-      if (!res)
-        goto error;
-
-      break;
-    }
-    case GST_QUERY_CONVERT:
-    {
-      GstFormat src_fmt, dest_fmt;
-      gint64 src_val, dest_val;
-
-      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res =
-              vorbis_dec_convert (pad, src_fmt, src_val, &dest_fmt, &dest_val)))
-        goto error;
-      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, query);
-      break;
-  }
-done:
-  gst_object_unref (dec);
-
-  return res;
-
-  /* ERRORS */
-error:
-  {
-    GST_WARNING_OBJECT (dec, "error handling query");
-    goto done;
-  }
-}
+  GstVorbisDec *vd = GST_VORBIS_DEC (dec);
 
-static gboolean
-vorbis_dec_sink_query (GstPad * pad, GstQuery * query)
-{
-  GstVorbisDec *dec;
-  gboolean res;
-
-  dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_CONVERT:
-    {
-      GstFormat src_fmt, dest_fmt;
-      gint64 src_val, dest_val;
-
-      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res =
-              vorbis_dec_convert (pad, src_fmt, src_val, &dest_fmt, &dest_val)))
-        goto error;
-      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, query);
-      break;
-  }
-
-done:
-  gst_object_unref (dec);
-
-  return res;
+  GST_DEBUG_OBJECT (dec, "stop");
+  vd->initialized = FALSE;
+#ifndef USE_TREMOLO
+  vorbis_block_clear (&vd->vb);
+#endif
+  vorbis_dsp_clear (&vd->vd);
+  vorbis_comment_clear (&vd->vc);
+  vorbis_info_clear (&vd->vi);
+  gst_vorbis_dec_reset (vd);
 
-  /* ERRORS */
-error:
-  {
-    GST_DEBUG_OBJECT (dec, "error converting value");
-    goto done;
-  }
+  return TRUE;
 }
 
+#if 0
 static gboolean
 vorbis_dec_src_event (GstPad * pad, GstEvent * event)
 {
@@ -413,10 +176,6 @@ vorbis_dec_src_event (GstPad * pad, GstEvent * event)
   GstVorbisDec *dec;
 
   dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (dec == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:
@@ -466,96 +225,7 @@ convert_error:
     goto done;
   }
 }
-
-static gboolean
-vorbis_dec_sink_event (GstPad * pad, GstEvent * event)
-{
-  gboolean ret = FALSE;
-  GstVorbisDec *dec;
-
-  dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-
-  GST_LOG_OBJECT (dec, "handling event");
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_EOS:
-      if (dec->segment.rate < 0.0)
-        vorbis_dec_chain_reverse (dec, TRUE, NULL);
-      ret = gst_pad_push_event (dec->srcpad, event);
-      break;
-    case GST_EVENT_FLUSH_START:
-      ret = gst_pad_push_event (dec->srcpad, event);
-      break;
-    case GST_EVENT_FLUSH_STOP:
-      /* here we must clean any state in the decoder */
-#ifdef HAVE_VORBIS_SYNTHESIS_RESTART
-      vorbis_synthesis_restart (&dec->vd);
 #endif
-      gst_vorbis_dec_reset (dec);
-      ret = gst_pad_push_event (dec->srcpad, event);
-      break;
-    case GST_EVENT_NEWSEGMENT:
-    {
-      GstFormat format;
-      gdouble rate, arate;
-      gint64 start, stop, time;
-      gboolean update;
-
-      gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
-          &start, &stop, &time);
-
-      /* we need time for now */
-      if (format != GST_FORMAT_TIME)
-        goto newseg_wrong_format;
-
-      GST_DEBUG_OBJECT (dec,
-          "newsegment: update %d, rate %g, arate %g, start %" GST_TIME_FORMAT
-          ", stop %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT,
-          update, rate, arate, GST_TIME_ARGS (start), GST_TIME_ARGS (stop),
-          GST_TIME_ARGS (time));
-
-      /* now configure the values */
-      gst_segment_set_newsegment_full (&dec->segment, update,
-          rate, arate, format, start, stop, time);
-      dec->seqnum = gst_event_get_seqnum (event);
-
-      if (dec->initialized)
-        /* and forward */
-        ret = gst_pad_push_event (dec->srcpad, event);
-      else {
-        /* store it to send once we're initialized */
-        dec->pendingevents = g_list_append (dec->pendingevents, event);
-        ret = TRUE;
-      }
-      break;
-    }
-    case GST_EVENT_TAG:
-    {
-      if (dec->initialized)
-        /* and forward */
-        ret = gst_pad_push_event (dec->srcpad, event);
-      else {
-        /* store it to send once we're initialized */
-        dec->pendingevents = g_list_append (dec->pendingevents, event);
-        ret = TRUE;
-      }
-      break;
-    }
-    default:
-      ret = gst_pad_push_event (dec->srcpad, event);
-      break;
-  }
-done:
-  gst_object_unref (dec);
-
-  return ret;
-
-  /* ERRORS */
-newseg_wrong_format:
-  {
-    GST_DEBUG_OBJECT (dec, "received non TIME newsegment");
-    goto done;
-  }
-}
 
 static GstFlowReturn
 vorbis_handle_identification_packet (GstVorbisDec * vd)
@@ -593,7 +263,7 @@ vorbis_handle_identification_packet (GstVorbisDec * vd)
   }
 
   /* negotiate width with downstream */
-  caps = gst_pad_get_allowed_caps (vd->srcpad);
+  caps = gst_pad_get_allowed_caps (GST_AUDIO_DECODER_SRC_PAD (vd));
   if (caps) {
     if (!gst_caps_is_empty (caps)) {
       GstStructure *s;
@@ -613,10 +283,11 @@ vorbis_handle_identification_packet (GstVorbisDec * vd)
    * for mono/stereo and avoid the depth switch in tremor case */
   vd->copy_samples = get_copy_sample_func (vd->vi.channels, vd->width);
 
-  caps = gst_caps_copy (gst_pad_get_pad_template_caps (vd->srcpad));
-  gst_caps_set_simple (caps, "rate", G_TYPE_INT, vd->vi.rate,
-      "channels", G_TYPE_INT, vd->vi.channels,
-      "width", G_TYPE_INT, width, NULL);
+  caps =
+      gst_caps_copy (gst_pad_get_pad_template_caps
+      (GST_AUDIO_DECODER_SRC_PAD (vd)));
+  gst_caps_set_simple (caps, "rate", G_TYPE_INT, vd->vi.rate, "channels",
+      G_TYPE_INT, vd->vi.channels, "width", G_TYPE_INT, width, NULL);
 
   if (pos) {
     gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos);
@@ -626,7 +297,7 @@ vorbis_handle_identification_packet (GstVorbisDec * vd)
     g_free ((GstAudioChannelPosition *) pos);
   }
 
-  gst_pad_set_caps (vd->srcpad, caps);
+  gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (vd), caps);
   gst_caps_unref (caps);
 
   return GST_FLOW_OK;
@@ -694,8 +365,8 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet)
   }
 
   if (vd->initialized) {
-    gst_element_found_tags_for_pad (GST_ELEMENT_CAST (vd), vd->srcpad,
-        vd->taglist);
+    gst_element_found_tags_for_pad (GST_ELEMENT_CAST (vd),
+        GST_AUDIO_DECODER_SRC_PAD (vd), vd->taglist);
     vd->taglist = NULL;
   } else {
     /* Only post them as messages for the time being. *
@@ -710,7 +381,6 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet)
 static GstFlowReturn
 vorbis_handle_type_packet (GstVorbisDec * vd)
 {
-  GList *walk;
   gint res;
 
   g_assert (vd->initialized == FALSE);
@@ -728,16 +398,10 @@ vorbis_handle_type_packet (GstVorbisDec * vd)
 
   vd->initialized = TRUE;
 
-  if (vd->pendingevents) {
-    for (walk = vd->pendingevents; walk; walk = g_list_next (walk))
-      gst_pad_push_event (vd->srcpad, GST_EVENT_CAST (walk->data));
-    g_list_free (vd->pendingevents);
-    vd->pendingevents = NULL;
-  }
-
   if (vd->taglist) {
     /* The tags have already been sent on the bus as messages. */
-    gst_pad_push_event (vd->srcpad, gst_event_new_tag (vd->taglist));
+    gst_pad_push_event (GST_AUDIO_DECODER_SRC_PAD (vd),
+        gst_event_new_tag (vd->taglist));
     vd->taglist = NULL;
   }
   return GST_FLOW_OK;
@@ -791,6 +455,7 @@ vorbis_handle_header_packet (GstVorbisDec * vd, ogg_packet * packet)
       res = GST_FLOW_OK;
       break;
   }
+
   return res;
 
   /* ERRORS */
@@ -803,72 +468,67 @@ header_read_error:
 }
 
 static GstFlowReturn
-vorbis_dec_push_forward (GstVorbisDec * dec, GstBuffer * buf)
+vorbis_dec_handle_header_buffer (GstVorbisDec * vd, GstBuffer * buffer)
 {
-  GstFlowReturn result;
-
-  /* clip */
-  if (!(buf = gst_audio_buffer_clip (buf, &dec->segment, dec->vi.rate,
-              dec->vi.channels * dec->width))) {
-    GST_LOG_OBJECT (dec, "clipped buffer");
-    return GST_FLOW_OK;
-  }
-
-  if (dec->discont) {
-    GST_LOG_OBJECT (dec, "setting DISCONT");
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
-    dec->discont = FALSE;
-  }
-
-  GST_DEBUG_OBJECT (dec,
-      "pushing time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
-      GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+  ogg_packet *packet;
+  ogg_packet_wrapper packet_wrapper;
 
-  result = gst_pad_push (dec->srcpad, buf);
+  gst_ogg_packet_wrapper_from_buffer (&packet_wrapper, buffer);
+  packet = gst_ogg_packet_from_wrapper (&packet_wrapper);
 
-  return result;
+  return vorbis_handle_header_packet (vd, packet);
 }
 
+#define MIN_NUM_HEADERS 3
 static GstFlowReturn
-vorbis_dec_push_reverse (GstVorbisDec * dec, GstBuffer * buf)
+vorbis_dec_handle_header_caps (GstVorbisDec * vd)
 {
   GstFlowReturn result = GST_FLOW_OK;
+  GstCaps *caps;
+  GstStructure *s = NULL;
+  const GValue *array = NULL;
+
+  caps = GST_PAD_CAPS (GST_AUDIO_DECODER_SINK_PAD (vd));
+  if (caps)
+    s = gst_caps_get_structure (caps, 0);
+  if (s)
+    array = gst_structure_get_value (s, "streamheader");
+
+  if (array && (gst_value_array_get_size (array) >= MIN_NUM_HEADERS)) {
+    const GValue *value = NULL;
+    GstBuffer *buf = NULL;
+    gint i = 0;
+
+    while (result == GST_FLOW_OK && i < gst_value_array_get_size (array)) {
+      value = gst_value_array_get_value (array, i);
+      buf = gst_value_get_buffer (value);
+      if (!buf)
+        goto null_buffer;
+      result = vorbis_dec_handle_header_buffer (vd, buf);
+      i++;
+    }
+  } else
+    goto array_error;
 
-  dec->queued = g_list_prepend (dec->queued, buf);
-
-  return result;
-}
+done:
+  return (result != GST_FLOW_OK ? GST_FLOW_NOT_NEGOTIATED : GST_FLOW_OK);
 
-static void
-vorbis_do_timestamps (GstVorbisDec * vd, GstBuffer * buf, gboolean reverse,
-    GstClockTime timestamp, GstClockTime duration)
-{
-  /* interpolate reverse */
-  if (vd->last_timestamp != -1 && duration != -1 && reverse)
-    vd->last_timestamp -= duration;
-
-  /* take buffer timestamp, use interpolated timestamp otherwise */
-  if (timestamp != -1)
-    vd->last_timestamp = timestamp;
-  else
-    timestamp = vd->last_timestamp;
-
-  /* interpolate forwards */
-  if (vd->last_timestamp != -1 && duration != -1 && !reverse)
-    vd->last_timestamp += duration;
-
-  GST_LOG_OBJECT (vd,
-      "keeping timestamp %" GST_TIME_FORMAT " ts %" GST_TIME_FORMAT " dur %"
-      GST_TIME_FORMAT, GST_TIME_ARGS (vd->last_timestamp),
-      GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration));
-
-  if (buf) {
-    GST_BUFFER_TIMESTAMP (buf) = timestamp;
-    GST_BUFFER_DURATION (buf) = duration;
+  /* ERRORS */
+array_error:
+  {
+    GST_WARNING_OBJECT (vd, "streamheader array not found");
+    result = GST_FLOW_ERROR;
+    goto done;
+  }
+null_buffer:
+  {
+    GST_WARNING_OBJECT (vd, "streamheader with null buffer received");
+    result = GST_FLOW_ERROR;
+    goto done;
   }
 }
 
+
 static GstFlowReturn
 vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
     GstClockTime timestamp, GstClockTime duration)
@@ -883,13 +543,16 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
   GstFlowReturn result;
   gint size;
 
-  if (G_UNLIKELY (!vd->initialized))
-    goto not_initialized;
+  if (G_UNLIKELY (!vd->initialized)) {
+    result = vorbis_dec_handle_header_caps (vd);
+    if (result != GST_FLOW_OK)
+      goto not_initialized;
+  }
 
   /* normal data packet */
   /* FIXME, we can skip decoding if the packet is outside of the
    * segment, this is however not very trivial as we need a previous
-   * packet to decode the current one so we must be carefull not to
+   * packet to decode the current one so we must be careful not to
    * throw away too much. For now we decode everything and clip right
    * before pushing data. */
 
@@ -912,8 +575,8 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
   if ((sample_count = vorbis_dsp_pcmout (&vd->vd, NULL, 0)) == 0)
 #else
   if ((sample_count = vorbis_synthesis_pcmout (&vd->vd, NULL)) == 0)
-#endif
     goto done;
+#endif
 
   size = sample_count * vd->vi.channels * vd->width;
   GST_LOG_OBJECT (vd, "%d samples ready for reading, size %d", sample_count,
@@ -921,17 +584,19 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
 
   /* alloc buffer for it */
   result =
-      gst_pad_alloc_buffer_and_set_caps (vd->srcpad, GST_BUFFER_OFFSET_NONE,
-      size, GST_PAD_CAPS (vd->srcpad), &out);
+      gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD (vd),
+      GST_BUFFER_OFFSET_NONE, size,
+      GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (vd)), &out);
   if (G_UNLIKELY (result != GST_FLOW_OK))
     goto done;
 
   /* get samples ready for reading now, should be sample_count */
 #ifdef USE_TREMOLO
   pcm = GST_BUFFER_DATA (out);
-  if (G_UNLIKELY ((vorbis_dsp_pcmout (&vd->vd, pcm, sample_count)) != sample_count))
+  if (G_UNLIKELY (vorbis_dsp_pcmout (&vd->vd, pcm, sample_count) !=
+          sample_count))
 #else
-  if (G_UNLIKELY ((vorbis_synthesis_pcmout (&vd->vd, &pcm)) != sample_count))
+  if (G_UNLIKELY (vorbis_synthesis_pcmout (&vd->vd, &pcm) != sample_count))
 #endif
     goto wrong_samples;
 
@@ -944,22 +609,9 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
   GST_LOG_OBJECT (vd, "setting output size to %d", size);
   GST_BUFFER_SIZE (out) = size;
 
-  /* this should not overflow */
-  if (duration == -1)
-    duration = sample_count * GST_SECOND / vd->vi.rate;
-
-  vorbis_do_timestamps (vd, out, FALSE, timestamp, duration);
-
-  if (vd->segment.rate >= 0.0)
-    result = vorbis_dec_push_forward (vd, out);
-  else
-    result = vorbis_dec_push_reverse (vd, out);
-
 done:
-  if (out == NULL) {
-    /* no output, still keep track of timestamps */
-    vorbis_do_timestamps (vd, NULL, FALSE, timestamp, duration);
-  }
+  /* whether or not data produced, consume one frame and advance time */
+  result = gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (vd), out, 1);
 
 #ifdef USE_TREMOLO
   vorbis_dsp_read (&vd->vd, sample_count);
@@ -974,7 +626,7 @@ not_initialized:
   {
     GST_ELEMENT_ERROR (GST_ELEMENT (vd), STREAM, DECODE,
         (NULL), ("no header sent yet"));
-    return GST_FLOW_ERROR;
+    return GST_FLOW_NOT_NEGOTIATED;
   }
 could_not_read:
   {
@@ -998,11 +650,16 @@ wrong_samples:
 }
 
 static GstFlowReturn
-vorbis_dec_decode_buffer (GstVorbisDec * vd, GstBuffer * buffer)
+vorbis_dec_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer)
 {
   ogg_packet *packet;
   ogg_packet_wrapper packet_wrapper;
   GstFlowReturn result = GST_FLOW_OK;
+  GstVorbisDec *vd = GST_VORBIS_DEC (dec);
+
+  /* no draining etc */
+  if (G_UNLIKELY (!buffer))
+    return GST_FLOW_OK;
 
   /* make ogg_packet out of the buffer */
   gst_ogg_packet_wrapper_from_buffer (&packet_wrapper, buffer);
@@ -1031,6 +688,8 @@ vorbis_dec_decode_buffer (GstVorbisDec * vd, GstBuffer * buffer)
       goto done;
     }
     result = vorbis_handle_header_packet (vd, packet);
+    /* consumer header packet/frame */
+    gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (vd), NULL, 1);
   } else {
     GstClockTime timestamp, duration;
 
@@ -1057,245 +716,19 @@ empty_header:
   {
     GST_ELEMENT_ERROR (vd, STREAM, DECODE, (NULL), ("empty header received"));
     result = GST_FLOW_ERROR;
-    vd->discont = TRUE;
     goto done;
   }
 }
 
-/*
- * Input:
- *  Buffer decoding order:  7  8  9  4  5  6  3  1  2  EOS
- *  Discont flag:           D        D        D  D
- *
- * - Each Discont marks a discont in the decoding order.
- *
- * for vorbis, each buffer is a keyframe when we have the previous
- * buffer. This means that to decode buffer 7, we need buffer 6, which
- * arrives out of order.
- *
- * we first gather buffers in the gather queue until we get a DISCONT. We
- * prepend each incomming buffer so that they are in reversed order.
- *
- *    gather queue:    9  8  7
- *    decode queue:
- *    output queue:
- *
- * When a DISCONT is received (buffer 4), we move the gather queue to the
- * decode queue. This is simply done be taking the head of the gather queue
- * and prepending it to the decode queue. This yields:
- *
- *    gather queue:
- *    decode queue:    7  8  9
- *    output queue:
- *
- * Then we decode each buffer in the decode queue in order and put the output
- * buffer in the output queue. The first buffer (7) will not produce any output
- * because it needs the previous buffer (6) which did not arrive yet. This
- * yields:
- *
- *    gather queue:
- *    decode queue:    7  8  9
- *    output queue:    9  8
- *
- * Then we remove the consumed buffers from the decode queue. Buffer 7 is not
- * completely consumed, we need to keep it around for when we receive buffer
- * 6. This yields:
- *
- *    gather queue:
- *    decode queue:    7
- *    output queue:    9  8
- *
- * Then we accumulate more buffers:
- *
- *    gather queue:    6  5  4
- *    decode queue:    7
- *    output queue:
- *
- * prepending to the decode queue on DISCONT yields:
- *
- *    gather queue:
- *    decode queue:    4  5  6  7
- *    output queue:
- *
- * after decoding and keeping buffer 4:
- *
- *    gather queue:
- *    decode queue:    4
- *    output queue:    7  6  5
- *
- * Etc..
- */
-static GstFlowReturn
-vorbis_dec_flush_decode (GstVorbisDec * dec)
-{
-  GstFlowReturn res = GST_FLOW_OK;
-  GList *walk;
-
-  walk = dec->decode;
-
-  GST_DEBUG_OBJECT (dec, "flushing buffers to decoder");
-
-  while (walk) {
-    GList *next;
-    GstBuffer *buf = GST_BUFFER_CAST (walk->data);
-
-    GST_DEBUG_OBJECT (dec, "decoding buffer %p, ts %" GST_TIME_FORMAT,
-        buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
-
-    next = g_list_next (walk);
-
-    /* decode buffer, prepend to output queue */
-    res = vorbis_dec_decode_buffer (dec, buf);
-
-    /* if we generated output, we can discard the buffer, else we
-     * keep it in the queue */
-    if (dec->queued) {
-      GST_DEBUG_OBJECT (dec, "decoded buffer to %p", dec->queued->data);
-      dec->decode = g_list_delete_link (dec->decode, walk);
-      gst_buffer_unref (buf);
-    } else {
-      GST_DEBUG_OBJECT (dec, "buffer did not decode, keeping");
-    }
-    walk = next;
-  }
-  while (dec->queued) {
-    GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
-    GstClockTime timestamp, duration;
-
-    timestamp = GST_BUFFER_TIMESTAMP (buf);
-    duration = GST_BUFFER_DURATION (buf);
-
-    vorbis_do_timestamps (dec, buf, TRUE, timestamp, duration);
-    res = vorbis_dec_push_forward (dec, buf);
-
-    dec->queued = g_list_delete_link (dec->queued, dec->queued);
-  }
-  return res;
-}
-
-static GstFlowReturn
-vorbis_dec_chain_reverse (GstVorbisDec * vd, gboolean discont, GstBuffer * buf)
-{
-  GstFlowReturn result = GST_FLOW_OK;
-
-  /* if we have a discont, move buffers to the decode list */
-  if (G_UNLIKELY (discont)) {
-    GST_DEBUG_OBJECT (vd, "received discont");
-    while (vd->gather) {
-      GstBuffer *gbuf;
-
-      gbuf = GST_BUFFER_CAST (vd->gather->data);
-      /* remove from the gather list */
-      vd->gather = g_list_delete_link (vd->gather, vd->gather);
-      /* copy to decode queue */
-      vd->decode = g_list_prepend (vd->decode, gbuf);
-    }
-    /* flush and decode the decode queue */
-    result = vorbis_dec_flush_decode (vd);
-  }
-
-  if (G_LIKELY (buf)) {
-    GST_DEBUG_OBJECT (vd,
-        "gathering buffer %p of size %u, time %" GST_TIME_FORMAT
-        ", dur %" GST_TIME_FORMAT, buf, GST_BUFFER_SIZE (buf),
-        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
-        GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
-
-    /* add buffer to gather queue */
-    vd->gather = g_list_prepend (vd->gather, buf);
-  }
-
-  return result;
-}
-
-static GstFlowReturn
-vorbis_dec_chain_forward (GstVorbisDec * vd, gboolean discont,
-    GstBuffer * buffer)
-{
-  GstFlowReturn result;
-
-  result = vorbis_dec_decode_buffer (vd, buffer);
-
-  gst_buffer_unref (buffer);
-
-  return result;
-}
-
-static GstFlowReturn
-vorbis_dec_chain (GstPad * pad, GstBuffer * buffer)
+static void
+vorbis_dec_flush (GstAudioDecoder * dec, gboolean hard)
 {
-  GstVorbisDec *vd;
-  GstFlowReturn result = GST_FLOW_OK;
-  gboolean discont;
-
-  vd = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-
-  discont = GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT);
+  GstVorbisDec *vd = GST_VORBIS_DEC (dec);
 
-  /* resync on DISCONT */
-  if (G_UNLIKELY (discont)) {
-    GST_DEBUG_OBJECT (vd, "received DISCONT buffer");
-    vd->last_timestamp = GST_CLOCK_TIME_NONE;
 #ifdef HAVE_VORBIS_SYNTHESIS_RESTART
-    vorbis_synthesis_restart (&vd->vd);
-#endif
-    vd->discont = TRUE;
-  }
-
-  if (vd->segment.rate >= 0.0)
-    result = vorbis_dec_chain_forward (vd, discont, buffer);
-  else
-    result = vorbis_dec_chain_reverse (vd, discont, buffer);
-
-  gst_object_unref (vd);
-
-  return result;
-}
-
-static GstStateChangeReturn
-vorbis_dec_change_state (GstElement * element, GstStateChange transition)
-{
-  GstVorbisDec *vd = GST_VORBIS_DEC (element);
-  GstStateChangeReturn res;
-
-  switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      break;
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      vorbis_info_init (&vd->vi);
-      vorbis_comment_init (&vd->vc);
-      vd->initialized = FALSE;
-      gst_vorbis_dec_reset (vd);
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      break;
-    default:
-      break;
-  }
-
-  res = parent_class->change_state (element, transition);
-
-  switch (transition) {
-    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      GST_DEBUG_OBJECT (vd, "PAUSED -> READY, clearing vorbis structures");
-      vd->initialized = FALSE;
-
-#ifndef USE_TREMOLO
-      vorbis_block_clear (&vd->vb);
+  vorbis_synthesis_restart (&vd->vd);
 #endif
 
-      vorbis_dsp_clear (&vd->vd);
-      vorbis_comment_clear (&vd->vc);
-      vorbis_info_clear (&vd->vi);
-      gst_vorbis_dec_reset (vd);
-      break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
-      break;
-    default:
-      break;
-  }
-
-  return res;
+  if (hard)
+    gst_vorbis_dec_reset (vd);
 }
index 04e4677..56f9ca4 100644 (file)
@@ -27,6 +27,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/audio/gstaudiodecoder.h>
 #include "gstvorbisdeclib.h"
 
 G_BEGIN_DECLS
@@ -51,15 +52,11 @@ typedef struct _GstVorbisDecClass GstVorbisDecClass;
  * Opaque data structure.
  */
 struct _GstVorbisDec {
-  GstElement        element;
-
-  GstPad           *sinkpad;
-  GstPad           *srcpad;
+  GstAudioDecoder element;
 
   vorbis_dsp_state  vd;
   vorbis_info       vi;
   vorbis_comment    vc;
-
 #ifndef USE_TREMOLO
   vorbis_block      vb;
 #endif
@@ -67,26 +64,13 @@ struct _GstVorbisDec {
   gboolean          initialized;
   guint             width;
 
-  /* list of buffers that need timestamps */
-  GList            *queued;
-  /* gather/decode queues for reverse playback */
-  GList            *gather;
-  GList            *decode;
-
-  GstSegment        segment;
-  gboolean          discont;
-  guint32           seqnum;
-
-  GstClockTime      last_timestamp;
-
-  GList            *pendingevents;
   GstTagList       *taglist;
-  
+
   CopySampleFunc    copy_samples;
 };
 
 struct _GstVorbisDecClass {
-  GstElementClass parent_class;
+  GstAudioDecoderClass parent_class;
 };
 
 GType gst_vorbis_dec_get_type(void);
index 9cdf484..dabedc6 100644 (file)
@@ -65,7 +65,7 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-raw-float, "
         "rate = (int) [ 1, 200000 ], "
-        "channels = (int) [ 1, 256 ], " "endianness = (int) BYTE_ORDER, "
+        "channels = (int) [ 1, 255 ], " "endianness = (int) BYTE_ORDER, "
         "width = (int) 32")
     );
 
@@ -89,28 +89,6 @@ enum
 
 static GstFlowReturn gst_vorbis_enc_output_buffers (GstVorbisEnc * vorbisenc);
 
-/* this function takes into account the granulepos_offset and the subgranule
- * time offset */
-static GstClockTime
-granulepos_to_timestamp_offset (GstVorbisEnc * vorbisenc,
-    ogg_int64_t granulepos)
-{
-  if (granulepos >= 0)
-    return gst_util_uint64_scale ((guint64) granulepos
-        + vorbisenc->granulepos_offset, GST_SECOND, vorbisenc->frequency)
-        + vorbisenc->subgranule_offset;
-  return GST_CLOCK_TIME_NONE;
-}
-
-/* this function does a straight granulepos -> timestamp conversion */
-static GstClockTime
-granulepos_to_timestamp (GstVorbisEnc * vorbisenc, ogg_int64_t granulepos)
-{
-  if (granulepos >= 0)
-    return gst_util_uint64_scale ((guint64) granulepos,
-        GST_SECOND, vorbisenc->frequency);
-  return GST_CLOCK_TIME_NONE;
-}
 
 #define MAX_BITRATE_DEFAULT     -1
 #define BITRATE_DEFAULT         -1
@@ -119,8 +97,18 @@ granulepos_to_timestamp (GstVorbisEnc * vorbisenc, ogg_int64_t granulepos)
 #define LOWEST_BITRATE          6000    /* lowest allowed for a 8 kHz stream */
 #define HIGHEST_BITRATE         250001  /* highest allowed for a 44 kHz stream */
 
-static gboolean gst_vorbis_enc_sink_event (GstPad * pad, GstEvent * event);
-static GstFlowReturn gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_vorbis_enc_start (GstAudioEncoder * enc);
+static gboolean gst_vorbis_enc_stop (GstAudioEncoder * enc);
+static gboolean gst_vorbis_enc_set_format (GstAudioEncoder * enc,
+    GstAudioInfo * info);
+static GstFlowReturn gst_vorbis_enc_handle_frame (GstAudioEncoder * enc,
+    GstBuffer * in_buf);
+static GstCaps *gst_vorbis_enc_getcaps (GstAudioEncoder * enc);
+static gboolean gst_vorbis_enc_sink_event (GstAudioEncoder * enc,
+    GstEvent * event);
+static GstFlowReturn gst_vorbis_enc_pre_push (GstAudioEncoder * enc,
+    GstBuffer ** buffer);
+
 static gboolean gst_vorbis_enc_setup (GstVorbisEnc * vorbisenc);
 
 static void gst_vorbis_enc_dispose (GObject * object);
@@ -128,36 +116,30 @@ static void gst_vorbis_enc_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 static void gst_vorbis_enc_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
-static GstStateChangeReturn gst_vorbis_enc_change_state (GstElement * element,
-    GstStateChange transition);
 static void gst_vorbis_enc_add_interfaces (GType vorbisenc_type);
 
-GST_BOILERPLATE_FULL (GstVorbisEnc, gst_vorbis_enc, GstElement,
-    GST_TYPE_ELEMENT, gst_vorbis_enc_add_interfaces);
+GST_BOILERPLATE_FULL (GstVorbisEnc, gst_vorbis_enc, GstAudioEncoder,
+    GST_TYPE_AUDIO_ENCODER, gst_vorbis_enc_add_interfaces);
 
 static void
 gst_vorbis_enc_add_interfaces (GType vorbisenc_type)
 {
   static const GInterfaceInfo tag_setter_info = { NULL, NULL, NULL };
-  static const GInterfaceInfo preset_info = { NULL, NULL, NULL };
 
   g_type_add_interface_static (vorbisenc_type, GST_TYPE_TAG_SETTER,
       &tag_setter_info);
-  g_type_add_interface_static (vorbisenc_type, GST_TYPE_PRESET, &preset_info);
 }
 
 static void
 gst_vorbis_enc_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-  GstPadTemplate *src_template, *sink_template;
-
 
-  src_template = gst_static_pad_template_get (&vorbis_enc_src_factory);
-  gst_element_class_add_pad_template (element_class, src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_enc_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_enc_sink_factory);
 
-  sink_template = gst_static_pad_template_get (&vorbis_enc_sink_factory);
-  gst_element_class_add_pad_template (element_class, sink_template);
   gst_element_class_set_details_simple (element_class,
       "Vorbis audio encoder", "Codec/Encoder/Audio",
       "Encodes audio in Vorbis format",
@@ -168,15 +150,23 @@ static void
 gst_vorbis_enc_class_init (GstVorbisEncClass * klass)
 {
   GObjectClass *gobject_class;
-  GstElementClass *gstelement_class;
+  GstAudioEncoderClass *base_class;
 
   gobject_class = (GObjectClass *) klass;
-  gstelement_class = (GstElementClass *) klass;
+  base_class = (GstAudioEncoderClass *) (klass);
 
   gobject_class->set_property = gst_vorbis_enc_set_property;
   gobject_class->get_property = gst_vorbis_enc_get_property;
   gobject_class->dispose = gst_vorbis_enc_dispose;
 
+  base_class->start = GST_DEBUG_FUNCPTR (gst_vorbis_enc_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (gst_vorbis_enc_stop);
+  base_class->set_format = GST_DEBUG_FUNCPTR (gst_vorbis_enc_set_format);
+  base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_vorbis_enc_handle_frame);
+  base_class->getcaps = GST_DEBUG_FUNCPTR (gst_vorbis_enc_getcaps);
+  base_class->event = GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_event);
+  base_class->pre_push = GST_DEBUG_FUNCPTR (gst_vorbis_enc_pre_push);
+
   g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MAX_BITRATE,
       g_param_spec_int ("max-bitrate", "Maximum Bitrate",
           "Specify a maximum bitrate (in bps). Useful for streaming "
@@ -207,9 +197,27 @@ gst_vorbis_enc_class_init (GstVorbisEncClass * klass)
       g_param_spec_string ("last-message", "last-message",
           "The last status message", NULL,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_vorbis_enc_init (GstVorbisEnc * vorbisenc, GstVorbisEncClass * klass)
+{
+  GstAudioEncoder *enc = GST_AUDIO_ENCODER (vorbisenc);
+
+  vorbisenc->channels = -1;
+  vorbisenc->frequency = -1;
+
+  vorbisenc->managed = FALSE;
+  vorbisenc->max_bitrate = MAX_BITRATE_DEFAULT;
+  vorbisenc->bitrate = BITRATE_DEFAULT;
+  vorbisenc->min_bitrate = MIN_BITRATE_DEFAULT;
+  vorbisenc->quality = QUALITY_DEFAULT;
+  vorbisenc->quality_set = FALSE;
+  vorbisenc->last_message = NULL;
 
-  gstelement_class->change_state =
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_change_state);
+  /* arrange granulepos marking (and required perfect ts) */
+  gst_audio_encoder_set_mark_granule (enc, TRUE);
+  gst_audio_encoder_set_perfect_timestamp (enc, TRUE);
 }
 
 static void
@@ -225,6 +233,39 @@ gst_vorbis_enc_dispose (GObject * object)
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
+static gboolean
+gst_vorbis_enc_start (GstAudioEncoder * enc)
+{
+  GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
+
+  GST_DEBUG_OBJECT (enc, "start");
+  vorbisenc->tags = gst_tag_list_new ();
+  vorbisenc->header_sent = FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+gst_vorbis_enc_stop (GstAudioEncoder * enc)
+{
+  GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
+
+  GST_DEBUG_OBJECT (enc, "stop");
+  vorbis_block_clear (&vorbisenc->vb);
+  vorbis_dsp_clear (&vorbisenc->vd);
+  vorbis_info_clear (&vorbisenc->vi);
+  g_free (vorbisenc->last_message);
+  vorbisenc->last_message = NULL;
+  gst_tag_list_free (vorbisenc->tags);
+  vorbisenc->tags = NULL;
+  g_slist_foreach (vorbisenc->headers, (GFunc) gst_buffer_unref, NULL);
+  vorbisenc->headers = NULL;
+
+  gst_tag_setter_reset_tags (GST_TAG_SETTER (enc));
+
+  return TRUE;
+}
+
 static GstCaps *
 gst_vorbis_enc_generate_sink_caps (void)
 {
@@ -269,7 +310,7 @@ gst_vorbis_enc_generate_sink_caps (void)
 
   gst_caps_append_structure (caps, gst_structure_new ("audio/x-raw-float",
           "rate", GST_TYPE_INT_RANGE, 1, 200000,
-          "channels", GST_TYPE_INT_RANGE, 9, 256,
+          "channels", GST_TYPE_INT_RANGE, 9, 255,
           "endianness", G_TYPE_INT, G_BYTE_ORDER, "width", G_TYPE_INT, 32,
           NULL));
 
@@ -277,151 +318,14 @@ gst_vorbis_enc_generate_sink_caps (void)
 }
 
 static GstCaps *
-gst_vorbis_enc_sink_getcaps (GstPad * pad)
+gst_vorbis_enc_getcaps (GstAudioEncoder * enc)
 {
-  GstVorbisEnc *vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
+  GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
 
   if (vorbisenc->sinkcaps == NULL)
     vorbisenc->sinkcaps = gst_vorbis_enc_generate_sink_caps ();
 
-  return gst_caps_ref (vorbisenc->sinkcaps);
-}
-
-static gboolean
-gst_vorbis_enc_sink_setcaps (GstPad * pad, GstCaps * caps)
-{
-  GstVorbisEnc *vorbisenc;
-  GstStructure *structure;
-
-  vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
-  vorbisenc->setup = FALSE;
-
-  structure = gst_caps_get_structure (caps, 0);
-  gst_structure_get_int (structure, "channels", &vorbisenc->channels);
-  gst_structure_get_int (structure, "rate", &vorbisenc->frequency);
-
-  gst_vorbis_enc_setup (vorbisenc);
-
-  if (vorbisenc->setup)
-    return TRUE;
-
-  return FALSE;
-}
-
-static gboolean
-gst_vorbis_enc_convert_src (GstPad * pad, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = TRUE;
-  GstVorbisEnc *vorbisenc;
-  gint64 avg;
-
-  vorbisenc = GST_VORBISENC (gst_pad_get_parent (pad));
-
-  if (vorbisenc->samples_in == 0 ||
-      vorbisenc->bytes_out == 0 || vorbisenc->frequency == 0) {
-    gst_object_unref (vorbisenc);
-    return FALSE;
-  }
-
-  avg = (vorbisenc->bytes_out * vorbisenc->frequency) / (vorbisenc->samples_in);
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND, avg);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = gst_util_uint64_scale_int (src_value, avg, GST_SECOND);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-  gst_object_unref (vorbisenc);
-  return res;
-}
-
-static gboolean
-gst_vorbis_enc_convert_sink (GstPad * pad, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = TRUE;
-  guint scale = 1;
-  gint bytes_per_sample;
-  GstVorbisEnc *vorbisenc;
-
-  vorbisenc = GST_VORBISENC (gst_pad_get_parent (pad));
-
-  bytes_per_sample = vorbisenc->channels * 2;
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_DEFAULT:
-          if (bytes_per_sample == 0)
-            return FALSE;
-          *dest_value = src_value / bytes_per_sample;
-          break;
-        case GST_FORMAT_TIME:
-        {
-          gint byterate = bytes_per_sample * vorbisenc->frequency;
-
-          if (byterate == 0)
-            return FALSE;
-          *dest_value =
-              gst_util_uint64_scale_int (src_value, GST_SECOND, byterate);
-          break;
-        }
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_DEFAULT:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = src_value * bytes_per_sample;
-          break;
-        case GST_FORMAT_TIME:
-          if (vorbisenc->frequency == 0)
-            return FALSE;
-          *dest_value =
-              gst_util_uint64_scale_int (src_value, GST_SECOND,
-              vorbisenc->frequency);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          scale = bytes_per_sample;
-          /* fallthrough */
-        case GST_FORMAT_DEFAULT:
-          *dest_value =
-              gst_util_uint64_scale_int (src_value,
-              scale * vorbisenc->frequency, GST_SECOND);
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-  gst_object_unref (vorbisenc);
-  return res;
+  return gst_audio_encoder_proxy_getcaps (enc, vorbisenc->sinkcaps);
 }
 
 static gint64
@@ -433,177 +337,26 @@ gst_vorbis_enc_get_latency (GstVorbisEnc * vorbisenc)
   return 58 * GST_MSECOND;
 }
 
-static const GstQueryType *
-gst_vorbis_enc_get_query_types (GstPad * pad)
-{
-  static const GstQueryType gst_vorbis_enc_src_query_types[] = {
-    GST_QUERY_POSITION,
-    GST_QUERY_DURATION,
-    GST_QUERY_CONVERT,
-    0
-  };
-
-  return gst_vorbis_enc_src_query_types;
-}
-
 static gboolean
-gst_vorbis_enc_src_query (GstPad * pad, GstQuery * query)
+gst_vorbis_enc_set_format (GstAudioEncoder * enc, GstAudioInfo * info)
 {
-  gboolean res = TRUE;
   GstVorbisEnc *vorbisenc;
-  GstPad *peerpad;
-
-  vorbisenc = GST_VORBISENC (gst_pad_get_parent (pad));
-  peerpad = gst_pad_get_peer (GST_PAD (vorbisenc->sinkpad));
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_POSITION:
-    {
-      GstFormat fmt, req_fmt;
-      gint64 pos, val;
-
-      gst_query_parse_position (query, &req_fmt, NULL);
-      if ((res = gst_pad_query_position (peerpad, &req_fmt, &val))) {
-        gst_query_set_position (query, req_fmt, val);
-        break;
-      }
-
-      fmt = GST_FORMAT_TIME;
-      if (!(res = gst_pad_query_position (peerpad, &fmt, &pos)))
-        break;
-
-      if ((res = gst_pad_query_convert (peerpad, fmt, pos, &req_fmt, &val))) {
-        gst_query_set_position (query, req_fmt, val);
-      }
-      break;
-    }
-    case GST_QUERY_DURATION:
-    {
-      GstFormat fmt, req_fmt;
-      gint64 dur, val;
-
-      gst_query_parse_duration (query, &req_fmt, NULL);
-      if ((res = gst_pad_query_duration (peerpad, &req_fmt, &val))) {
-        gst_query_set_duration (query, req_fmt, val);
-        break;
-      }
-
-      fmt = GST_FORMAT_TIME;
-      if (!(res = gst_pad_query_duration (peerpad, &fmt, &dur)))
-        break;
-
-      if ((res = gst_pad_query_convert (peerpad, fmt, dur, &req_fmt, &val))) {
-        gst_query_set_duration (query, req_fmt, val);
-      }
-      break;
-    }
-    case GST_QUERY_CONVERT:
-    {
-      GstFormat src_fmt, dest_fmt;
-      gint64 src_val, dest_val;
-
-      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res =
-              gst_vorbis_enc_convert_src (pad, src_fmt, src_val, &dest_fmt,
-                  &dest_val)))
-        goto error;
-      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
-      break;
-    }
-    case GST_QUERY_LATENCY:
-    {
-      gboolean live;
-      GstClockTime min_latency, max_latency;
-      gint64 latency;
-
-      if ((res = gst_pad_query (peerpad, query))) {
-        gst_query_parse_latency (query, &live, &min_latency, &max_latency);
 
-        latency = gst_vorbis_enc_get_latency (vorbisenc);
+  vorbisenc = GST_VORBISENC (enc);
 
-        /* add our latency */
-        min_latency += latency;
-        if (max_latency != -1)
-          max_latency += latency;
+  vorbisenc->channels = GST_AUDIO_INFO_CHANNELS (info);
+  vorbisenc->frequency = GST_AUDIO_INFO_RATE (info);
 
-        gst_query_set_latency (query, live, min_latency, max_latency);
-      }
-      break;
-    }
-    default:
-      res = gst_pad_query (peerpad, query);
-      break;
-  }
-
-error:
-  gst_object_unref (peerpad);
-  gst_object_unref (vorbisenc);
-  return res;
-}
-
-static gboolean
-gst_vorbis_enc_sink_query (GstPad * pad, GstQuery * query)
-{
-  gboolean res = TRUE;
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_CONVERT:
-    {
-      GstFormat src_fmt, dest_fmt;
-      gint64 src_val, dest_val;
-
-      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res =
-              gst_vorbis_enc_convert_sink (pad, src_fmt, src_val, &dest_fmt,
-                  &dest_val)))
-        goto error;
-      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, query);
-      break;
-  }
-
-error:
-  return res;
-}
-
-static void
-gst_vorbis_enc_init (GstVorbisEnc * vorbisenc, GstVorbisEncClass * klass)
-{
-  vorbisenc->sinkpad =
-      gst_pad_new_from_static_template (&vorbis_enc_sink_factory, "sink");
-  gst_pad_set_event_function (vorbisenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_event));
-  gst_pad_set_chain_function (vorbisenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_chain));
-  gst_pad_set_setcaps_function (vorbisenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_setcaps));
-  gst_pad_set_getcaps_function (vorbisenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_getcaps));
-  gst_pad_set_query_function (vorbisenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_query));
-  gst_element_add_pad (GST_ELEMENT (vorbisenc), vorbisenc->sinkpad);
-
-  vorbisenc->srcpad =
-      gst_pad_new_from_static_template (&vorbis_enc_src_factory, "src");
-  gst_pad_set_query_function (vorbisenc->srcpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_src_query));
-  gst_pad_set_query_type_function (vorbisenc->srcpad,
-      GST_DEBUG_FUNCPTR (gst_vorbis_enc_get_query_types));
-  gst_element_add_pad (GST_ELEMENT (vorbisenc), vorbisenc->srcpad);
+  /* if re-configured, we were drained and cleared already */
+  if (!gst_vorbis_enc_setup (vorbisenc))
+    return FALSE;
 
-  vorbisenc->channels = -1;
-  vorbisenc->frequency = -1;
+  /* feedback to base class */
+  gst_audio_encoder_set_latency (enc,
+      gst_vorbis_enc_get_latency (vorbisenc),
+      gst_vorbis_enc_get_latency (vorbisenc));
 
-  vorbisenc->managed = FALSE;
-  vorbisenc->max_bitrate = MAX_BITRATE_DEFAULT;
-  vorbisenc->bitrate = BITRATE_DEFAULT;
-  vorbisenc->min_bitrate = MIN_BITRATE_DEFAULT;
-  vorbisenc->quality = QUALITY_DEFAULT;
-  vorbisenc->quality_set = FALSE;
-  vorbisenc->last_message = NULL;
+  return TRUE;
 }
 
 static void
@@ -722,7 +475,8 @@ update_start_message (GstVorbisEnc * vorbisenc)
 static gboolean
 gst_vorbis_enc_setup (GstVorbisEnc * vorbisenc)
 {
-  vorbisenc->setup = FALSE;
+
+  GST_LOG_OBJECT (vorbisenc, "setup");
 
   if (vorbisenc->bitrate < 0 && vorbisenc->min_bitrate < 0
       && vorbisenc->max_bitrate < 0) {
@@ -789,8 +543,10 @@ gst_vorbis_enc_setup (GstVorbisEnc * vorbisenc)
   vorbis_analysis_init (&vorbisenc->vd, &vorbisenc->vi);
   vorbis_block_init (&vorbisenc->vd, &vorbisenc->vb);
 
-  vorbisenc->next_ts = 0;
+  /* samples == granulepos start at 0 again */
+  vorbisenc->samples_out = 0;
 
+  /* fresh encoder available */
   vorbisenc->setup = TRUE;
 
   return TRUE;
@@ -805,6 +561,7 @@ gst_vorbis_enc_clear (GstVorbisEnc * vorbisenc)
     vorbis_analysis_wrote (&vorbisenc->vd, 0);
     ret = gst_vorbis_enc_output_buffers (vorbisenc);
 
+    /* marked EOS to encoder, recreate if needed */
     vorbisenc->setup = FALSE;
   }
 
@@ -813,50 +570,9 @@ gst_vorbis_enc_clear (GstVorbisEnc * vorbisenc)
   vorbis_dsp_clear (&vorbisenc->vd);
   vorbis_info_clear (&vorbisenc->vi);
 
-  vorbisenc->header_sent = FALSE;
-
   return ret;
 }
 
-/* prepare a buffer for transmission by passing data through libvorbis */
-static GstBuffer *
-gst_vorbis_enc_buffer_from_packet (GstVorbisEnc * vorbisenc,
-    ogg_packet * packet)
-{
-  GstBuffer *outbuf;
-
-  outbuf = gst_buffer_new_and_alloc (packet->bytes);
-  memcpy (GST_BUFFER_DATA (outbuf), packet->packet, packet->bytes);
-  /* see ext/ogg/README; OFFSET_END takes "our" granulepos, OFFSET its
-   * time representation */
-  GST_BUFFER_OFFSET_END (outbuf) = packet->granulepos +
-      vorbisenc->granulepos_offset;
-  GST_BUFFER_OFFSET (outbuf) = granulepos_to_timestamp (vorbisenc,
-      GST_BUFFER_OFFSET_END (outbuf));
-  GST_BUFFER_TIMESTAMP (outbuf) = vorbisenc->next_ts;
-
-  /* update the next timestamp, taking granulepos_offset and subgranule offset
-   * into account */
-  vorbisenc->next_ts =
-      granulepos_to_timestamp_offset (vorbisenc, packet->granulepos) +
-      vorbisenc->initial_ts;
-  GST_BUFFER_DURATION (outbuf) =
-      vorbisenc->next_ts - GST_BUFFER_TIMESTAMP (outbuf);
-
-  if (vorbisenc->next_discont) {
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
-    vorbisenc->next_discont = FALSE;
-  }
-
-  gst_buffer_set_caps (outbuf, vorbisenc->srccaps);
-
-  GST_LOG_OBJECT (vorbisenc, "encoded buffer of %d bytes",
-      GST_BUFFER_SIZE (outbuf));
-  return outbuf;
-}
-
-/* the same as above, but different logic for setting timestamp and granulepos
- * */
 static GstBuffer *
 gst_vorbis_enc_buffer_from_header_packet (GstVorbisEnc * vorbisenc,
     ogg_packet * packet)
@@ -870,99 +586,19 @@ gst_vorbis_enc_buffer_from_header_packet (GstVorbisEnc * vorbisenc,
   GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
 
-  gst_buffer_set_caps (outbuf, vorbisenc->srccaps);
-
   GST_DEBUG ("created header packet buffer, %d bytes",
       GST_BUFFER_SIZE (outbuf));
   return outbuf;
 }
 
-/* push out the buffer and do internal bookkeeping */
-static GstFlowReturn
-gst_vorbis_enc_push_buffer (GstVorbisEnc * vorbisenc, GstBuffer * buffer)
-{
-  vorbisenc->bytes_out += GST_BUFFER_SIZE (buffer);
-
-  GST_DEBUG_OBJECT (vorbisenc,
-      "Pushing buffer with GP %" G_GINT64_FORMAT ", ts %" GST_TIME_FORMAT,
-      GST_BUFFER_OFFSET_END (buffer),
-      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
-  return gst_pad_push (vorbisenc->srcpad, buffer);
-}
-
-static GstFlowReturn
-gst_vorbis_enc_push_packet (GstVorbisEnc * vorbisenc, ogg_packet * packet)
-{
-  GstBuffer *outbuf;
-
-  outbuf = gst_vorbis_enc_buffer_from_packet (vorbisenc, packet);
-  return gst_vorbis_enc_push_buffer (vorbisenc, outbuf);
-}
-
-/* Set a copy of these buffers as 'streamheader' on the caps.
- * We need a copy to avoid these buffers ending up with (indirect) refs on
- * themselves
- */
-static GstCaps *
-gst_vorbis_enc_set_header_on_caps (GstCaps * caps, GstBuffer * buf1,
-    GstBuffer * buf2, GstBuffer * buf3)
-{
-  GstBuffer *buf;
-  GstStructure *structure;
-  GValue array = { 0 };
-  GValue value = { 0 };
-
-  caps = gst_caps_make_writable (caps);
-  structure = gst_caps_get_structure (caps, 0);
-
-  /* mark buffers */
-  GST_BUFFER_FLAG_SET (buf1, GST_BUFFER_FLAG_IN_CAPS);
-  GST_BUFFER_FLAG_SET (buf2, GST_BUFFER_FLAG_IN_CAPS);
-  GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS);
-
-  /* put buffers in a fixed list */
-  g_value_init (&array, GST_TYPE_ARRAY);
-  g_value_init (&value, GST_TYPE_BUFFER);
-  buf = gst_buffer_copy (buf1);
-  gst_value_set_buffer (&value, buf);
-  gst_buffer_unref (buf);
-  gst_value_array_append_value (&array, &value);
-  g_value_unset (&value);
-  g_value_init (&value, GST_TYPE_BUFFER);
-  buf = gst_buffer_copy (buf2);
-  gst_value_set_buffer (&value, buf);
-  gst_buffer_unref (buf);
-  gst_value_array_append_value (&array, &value);
-  g_value_unset (&value);
-  g_value_init (&value, GST_TYPE_BUFFER);
-  buf = gst_buffer_copy (buf3);
-  gst_value_set_buffer (&value, buf);
-  gst_buffer_unref (buf);
-  gst_value_array_append_value (&array, &value);
-  gst_structure_set_value (structure, "streamheader", &array);
-  g_value_unset (&value);
-  g_value_unset (&array);
-
-  return caps;
-}
-
 static gboolean
-gst_vorbis_enc_sink_event (GstPad * pad, GstEvent * event)
+gst_vorbis_enc_sink_event (GstAudioEncoder * enc, GstEvent * event)
 {
-  gboolean res = TRUE;
   GstVorbisEnc *vorbisenc;
 
-  vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
+  vorbisenc = GST_VORBISENC (enc);
 
   switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_EOS:
-      /* Tell the library we're at end of stream so that it can handle
-       * the last frame and mark end of stream in the output properly */
-      GST_DEBUG_OBJECT (vorbisenc, "EOS, clearing state and sending event on");
-      gst_vorbis_enc_clear (vorbisenc);
-
-      res = gst_pad_push_event (vorbisenc->srcpad, event);
-      break;
     case GST_EVENT_TAG:
       if (vorbisenc->tags) {
         GstTagList *list;
@@ -973,68 +609,88 @@ gst_vorbis_enc_sink_event (GstPad * pad, GstEvent * event)
       } else {
         g_assert_not_reached ();
       }
-      res = gst_pad_push_event (vorbisenc->srcpad, event);
       break;
-    case GST_EVENT_NEWSEGMENT:
-    {
-      gboolean update;
-      gdouble rate, applied_rate;
-      GstFormat format;
-      gint64 start, stop, position;
-
-      gst_event_parse_new_segment_full (event, &update, &rate, &applied_rate,
-          &format, &start, &stop, &position);
-      if (format == GST_FORMAT_TIME) {
-        gst_segment_set_newsegment (&vorbisenc->segment, update, rate, format,
-            start, stop, position);
-        if (vorbisenc->initial_ts == GST_CLOCK_TIME_NONE) {
-          GST_DEBUG_OBJECT (vorbisenc, "Initial segment %" GST_SEGMENT_FORMAT,
-              &vorbisenc->segment);
-          vorbisenc->initial_ts = start;
-        }
-      }
-    }
       /* fall through */
     default:
-      res = gst_pad_push_event (vorbisenc->srcpad, event);
       break;
   }
-  return res;
+
+  /* we only peeked, let base class handle it */
+  return FALSE;
 }
 
-static gboolean
-gst_vorbis_enc_buffer_check_discontinuous (GstVorbisEnc * vorbisenc,
-    GstClockTime timestamp, GstClockTime duration)
+/* push out the buffer and do internal bookkeeping */
+static GstFlowReturn
+gst_vorbis_enc_push_header (GstVorbisEnc * vorbisenc, GstBuffer * buffer)
 {
-  gboolean ret = FALSE;
-
-  if (timestamp != GST_CLOCK_TIME_NONE &&
-      vorbisenc->expected_ts != GST_CLOCK_TIME_NONE &&
-      timestamp + duration != vorbisenc->expected_ts) {
-    /* It turns out that a lot of elements don't generate perfect streams due
-     * to rounding errors. So, we permit small errors (< 1/2 a sample) without
-     * causing a discont.
-     */
-    int halfsample = GST_SECOND / vorbisenc->frequency / 2;
-
-    if ((GstClockTimeDiff) (timestamp - vorbisenc->expected_ts) > halfsample) {
-      GST_DEBUG_OBJECT (vorbisenc, "Expected TS %" GST_TIME_FORMAT
-          ", buffer TS %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (vorbisenc->expected_ts), GST_TIME_ARGS (timestamp));
-      ret = TRUE;
-    }
+  GST_DEBUG_OBJECT (vorbisenc,
+      "Pushing buffer with GP %" G_GINT64_FORMAT ", ts %" GST_TIME_FORMAT,
+      GST_BUFFER_OFFSET_END (buffer),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
+  gst_buffer_set_caps (buffer,
+      GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (vorbisenc)));
+  return gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (vorbisenc), buffer);
+}
+
+/*
+ * (really really) FIXME: move into core (dixit tpm)
+ */
+/**
+ * _gst_caps_set_buffer_array:
+ * @caps: a #GstCaps
+ * @field: field in caps to set
+ * @buf: header buffers
+ *
+ * Adds given buffers to an array of buffers set as the given @field
+ * on the given @caps.  List of buffer arguments must be NULL-terminated.
+ *
+ * Returns: input caps with a streamheader field added, or NULL if some error
+ */
+static GstCaps *
+_gst_caps_set_buffer_array (GstCaps * caps, const gchar * field,
+    GstBuffer * buf, ...)
+{
+  GstStructure *structure = NULL;
+  va_list va;
+  GValue array = { 0 };
+  GValue value = { 0 };
+
+  g_return_val_if_fail (caps != NULL, NULL);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), NULL);
+  g_return_val_if_fail (field != NULL, NULL);
+
+  caps = gst_caps_make_writable (caps);
+  structure = gst_caps_get_structure (caps, 0);
+
+  g_value_init (&array, GST_TYPE_ARRAY);
+
+  va_start (va, buf);
+  /* put buffers in a fixed list */
+  while (buf) {
+    g_assert (gst_buffer_is_metadata_writable (buf));
+
+    /* mark buffer */
+    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS);
+
+    g_value_init (&value, GST_TYPE_BUFFER);
+    buf = gst_buffer_copy (buf);
+    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS);
+    gst_value_set_buffer (&value, buf);
+    gst_buffer_unref (buf);
+    gst_value_array_append_value (&array, &value);
+    g_value_unset (&value);
+
+    buf = va_arg (va, GstBuffer *);
   }
 
-  if (timestamp != GST_CLOCK_TIME_NONE && duration != GST_CLOCK_TIME_NONE) {
-    vorbisenc->expected_ts = timestamp + duration;
-  } else
-    vorbisenc->expected_ts = GST_CLOCK_TIME_NONE;
+  gst_structure_set_value (structure, field, &array);
+  g_value_unset (&array);
 
-  return ret;
+  return caps;
 }
 
 static GstFlowReturn
-gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer)
+gst_vorbis_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer)
 {
   GstVorbisEnc *vorbisenc;
   GstFlowReturn ret = GST_FLOW_OK;
@@ -1043,27 +699,22 @@ gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer)
   gulong i, j;
   float **vorbis_buffer;
   GstBuffer *buf1, *buf2, *buf3;
-  gboolean first = FALSE;
-  GstClockTime timestamp = GST_CLOCK_TIME_NONE;
-  GstClockTime running_time = GST_CLOCK_TIME_NONE;
-
-  vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
 
-  if (!vorbisenc->setup)
-    goto not_setup;
+  vorbisenc = GST_VORBISENC (enc);
 
-  buffer = gst_audio_buffer_clip (buffer, &vorbisenc->segment,
-      vorbisenc->frequency, 4 * vorbisenc->channels);
-  if (buffer == NULL) {
-    GST_DEBUG_OBJECT (vorbisenc, "Dropping buffer, out of segment");
-    return GST_FLOW_OK;
+  if (G_UNLIKELY (!vorbisenc->setup)) {
+    if (buffer) {
+      GST_DEBUG_OBJECT (vorbisenc, "forcing setup");
+      /* should not fail, as setup before same way */
+      if (!gst_vorbis_enc_setup (vorbisenc))
+        return GST_FLOW_ERROR;
+    } else {
+      /* end draining */
+      GST_LOG_OBJECT (vorbisenc, "already drained");
+      return GST_FLOW_OK;
+    }
   }
-  running_time =
-      gst_segment_to_running_time (&vorbisenc->segment, GST_FORMAT_TIME,
-      GST_BUFFER_TIMESTAMP (buffer));
-  timestamp = running_time + vorbisenc->initial_ts;
-  GST_DEBUG_OBJECT (vorbisenc, "Initial ts is %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (vorbisenc->initial_ts));
+
   if (!vorbisenc->header_sent) {
     /* Vorbis streams begin with three headers; the initial header (with
        most of the codec setup parameters) which is mandated by the Ogg
@@ -1076,11 +727,6 @@ gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer)
     ogg_packet header_code;
     GstCaps *caps;
 
-    /* first, make sure header buffers get timestamp == 0 */
-    vorbisenc->next_ts = 0;
-    vorbisenc->granulepos_offset = 0;
-    vorbisenc->subgranule_offset = 0;
-
     GST_DEBUG_OBJECT (vorbisenc, "creating and sending header packets");
     gst_vorbis_enc_set_metadata (vorbisenc);
     vorbis_analysis_headerout (&vorbisenc->vd, &vorbisenc->vc, &header,
@@ -1093,104 +739,32 @@ gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer)
     buf3 = gst_vorbis_enc_buffer_from_header_packet (vorbisenc, &header_code);
 
     /* mark and put on caps */
-    vorbisenc->srccaps = gst_caps_new_simple ("audio/x-vorbis", NULL);
-    caps = vorbisenc->srccaps;
-    caps = gst_vorbis_enc_set_header_on_caps (caps, buf1, buf2, buf3);
+    caps = gst_caps_new_simple ("audio/x-vorbis", NULL);
+    caps = _gst_caps_set_buffer_array (caps, "streamheader",
+        buf1, buf2, buf3, NULL);
 
     /* negotiate with these caps */
-    GST_DEBUG ("here are the caps: %" GST_PTR_FORMAT, caps);
-    gst_pad_set_caps (vorbisenc->srcpad, caps);
+    GST_DEBUG_OBJECT (vorbisenc, "here are the caps: %" GST_PTR_FORMAT, caps);
 
     gst_buffer_set_caps (buf1, caps);
     gst_buffer_set_caps (buf2, caps);
     gst_buffer_set_caps (buf3, caps);
+    gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (vorbisenc), caps);
+    gst_caps_unref (caps);
 
-    /* push out buffers */
-    /* push_buffer takes the reference even for failure */
-    if ((ret = gst_vorbis_enc_push_buffer (vorbisenc, buf1)) != GST_FLOW_OK)
-      goto failed_header_push;
-    if ((ret = gst_vorbis_enc_push_buffer (vorbisenc, buf2)) != GST_FLOW_OK) {
-      buf2 = NULL;
-      goto failed_header_push;
-    }
-    if ((ret = gst_vorbis_enc_push_buffer (vorbisenc, buf3)) != GST_FLOW_OK) {
-      buf3 = NULL;
-      goto failed_header_push;
-    }
-
-    /* now adjust starting granulepos accordingly if the buffer's timestamp is
-       nonzero */
-    vorbisenc->next_ts = timestamp;
-    vorbisenc->expected_ts = timestamp;
-    vorbisenc->granulepos_offset = gst_util_uint64_scale
-        (running_time, vorbisenc->frequency, GST_SECOND);
-    vorbisenc->subgranule_offset = 0;
-    vorbisenc->subgranule_offset =
-        (vorbisenc->next_ts - vorbisenc->initial_ts) -
-        granulepos_to_timestamp_offset (vorbisenc, 0);
+    /* store buffers for later pre_push sending */
+    g_slist_foreach (vorbisenc->headers, (GFunc) gst_buffer_unref, NULL);
+    vorbisenc->headers = NULL;
+    GST_DEBUG_OBJECT (vorbisenc, "storing header buffers");
+    vorbisenc->headers = g_slist_prepend (vorbisenc->headers, buf3);
+    vorbisenc->headers = g_slist_prepend (vorbisenc->headers, buf2);
+    vorbisenc->headers = g_slist_prepend (vorbisenc->headers, buf1);
 
     vorbisenc->header_sent = TRUE;
-    first = TRUE;
-  }
-
-  if (vorbisenc->expected_ts != GST_CLOCK_TIME_NONE &&
-      timestamp < vorbisenc->expected_ts) {
-    guint64 diff = vorbisenc->expected_ts - timestamp;
-    guint64 diff_bytes;
-
-    GST_WARNING_OBJECT (vorbisenc, "Buffer is older than previous "
-        "timestamp + duration (%" GST_TIME_FORMAT "< %" GST_TIME_FORMAT
-        "), cannot handle. Clipping buffer.",
-        GST_TIME_ARGS (timestamp), GST_TIME_ARGS (vorbisenc->expected_ts));
-
-    diff_bytes =
-        GST_CLOCK_TIME_TO_FRAMES (diff,
-        vorbisenc->frequency) * vorbisenc->channels * sizeof (gfloat);
-    if (diff_bytes >= GST_BUFFER_SIZE (buffer)) {
-      gst_buffer_unref (buffer);
-      return GST_FLOW_OK;
-    }
-    buffer = gst_buffer_make_metadata_writable (buffer);
-    GST_BUFFER_DATA (buffer) += diff_bytes;
-    GST_BUFFER_SIZE (buffer) -= diff_bytes;
-
-    GST_BUFFER_TIMESTAMP (buffer) += diff;
-    if (GST_BUFFER_DURATION_IS_VALID (buffer))
-      GST_BUFFER_DURATION (buffer) -= diff;
   }
 
-  if (gst_vorbis_enc_buffer_check_discontinuous (vorbisenc, timestamp,
-          GST_BUFFER_DURATION (buffer)) && !first) {
-    GST_WARNING_OBJECT (vorbisenc,
-        "Buffer is discontinuous, flushing encoder "
-        "and restarting (Discont from %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT
-        ")", GST_TIME_ARGS (vorbisenc->next_ts), GST_TIME_ARGS (timestamp));
-    /* Re-initialise encoder (there's unfortunately no API to flush it) */
-    if ((ret = gst_vorbis_enc_clear (vorbisenc)) != GST_FLOW_OK)
-      return ret;
-    if (!gst_vorbis_enc_setup (vorbisenc))
-      return GST_FLOW_ERROR;    /* Should be impossible, we can only get here if
-                                   we successfully initialised earlier */
-
-    /* Now, set our granulepos offset appropriately. */
-    vorbisenc->next_ts = timestamp;
-    /* We need to round to the nearest whole number of samples, not just do
-     * a truncating division here */
-    vorbisenc->granulepos_offset = gst_util_uint64_scale
-        (running_time + GST_SECOND / vorbisenc->frequency / 2
-        - vorbisenc->subgranule_offset, vorbisenc->frequency, GST_SECOND);
-
-    vorbisenc->header_sent = TRUE;
-
-    /* And our next output buffer must have DISCONT set on it */
-    vorbisenc->next_discont = TRUE;
-  }
-
-  /* Sending zero samples to libvorbis marks EOS, so we mustn't do that */
-  if (GST_BUFFER_SIZE (buffer) == 0) {
-    gst_buffer_unref (buffer);
-    return GST_FLOW_OK;
-  }
+  if (!buffer)
+    return gst_vorbis_enc_clear (vorbisenc);
 
   /* data to encode */
   data = (gfloat *) GST_BUFFER_DATA (buffer);
@@ -1213,31 +787,9 @@ gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer)
 
   vorbisenc->samples_in += size;
 
-  gst_buffer_unref (buffer);
-
   ret = gst_vorbis_enc_output_buffers (vorbisenc);
 
   return ret;
-
-  /* error cases */
-not_setup:
-  {
-    gst_buffer_unref (buffer);
-    GST_ELEMENT_ERROR (vorbisenc, CORE, NEGOTIATION, (NULL),
-        ("encoder not initialized (input is not audio?)"));
-    return GST_FLOW_UNEXPECTED;
-  }
-failed_header_push:
-  {
-    GST_WARNING_OBJECT (vorbisenc, "Failed to push headers");
-    /* buf1 is always already unreffed */
-    if (buf2)
-      gst_buffer_unref (buf2);
-    if (buf3)
-      gst_buffer_unref (buf3);
-    gst_buffer_unref (buffer);
-    return ret;
-  }
 }
 
 static GstFlowReturn
@@ -1258,8 +810,16 @@ gst_vorbis_enc_output_buffers (GstVorbisEnc * vorbisenc)
     vorbis_bitrate_addblock (&vorbisenc->vb);
 
     while (vorbis_bitrate_flushpacket (&vorbisenc->vd, &op)) {
+      GstBuffer *buf;
+
       GST_LOG_OBJECT (vorbisenc, "pushing out a data packet");
-      ret = gst_vorbis_enc_push_packet (vorbisenc, &op);
+      buf = gst_buffer_new_and_alloc (op.bytes);
+      memcpy (GST_BUFFER_DATA (buf), op.packet, op.bytes);
+      /* tracking granulepos should tell us samples accounted for */
+      ret =
+          gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER
+          (vorbisenc), buf, op.granulepos - vorbisenc->samples_out);
+      vorbisenc->samples_out = op.granulepos;
 
       if (ret != GST_FLOW_OK)
         return ret;
@@ -1269,6 +829,36 @@ gst_vorbis_enc_output_buffers (GstVorbisEnc * vorbisenc)
   return GST_FLOW_OK;
 }
 
+static GstFlowReturn
+gst_vorbis_enc_pre_push (GstAudioEncoder * enc, GstBuffer ** buffer)
+{
+  GstVorbisEnc *vorbisenc;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  vorbisenc = GST_VORBISENC (enc);
+
+  /* FIXME 0.11 ? get rid of this special ogg stuff and have it
+   * put and use 'codec data' in caps like anything else,
+   * with all the usual out-of-band advantage etc */
+  if (G_UNLIKELY (vorbisenc->headers)) {
+    GSList *header = vorbisenc->headers;
+
+    /* try to push all of these, if we lose one, might as well lose all */
+    while (header) {
+      if (ret == GST_FLOW_OK)
+        ret = gst_vorbis_enc_push_header (vorbisenc, header->data);
+      else
+        gst_vorbis_enc_push_header (vorbisenc, header->data);
+      header = g_slist_next (header);
+    }
+
+    g_slist_free (vorbisenc->headers);
+    vorbisenc->headers = NULL;
+  }
+
+  return ret;
+}
+
 static void
 gst_vorbis_enc_get_property (GObject * object, guint prop_id, GValue * value,
     GParamSpec * pspec)
@@ -1375,53 +965,3 @@ gst_vorbis_enc_set_property (GObject * object, guint prop_id,
       break;
   }
 }
-
-static GstStateChangeReturn
-gst_vorbis_enc_change_state (GstElement * element, GstStateChange transition)
-{
-  GstVorbisEnc *vorbisenc = GST_VORBISENC (element);
-  GstStateChangeReturn res;
-
-
-  switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      vorbisenc->tags = gst_tag_list_new ();
-      break;
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      vorbisenc->setup = FALSE;
-      vorbisenc->next_discont = FALSE;
-      vorbisenc->header_sent = FALSE;
-      gst_segment_init (&vorbisenc->segment, GST_FORMAT_TIME);
-      vorbisenc->initial_ts = GST_CLOCK_TIME_NONE;
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      break;
-    default:
-      break;
-  }
-
-  res = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-
-  switch (transition) {
-    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      vorbis_block_clear (&vorbisenc->vb);
-      vorbis_dsp_clear (&vorbisenc->vd);
-      vorbis_info_clear (&vorbisenc->vi);
-      g_free (vorbisenc->last_message);
-      vorbisenc->last_message = NULL;
-      if (vorbisenc->srccaps) {
-        gst_caps_unref (vorbisenc->srccaps);
-        vorbisenc->srccaps = NULL;
-      }
-      break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
-      gst_tag_list_free (vorbisenc->tags);
-      vorbisenc->tags = NULL;
-    default:
-      break;
-  }
-
-  return res;
-}
index 9375a16..ffc60e6 100644 (file)
@@ -23,6 +23,7 @@
 
 
 #include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
 
 #include <vorbis/codec.h>
 
@@ -48,14 +49,11 @@ typedef struct _GstVorbisEncClass GstVorbisEncClass;
  * Opaque data structure.
  */
 struct _GstVorbisEnc {
-  GstElement       element;
+  GstAudioEncoder element;
 
-  GstPad          *sinkpad;
-  GstPad          *srcpad;
-
-  GstCaps         *srccaps;
   GstCaps         *sinkcaps;
 
+  /* codec */
   vorbis_info      vi; /* struct that stores all the static vorbis bitstream
                                                             settings */
   vorbis_comment   vc; /* struct that stores all the user comments */
@@ -63,6 +61,7 @@ struct _GstVorbisEnc {
   vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
   vorbis_block     vb; /* local working space for packet->PCM decode */
 
+  /* properties */
   gboolean         managed;
   gint             bitrate;
   gint             min_bitrate;
@@ -74,24 +73,19 @@ struct _GstVorbisEnc {
   gint             frequency;
 
   guint64          samples_in;
+  guint64          samples_out;
   guint64          bytes_out;
-  GstClockTime     next_ts;
-  GstClockTime     expected_ts;
-  gboolean         next_discont;
-  guint64          granulepos_offset;
-  gint64           subgranule_offset;
-  GstSegment       segment;
-  GstClockTime     initial_ts;
 
   GstTagList *     tags;
 
   gboolean         setup;
   gboolean         header_sent;
   gchar           *last_message;
+  GSList          *headers;
 };
 
 struct _GstVorbisEncClass {
-  GstElementClass parent_class;
+  GstAudioEncoderClass parent_class;
 };
 
 GType gst_vorbis_enc_get_type(void);
index 53fd7b1..1ffa0f9 100644 (file)
@@ -91,10 +91,10 @@ gst_vorbis_parse_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&vorbis_parse_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&vorbis_parse_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_parse_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_parse_sink_factory);
   gst_element_class_set_details_simple (element_class,
       "VorbisParse", "Codec/Parser/Audio",
       "parse raw vorbis streams",
@@ -401,7 +401,7 @@ vorbis_parse_parse_packet (GstVorbisParse * parse, GstBuffer * buf)
 
   have_header = FALSE;
   if (size >= 1) {
-    if (data[0] >= 0x01 && data[0] <= 0x05)
+    if (data[0] & 1)
       have_header = TRUE;
   }
 
index 82a1d29..8de9d65 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -187,6 +188,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -247,6 +249,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -256,9 +259,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -281,6 +287,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -353,10 +360,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -390,7 +400,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -660,10 +669,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c776f8e..0984251 100644 (file)
@@ -5,23 +5,23 @@
 SUBDIRS = \
        interfaces \
        tag \
-       audio \
        cdda \
        fft \
        floatcast \
        netbuffer \
-       riff \
        rtp \
        sdp \
        rtsp \
        video \
        pbutils \
+       audio \
+       riff \
        app
 
-noinst_HEADERS = gettext.h gst-i18n-plugin.h
+noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
 
 # dependencies:
-audio: interfaces
+audio: interfaces pbutils
 
 cdda: tag
 
@@ -29,10 +29,8 @@ riff: tag audio
 
 rtsp: sdp
 
-pbutils: video
-
 INDEPENDENT_SUBDIRS = \
-       interfaces tag fft floatcast netbuffer rtp sdp video app
+       interfaces tag fft floatcast netbuffer pbutils rtp sdp video app
 
 .PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
 
index ac7e51e..bd29d8b 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -80,11 +81,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -190,6 +191,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -250,6 +252,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -259,9 +262,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -284,6 +290,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -356,10 +363,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -393,7 +403,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -422,22 +431,22 @@ top_srcdir = @top_srcdir@
 SUBDIRS = \
        interfaces \
        tag \
-       audio \
        cdda \
        fft \
        floatcast \
        netbuffer \
-       riff \
        rtp \
        sdp \
        rtsp \
        video \
        pbutils \
+       audio \
+       riff \
        app
 
-noinst_HEADERS = gettext.h gst-i18n-plugin.h
+noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
 INDEPENDENT_SUBDIRS = \
-       interfaces tag fft floatcast netbuffer rtp sdp video app
+       interfaces tag fft floatcast netbuffer pbutils rtp sdp video app
 
 all: all-recursive
 
@@ -687,10 +696,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -787,7 +801,7 @@ uninstall-am:
 
 
 # dependencies:
-audio: interfaces
+audio: interfaces pbutils
 
 cdda: tag
 
@@ -795,8 +809,6 @@ riff: tag audio
 
 rtsp: sdp
 
-pbutils: video
-
 .PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
 
 independent-subdirs: $(INDEPENDENT_SUBDIRS)
index cda487a..cdca26a 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -68,6 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -113,6 +114,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)"
@@ -128,8 +135,8 @@ nodist_libgstapp_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1)
 libgstapp_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstapp_@GST_MAJORMINOR@_la_OBJECTS) \
        $(nodist_libgstapp_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstapp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -146,21 +153,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstapp_@GST_MAJORMINOR@_la_SOURCES) \
        $(nodist_libgstapp_@GST_MAJORMINOR@_la_SOURCES)
@@ -230,6 +237,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -290,6 +298,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -299,9 +308,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -324,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -396,10 +409,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -433,7 +449,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -520,6 +535,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -560,7 +576,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstapp-@GST_MAJORMINOR@.la: $(libgstapp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstapp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstapp-@GST_MAJORMINOR@.la: $(libgstapp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstapp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstapp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstapp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstapp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstapp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -577,58 +593,51 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo: gstappsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsrc.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo `test -f 'gstappsrc.c' || echo '$(srcdir)/'`gstappsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsrc.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstappsrc.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstappsrc.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo `test -f 'gstappsrc.c' || echo '$(srcdir)/'`gstappsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo `test -f 'gstappsrc.c' || echo '$(srcdir)/'`gstappsrc.c
 
 libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo: gstappbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo `test -f 'gstappbuffer.c' || echo '$(srcdir)/'`gstappbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstappbuffer.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstappbuffer.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo `test -f 'gstappbuffer.c' || echo '$(srcdir)/'`gstappbuffer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo `test -f 'gstappbuffer.c' || echo '$(srcdir)/'`gstappbuffer.c
 
 libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo: gstappsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsink.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsink.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstappsink.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstappsink.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
 
 libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo: gstapp-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstapp-marshal.c' object='libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstapp-marshal.c' object='libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -652,9 +661,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -672,9 +679,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstapp_@GST_MAJORMINOR@includeHEADERS: $(libgstapp_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstapp_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)"
@@ -692,9 +697,7 @@ uninstall-libgstapp_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstapp_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstapp_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -797,10 +800,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 07a3989..9a891b6 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-
-/**
- * SECTION:element-appsink
- * 
- * Appsink is a sink plugin that supports many different methods for making
- * the application get a handle on the GStreamer data in a pipeline. Unlike
- * most GStreamer elements, Appsink provides external API functions.
- *
- * For the documentation of the API, please see the
- * <link linkend="gst-plugins-base-libs-appsink">libgstapp</link> section in
- * the GStreamer Plugins Base Libraries documentation.
- *
- * Since: 0.10.22
- */
-
-
 /**
  * SECTION:gstappsink
  * @short_description: Easy way for applications to extract buffers from a
@@ -92,6 +76,8 @@
 
 #include "gstappsink.h"
 
+#include "gst/glib-compat-private.h"
+
 struct _GstAppSinkPrivate
 {
   GstCaps *caps;
@@ -245,8 +231,8 @@ gst_app_sink_base_init (gpointer g_class)
       "Generic/Sink", "Allow the application to get access to raw buffer",
       "David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_app_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_app_sink_template);
 }
 
 static void
@@ -290,9 +276,9 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
 
   /**
    * GstAppSink::eos:
-   * @appsink: the appsink element that emited the signal
+   * @appsink: the appsink element that emitted the signal
    *
-   * Signal that the end-of-stream has been reached. This signal is emited from
+   * Signal that the end-of-stream has been reached. This signal is emitted from
    * the steaming thread.
    */
   gst_app_sink_signals[SIGNAL_EOS] =
@@ -301,18 +287,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
   /**
    * GstAppSink::new-preroll:
-   * @appsink: the appsink element that emited the signal
+   * @appsink: the appsink element that emitted the signal
    *
-   * Signal that a new preroll buffer is available. 
+   * Signal that a new preroll buffer is available.
    *
-   * This signal is emited from the steaming thread and only when the
-   * "emit-signals" property is %TRUE. 
+   * This signal is emitted from the steaming thread and only when the
+   * "emit-signals" property is %TRUE.
    *
    * The new preroll buffer can be retrieved with the "pull-preroll" action
    * signal or gst_app_sink_pull_preroll() either from this signal callback
    * or from any other thread.
    *
-   * Note that this signal is only emited when the "emit-signals" property is
+   * Note that this signal is only emitted when the "emit-signals" property is
    * set to %TRUE, which it is not by default for performance reasons.
    */
   gst_app_sink_signals[SIGNAL_NEW_PREROLL] =
@@ -321,18 +307,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
   /**
    * GstAppSink::new-buffer:
-   * @appsink: the appsink element that emited the signal
+   * @appsink: the appsink element that emitted the signal
    *
    * Signal that a new buffer is available.
    *
-   * This signal is emited from the steaming thread and only when the
-   * "emit-signals" property is %TRUE. 
+   * This signal is emitted from the steaming thread and only when the
+   * "emit-signals" property is %TRUE.
    *
    * The new buffer can be retrieved with the "pull-buffer" action
    * signal or gst_app_sink_pull_buffer() either from this signal callback
    * or from any other thread.
    *
-   * Note that this signal is only emited when the "emit-signals" property is
+   * Note that this signal is only emitted when the "emit-signals" property is
    * set to %TRUE, which it is not by default for performance reasons.
    */
   gst_app_sink_signals[SIGNAL_NEW_BUFFER] =
@@ -341,18 +327,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
       NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
   /**
    * GstAppSink::new-buffer-list:
-   * @appsink: the appsink element that emited the signal
+   * @appsink: the appsink element that emitted the signal
    *
    * Signal that a new bufferlist is available.
    *
-   * This signal is emited from the steaming thread and only when the
-   * "emit-signals" property is %TRUE. 
+   * This signal is emitted from the steaming thread and only when the
+   * "emit-signals" property is %TRUE.
    *
    * The new buffer can be retrieved with the "pull-buffer-list" action
    * signal or gst_app_sink_pull_buffer_list() either from this signal callback
    * or from any other thread.
    *
-   * Note that this signal is only emited when the "emit-signals" property is
+   * Note that this signal is only emitted when the "emit-signals" property is
    * set to %TRUE, which it is not by default for performance reasons.
    */
   gst_app_sink_signals[SIGNAL_NEW_BUFFER_LIST] =
@@ -376,10 +362,10 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
    * when calling gst_app_sink_pull_buffer() or the "pull-buffer" action signal.
    *
    * If an EOS event was received before any buffers, this function returns
-   * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. 
+   * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
    *
    * This function blocks until a preroll buffer or EOS is received or the appsink
-   * element is set to the READY/NULL state. 
+   * element is set to the READY/NULL state.
    *
    * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
    */
@@ -393,11 +379,11 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
    * @appsink: the appsink element to emit this signal on
    *
    * This function blocks until a buffer or EOS becomes available or the appsink
-   * element is set to the READY/NULL state. 
+   * element is set to the READY/NULL state.
    *
    * This function will only return buffers when the appsink is in the PLAYING
    * state. All rendered buffers will be put in a queue so that the application
-   * can pull buffers at its own rate. 
+   * can pull buffers at its own rate.
    *
    * Note that when the application does not pull buffers fast enough, the
    * queued buffers could consume a lot of memory, especially when dealing with
@@ -405,7 +391,7 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
    * the "drop" and "max-buffers" properties.
    *
    * If an EOS event was received before any buffers, this function returns
-   * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. 
+   * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
    *
    * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
    */
@@ -419,11 +405,11 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
    * @appsink: the appsink element to emit this signal on
    *
    * This function blocks until a buffer list or EOS becomes available or the appsink
-   * element is set to the READY/NULL state. 
+   * element is set to the READY/NULL state.
    *
    * This function will only return bufferlists when the appsink is in the PLAYING
    * state. All rendered bufferlists will be put in a queue so that the application
-   * can pull bufferlists at its own rate. 
+   * can pull bufferlists at its own rate.
    *
    * Note that when the application does not pull bufferlists fast enough, the
    * queued bufferlists could consume a lot of memory, especially when dealing with
@@ -431,7 +417,7 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
    * the "drop" and "max-buffers" properties.
    *
    * If an EOS event was received before any buffers, this function returns
-   * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. 
+   * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
    *
    * Returns: a #GstBufferList or NULL when the appsink is stopped or EOS.
    */
@@ -948,7 +934,7 @@ not_started:
  * Set the capabilities on the appsink element.  This function takes
  * a copy of the caps structure. After calling this method, the sink will only
  * accept caps that match @caps. If @caps is non-fixed, you must check the caps
- * on the buffers to get the actual used caps. 
+ * on the buffers to get the actual used caps.
  *
  * Since: 0.10.22
  */
@@ -1082,7 +1068,7 @@ gst_app_sink_set_emit_signals (GstAppSink * appsink, gboolean emit)
  *
  * Check if appsink will emit the "new-preroll" and "new-buffer" signals.
  *
- * Returns: %TRUE if @appsink is emiting the "new-preroll" and "new-buffer"
+ * Returns: %TRUE if @appsink is emitting the "new-preroll" and "new-buffer"
  * signals.
  *
  * Since: 0.10.22
@@ -1233,10 +1219,10 @@ gst_app_sink_get_drop (GstAppSink * appsink)
  * when calling gst_app_sink_pull_buffer().
  *
  * If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. 
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
  *
  * This function blocks until a preroll buffer or EOS is received or the appsink
- * element is set to the READY/NULL state. 
+ * element is set to the READY/NULL state.
  *
  * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
  *
@@ -1295,7 +1281,7 @@ not_started:
  * @appsink: a #GstAppSink
  *
  * This function blocks until a buffer or EOS becomes available or the appsink
- * element is set to the READY/NULL state. 
+ * element is set to the READY/NULL state.
  *
  * This function will only return buffers when the appsink is in the PLAYING
  * state. All rendered buffers will be put in a queue so that the application
@@ -1304,7 +1290,7 @@ not_started:
  * especially when dealing with raw video frames.
  *
  * If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. 
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
  *
  * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
  *
@@ -1323,7 +1309,7 @@ gst_app_sink_pull_buffer (GstAppSink * appsink)
  * @appsink: a #GstAppSink
  *
  * This function blocks until a buffer list or EOS becomes available or the
- * appsink element is set to the READY/NULL state. 
+ * appsink element is set to the READY/NULL state.
  *
  * This function will only return buffer lists when the appsink is in the
  * PLAYING state. All rendered buffer lists will be put in a queue so that
@@ -1333,7 +1319,7 @@ gst_app_sink_pull_buffer (GstAppSink * appsink)
  * video frames.
  *
  * If an EOS event was received before any buffer lists, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. 
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
  *
  * Returns: a #GstBufferList or NULL when the appsink is stopped or EOS.
  */
@@ -1355,7 +1341,7 @@ gst_app_sink_pull_buffer_list (GstAppSink * appsink)
  * This is an alternative to using the signals, it has lower overhead and is thus
  * less expensive, but also less flexible.
  *
- * If callbacks are installed, no signals will be emited for performance
+ * If callbacks are installed, no signals will be emitted for performance
  * reasons.
  *
  * Since: 0.10.23
index f051711..24686b9 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-
-/**
- * SECTION:element-appsrc
- *
- * The appsrc element can be used by applications to insert data into a
- * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides
- * external API functions.
- *
- * For the documentation of the API, please see the
- * <link linkend="gst-plugins-base-libs-appsrc">libgstapp</link> section in the
- * GStreamer Plugins Base Libraries documentation.
- * 
- * Since: 0.10.22
- */
-
 /**
  * SECTION:gstappsrc
  * @short_description: Easy way for applications to inject buffers into a
@@ -52,7 +37,7 @@
  * byte buffers.
  *
  * The main way of handing data to the appsrc element is by calling the
- * gst_app_src_push_buffer() method or by emiting the push-buffer action signal.
+ * gst_app_src_push_buffer() method or by emitting the push-buffer action signal.
  * This will put the buffer onto a queue from which appsrc will read from in its
  * streaming thread. It is important to note that data transport will not happen
  * from the thread that performed the push-buffer call.
@@ -64,7 +49,7 @@
  * block the push-buffer method until free data becomes available again.
  *
  * When the internal queue is running out of data, the "need-data" signal is
- * emited, which signals the application that it should start pushing more data
+ * emitted, which signals the application that it should start pushing more data
  * into appsrc.
  *
  * In addition to the "need-data" and "enough-data" signals, appsrc can emit the
@@ -77,7 +62,7 @@
  * These signals allow the application to operate the appsrc in two different
  * ways:
  *
- * The push model, in which the application repeadedly calls the push-buffer method
+ * The push model, in which the application repeatedly calls the push-buffer method
  * with a new buffer. Optionally, the queue size in the appsrc can be controlled
  * with the enough-data and need-data signals by respectively stopping/starting
  * the push-buffer calls. This is a typical mode of operation for the
@@ -95,7 +80,7 @@
  * For the stream and seekable modes, setting this property is optional but
  * recommended.
  *
- * When the application is finished pushing data into appsrc, it should call 
+ * When the application is finished pushing data into appsrc, it should call
  * gst_app_src_end_of_stream() or emit the end-of-stream action signal. After
  * this call, no more buffers can be pushed into appsrc until a flushing seek
  * happened or the state of the appsrc has gone through READY.
 #include "gstapp-marshal.h"
 #include "gstappsrc.h"
 
+#include "gst/glib-compat-private.h"
+
 struct _GstAppSrcPrivate
 {
   GCond *cond;
@@ -232,6 +219,7 @@ static void gst_app_src_get_property (GObject * object, guint prop_id,
 static void gst_app_src_set_latencies (GstAppSrc * appsrc,
     gboolean do_min, guint64 min, gboolean do_max, guint64 max);
 
+static GstCaps *gst_app_src_internal_get_caps (GstBaseSrc * bsrc);
 static GstFlowReturn gst_app_src_create (GstBaseSrc * bsrc,
     guint64 offset, guint size, GstBuffer ** buf);
 static gboolean gst_app_src_start (GstBaseSrc * bsrc);
@@ -275,8 +263,8 @@ gst_app_src_base_init (gpointer g_class)
       "Generic/Source", "Allow the application to feed buffers to a pipeline",
       "David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_app_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_app_src_template);
 }
 
 static void
@@ -348,7 +336,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
   /**
    * GstAppSrc::block
    *
-   * When max-bytes are queued and after the enough-data signal has been emited,
+   * When max-bytes are queued and after the enough-data signal has been emitted,
    * block any further push-buffer calls until the amount of queued bytes drops
    * below the max-bytes limit.
    */
@@ -421,7 +409,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
 
   /**
    * GstAppSrc::need-data:
-   * @appsrc: the appsrc element that emited the signal
+   * @appsrc: the appsrc element that emitted the signal
    * @length: the amount of bytes needed.
    *
    * Signal that the source needs more data. In the callback or from another
@@ -440,11 +428,11 @@ gst_app_src_class_init (GstAppSrcClass * klass)
 
   /**
    * GstAppSrc::enough-data:
-   * @appsrc: the appsrc element that emited the signal
+   * @appsrc: the appsrc element that emitted the signal
    *
    * Signal that the source has enough data. It is recommended that the
    * application stops calling push-buffer until the need-data signal is
-   * emited again to avoid excessive buffer queueing.
+   * emitted again to avoid excessive buffer queueing.
    */
   gst_app_src_signals[SIGNAL_ENOUGH_DATA] =
       g_signal_new ("enough-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
@@ -453,7 +441,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
 
   /**
    * GstAppSrc::seek-data:
-   * @appsrc: the appsrc element that emited the signal
+   * @appsrc: the appsrc element that emitted the signal
    * @offset: the offset to seek to
    *
    * Seek to the given offset. The next push-buffer should produce buffers from
@@ -490,7 +478,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
     * GstAppSrc::end-of-stream:
     * @appsrc: the appsrc
     *
-    * Notify @appsrc that no more buffer are available. 
+    * Notify @appsrc that no more buffer are available.
     */
   gst_app_src_signals[SIGNAL_END_OF_STREAM] =
       g_signal_new ("end-of-stream", G_TYPE_FROM_CLASS (klass),
@@ -498,6 +486,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
           end_of_stream), NULL, NULL, __gst_app_marshal_ENUM__VOID,
       GST_TYPE_FLOW_RETURN, 0, G_TYPE_NONE);
 
+  basesrc_class->get_caps = gst_app_src_internal_get_caps;
   basesrc_class->create = gst_app_src_create;
   basesrc_class->start = gst_app_src_start;
   basesrc_class->stop = gst_app_src_stop;
@@ -580,6 +569,12 @@ gst_app_src_finalize (GObject * obj)
   G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
 
+static GstCaps *
+gst_app_src_internal_get_caps (GstBaseSrc * bsrc)
+{
+  return gst_app_src_get_caps (GST_APP_SRC_CAST (bsrc));
+}
+
 static void
 gst_app_src_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
@@ -1025,7 +1020,7 @@ gst_app_src_create (GstBaseSrc * bsrc, guint64 offset, guint size,
        * random-access mode (where a buffer is normally pushed in the above
        * signal) we can still be empty because the pushed buffer got flushed or
        * when the application pushes the requested buffer later, we support both
-       * possiblities. */
+       * possibilities. */
       if (!g_queue_is_empty (priv->queue))
         continue;
 
@@ -1083,7 +1078,7 @@ seek_error:
  * a copy of the caps structure. After calling this method, the source will
  * only produce caps that match @caps. @caps must be fixed and the caps on the
  * buffers must match the caps or left NULL.
- * 
+ *
  * Since: 0.10.22
  */
 void
@@ -1116,7 +1111,7 @@ gst_app_src_set_caps (GstAppSrc * appsrc, const GstCaps * caps)
  * Get the configured caps on @appsrc.
  *
  * Returns: the #GstCaps produced by the source. gst_caps_unref() after usage.
- * 
+ *
  * Since: 0.10.22
  */
 GstCaps *
@@ -1144,8 +1139,8 @@ gst_app_src_get_caps (GstAppSrc * appsrc)
  * @size: the size to set
  *
  * Set the size of the stream in bytes. A value of -1 means that the size is
- * not known. 
- * 
+ * not known.
+ *
  * Since: 0.10.22
  */
 void
@@ -1168,10 +1163,10 @@ gst_app_src_set_size (GstAppSrc * appsrc, gint64 size)
  * @appsrc: a #GstAppSrc
  *
  * Get the size of the stream in bytes. A value of -1 means that the size is
- * not known. 
+ * not known.
  *
  * Returns: the size of the stream previously set with gst_app_src_set_size();
- * 
+ *
  * Since: 0.10.22
  */
 gint64
@@ -1200,8 +1195,8 @@ gst_app_src_get_size (GstAppSrc * appsrc)
  * Set the stream type on @appsrc. For seekable streams, the "seek" signal must
  * be connected to.
  *
- * A stream_type stream 
- * 
+ * A stream_type stream
+ *
  * Since: 0.10.22
  */
 void
@@ -1227,7 +1222,7 @@ gst_app_src_set_stream_type (GstAppSrc * appsrc, GstAppStreamType type)
  * with gst_app_src_set_stream_type().
  *
  * Returns: the stream type.
- * 
+ *
  * Since: 0.10.22
  */
 GstAppStreamType
@@ -1256,7 +1251,7 @@ gst_app_src_get_stream_type (GstAppSrc * appsrc)
  * Set the maximum amount of bytes that can be queued in @appsrc.
  * After the maximum amount of bytes are queued, @appsrc will emit the
  * "enough-data" signal.
- * 
+ *
  * Since: 0.10.22
  */
 void
@@ -1285,7 +1280,7 @@ gst_app_src_set_max_bytes (GstAppSrc * appsrc, guint64 max)
  * Get the maximum amount of bytes that can be queued in @appsrc.
  *
  * Returns: The maximum amount of bytes that can be queued.
- * 
+ *
  * Since: 0.10.22
  */
 guint64
@@ -1339,7 +1334,7 @@ gst_app_src_set_latencies (GstAppSrc * appsrc, gboolean do_min, guint64 min,
  *
  * Configure the @min and @max latency in @src. If @min is set to -1, the
  * default latency calculations for pseudo-live sources will be used.
- * 
+ *
  * Since: 0.10.22
  */
 void
@@ -1355,7 +1350,7 @@ gst_app_src_set_latency (GstAppSrc * appsrc, guint64 min, guint64 max)
  * @max: the min latency
  *
  * Retrieve the min and max latencies in @min and @max respectively.
- * 
+ *
  * Since: 0.10.22
  */
 void
@@ -1406,7 +1401,7 @@ gst_app_src_set_emit_signals (GstAppSrc * appsrc, gboolean emit)
  *
  * Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
  *
- * Returns: %TRUE if @appsrc is emiting the "new-preroll" and "new-buffer"
+ * Returns: %TRUE if @appsrc is emitting the "new-preroll" and "new-buffer"
  * signals.
  *
  * Since: 0.10.23
@@ -1531,7 +1526,7 @@ eos:
  * Returns: #GST_FLOW_OK when the buffer was successfuly queued.
  * #GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
  * #GST_FLOW_UNEXPECTED when EOS occured.
- * 
+ *
  * Since: 0.10.22
  */
 GstFlowReturn
@@ -1557,7 +1552,7 @@ gst_app_src_push_buffer_action (GstAppSrc * appsrc, GstBuffer * buffer)
  *
  * Returns: #GST_FLOW_OK when the EOS was successfuly queued.
  * #GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
- * 
+ *
  * Since: 0.10.22
  */
 GstFlowReturn
@@ -1570,7 +1565,7 @@ gst_app_src_end_of_stream (GstAppSrc * appsrc)
   priv = appsrc->priv;
 
   g_mutex_lock (priv->mutex);
-  /* can't accept buffers when we are flushing. We can accept them when we are 
+  /* can't accept buffers when we are flushing. We can accept them when we are
    * EOS although it will not do anything. */
   if (priv->flushing)
     goto flushing;
@@ -1603,7 +1598,7 @@ flushing:
  * This is an alternative to using the signals, it has lower overhead and is thus
  * less expensive, but also less flexible.
  *
- * If callbacks are installed, no signals will be emited for performance
+ * If callbacks are installed, no signals will be emitted for performance
  * reasons.
  *
  * Since: 0.10.23
index 041cb68..d452ebf 100644 (file)
@@ -50,7 +50,7 @@ typedef struct _GstAppSrcPrivate GstAppSrcPrivate;
  *    and when it is set to -1, any number of bytes can be pushed into @appsrc.
  * @enough_data: Called when appsrc has enough data. It is recommended that the
  *    application stops calling push-buffer until the need_data callback is
- *    emited again to avoid excessive buffer queueing.
+ *    emitted again to avoid excessive buffer queueing.
  * @seek_data: Called when a seek should be performed to the offset.
  *    The next push-buffer should produce buffers from the new @offset.
  *    This callback is only called for seekable stream types.
index e531e73..6e89c47 100644 (file)
@@ -16,17 +16,21 @@ lib_LTLIBRARIES = \
 
 CLEANFILES = $(BUILT_SOURCES)
 
+# FIXME 0.11: rename GstBaseAudioSink to GstAudioBaseSink or merge with GstAudioSink
 libgstaudio_@GST_MAJORMINOR@_la_SOURCES = \
        audio.c \
        gstringbuffer.c \
        gstaudioclock.c \
        mixerutils.c \
        multichannel.c \
+       gstaudiodecoder.c \
+       gstaudioencoder.c \
        gstbaseaudiosink.c \
        gstbaseaudiosrc.c \
        gstaudiofilter.c \
        gstaudiosink.c \
-       gstaudiosrc.c
+       gstaudiosrc.c \
+       gstaudioiec61937.c
 nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES = $(built_sources) $(built_headers)
 
 libgstaudio_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/audio
@@ -35,26 +39,26 @@ libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
        gstringbuffer.h \
        gstaudioclock.h \
        gstaudiofilter.h \
+       gstaudiodecoder.h \
+       gstaudioencoder.h \
        gstbaseaudiosink.h \
        gstbaseaudiosrc.h \
        gstaudiosink.h \
        gstaudiosrc.h \
        mixerutils.h \
-       multichannel.h
+       multichannel.h \
+       gstaudioiec61937.h
 
 nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
        audio-enumtypes.h
 
 libgstaudio_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstaudio_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) \
-  $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
+libgstaudio_@GST_MAJORMINOR@_la_LIBADD = \
+  $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+  $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+  $(GST_BASE_LIBS) $(GST_LIBS)
 libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
-noinst_PROGRAMS = testchannels
-testchannels_SOURCES = testchannels.c
-testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-testchannels_LDADD = $(GST_LIBS)
-
 include $(top_srcdir)/common/gst-glib-gen.mak
 
 if HAVE_INTROSPECTION
index beee94a..5b19b05 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -25,7 +25,6 @@
 
 
 
-
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -45,7 +44,6 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = testchannels$(EXEEXT)
 DIST_COMMON = $(libgstaudio_@GST_MAJORMINOR@include_HEADERS) \
        $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(top_srcdir)/common/gst-glib-gen.mak TODO
@@ -70,6 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -115,26 +114,35 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" \
        "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-       $(am__DEPENDENCIES_1) \
-       $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
+libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstaudio_@GST_MAJORMINOR@_la-audio.lo \
        libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo \
        libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo \
        libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo \
        libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo \
+       libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo \
+       libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo \
        libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo \
        libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo \
        libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo \
        libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo \
-       libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo
+       libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo \
+       libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo
 am__objects_1 = libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo
 am__objects_2 =
 nodist_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1) \
@@ -142,20 +150,13 @@ nodist_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1) \
 libgstaudio_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) \
        $(nodist_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstaudio_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
        $(libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
-PROGRAMS = $(noinst_PROGRAMS)
-am_testchannels_OBJECTS = testchannels-testchannels.$(OBJEXT)
-testchannels_OBJECTS = $(am_testchannels_OBJECTS)
-testchannels_DEPENDENCIES = $(am__DEPENDENCIES_1)
-testchannels_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testchannels_CFLAGS) \
-       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -166,27 +167,25 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstaudio_@GST_MAJORMINOR@_la_SOURCES) \
-       $(nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES) \
-       $(testchannels_SOURCES)
-DIST_SOURCES = $(libgstaudio_@GST_MAJORMINOR@_la_SOURCES) \
-       $(testchannels_SOURCES)
+       $(nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES)
+DIST_SOURCES = $(libgstaudio_@GST_MAJORMINOR@_la_SOURCES)
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstaudio_@GST_MAJORMINOR@include_HEADERS) \
        $(nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS)
@@ -253,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -313,6 +313,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -322,9 +323,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -347,6 +351,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -419,10 +424,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -456,7 +464,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -493,17 +500,22 @@ lib_LTLIBRARIES = \
        libgstaudio-@GST_MAJORMINOR@.la
 
 CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
+
+# FIXME 0.11: rename GstBaseAudioSink to GstAudioBaseSink or merge with GstAudioSink
 libgstaudio_@GST_MAJORMINOR@_la_SOURCES = \
        audio.c \
        gstringbuffer.c \
        gstaudioclock.c \
        mixerutils.c \
        multichannel.c \
+       gstaudiodecoder.c \
+       gstaudioencoder.c \
        gstbaseaudiosink.c \
        gstbaseaudiosrc.c \
        gstaudiofilter.c \
        gstaudiosink.c \
-       gstaudiosrc.c
+       gstaudiosrc.c \
+       gstaudioiec61937.c
 
 nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES = $(built_sources) $(built_headers)
 libgstaudio_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/audio
@@ -512,24 +524,26 @@ libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
        gstringbuffer.h \
        gstaudioclock.h \
        gstaudiofilter.h \
+       gstaudiodecoder.h \
+       gstaudioencoder.h \
        gstbaseaudiosink.h \
        gstbaseaudiosrc.h \
        gstaudiosink.h \
        gstaudiosrc.h \
        mixerutils.h \
-       multichannel.h
+       multichannel.h \
+       gstaudioiec61937.h
 
 nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
        audio-enumtypes.h
 
 libgstaudio_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstaudio_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) \
-  $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
+libgstaudio_@GST_MAJORMINOR@_la_LIBADD = \
+  $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+  $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+  $(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-testchannels_SOURCES = testchannels.c
-testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-testchannels_LDADD = $(GST_LIBS)
 enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstAudio-@GST_MAJORMINOR@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, \
@@ -577,6 +591,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -617,21 +632,9 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstaudio-@GST_MAJORMINOR@.la: $(libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) $(libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstaudio-@GST_MAJORMINOR@.la: $(libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) $(libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstaudio_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) $(libgstaudio_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
-clean-noinstPROGRAMS:
-       @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-       echo " rm -f" $$list; \
-       rm -f $$list || exit $$?; \
-       test -n "$(EXEEXT)" || exit 0; \
-       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-       echo " rm -f" $$list; \
-       rm -f $$list
-testchannels$(EXEEXT): $(testchannels_OBJECTS) $(testchannels_DEPENDENCIES) 
-       @rm -f testchannels$(EXEEXT)
-       $(AM_V_CCLD)$(testchannels_LINK) $(testchannels_OBJECTS) $(testchannels_LDADD) $(LIBS)
-
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
 
@@ -641,7 +644,10 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Plo@am__quote@
@@ -649,135 +655,125 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchannels-testchannels.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudio_@GST_MAJORMINOR@_la-audio.lo: audio.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-audio.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='audio.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audio.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo: gstringbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo `test -f 'gstringbuffer.c' || echo '$(srcdir)/'`gstringbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstringbuffer.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstringbuffer.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo `test -f 'gstringbuffer.c' || echo '$(srcdir)/'`gstringbuffer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo `test -f 'gstringbuffer.c' || echo '$(srcdir)/'`gstringbuffer.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo: gstaudioclock.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudioclock.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudioclock.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.c
 
 libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo: mixerutils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mixerutils.c' object='libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mixerutils.c' object='libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
 
 libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo: multichannel.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo `test -f 'multichannel.c' || echo '$(srcdir)/'`multichannel.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='multichannel.c' object='libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='multichannel.c' object='libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo `test -f 'multichannel.c' || echo '$(srcdir)/'`multichannel.c
+
+libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo: gstaudiodecoder.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo `test -f 'gstaudiodecoder.c' || echo '$(srcdir)/'`gstaudiodecoder.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudiodecoder.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo `test -f 'gstaudiodecoder.c' || echo '$(srcdir)/'`gstaudiodecoder.c
+
+libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo: gstaudioencoder.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo `test -f 'gstaudioencoder.c' || echo '$(srcdir)/'`gstaudioencoder.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudioencoder.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo `test -f 'multichannel.c' || echo '$(srcdir)/'`multichannel.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo `test -f 'gstaudioencoder.c' || echo '$(srcdir)/'`gstaudioencoder.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo: gstbaseaudiosink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo `test -f 'gstbaseaudiosink.c' || echo '$(srcdir)/'`gstbaseaudiosink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstbaseaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstbaseaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo `test -f 'gstbaseaudiosink.c' || echo '$(srcdir)/'`gstbaseaudiosink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo `test -f 'gstbaseaudiosink.c' || echo '$(srcdir)/'`gstbaseaudiosink.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo: gstbaseaudiosrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo `test -f 'gstbaseaudiosrc.c' || echo '$(srcdir)/'`gstbaseaudiosrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstbaseaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstbaseaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo `test -f 'gstbaseaudiosrc.c' || echo '$(srcdir)/'`gstbaseaudiosrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo `test -f 'gstbaseaudiosrc.c' || echo '$(srcdir)/'`gstbaseaudiosrc.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo: gstaudiofilter.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo `test -f 'gstaudiofilter.c' || echo '$(srcdir)/'`gstaudiofilter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudiofilter.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudiofilter.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo `test -f 'gstaudiofilter.c' || echo '$(srcdir)/'`gstaudiofilter.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo `test -f 'gstaudiofilter.c' || echo '$(srcdir)/'`gstaudiofilter.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo: gstaudiosink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo `test -f 'gstaudiosink.c' || echo '$(srcdir)/'`gstaudiosink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo `test -f 'gstaudiosink.c' || echo '$(srcdir)/'`gstaudiosink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo `test -f 'gstaudiosink.c' || echo '$(srcdir)/'`gstaudiosink.c
 
 libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo: gstaudiosrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.c
+
+libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo: gstaudioiec61937.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo `test -f 'gstaudioiec61937.c' || echo '$(srcdir)/'`gstaudioiec61937.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudioiec61937.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo `test -f 'gstaudioiec61937.c' || echo '$(srcdir)/'`gstaudioiec61937.c
 
 libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo: audio-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo `test -f 'audio-enumtypes.c' || echo '$(srcdir)/'`audio-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='audio-enumtypes.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo `test -f 'audio-enumtypes.c' || echo '$(srcdir)/'`audio-enumtypes.c
-
-testchannels-testchannels.o: testchannels.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.o -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='testchannels.c' object='testchannels-testchannels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audio-enumtypes.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
-
-testchannels-testchannels.obj: testchannels.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.obj -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='testchannels.c' object='testchannels-testchannels.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo `test -f 'audio-enumtypes.c' || echo '$(srcdir)/'`audio-enumtypes.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -801,9 +797,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -821,9 +815,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstaudio_@GST_MAJORMINOR@includeHEADERS: $(libgstaudio_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstaudio_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"
@@ -841,9 +833,7 @@ uninstall-libgstaudio_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstaudio_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstaudio_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 install-nodist_libgstaudio_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstaudio_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"
@@ -861,9 +851,7 @@ uninstall-nodist_libgstaudio_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstaudio_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -950,7 +938,7 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
        for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
@@ -966,10 +954,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -986,7 +979,7 @@ maintainer-clean-generic:
 clean: clean-am
 
 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-       clean-noinstPROGRAMS mostlyclean-am
+       mostlyclean-am
 
 distclean: distclean-am
        -rm -rf ./$(DEPDIR)
@@ -1063,13 +1056,13 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
 .MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
-       distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-girDATA install-html install-html-am \
-       install-info install-info-am install-libLTLIBRARIES \
+       clean-libLTLIBRARIES clean-libtool ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-girDATA \
+       install-html install-html-am install-info install-info-am \
+       install-libLTLIBRARIES \
        install-libgstaudio_@GST_MAJORMINOR@includeHEADERS install-man \
        install-nodist_libgstaudio_@GST_MAJORMINOR@includeHEADERS \
        install-pdf install-pdf-am install-ps install-ps-am \
index bf99a52..d2d15c3 100644 (file)
@@ -32,6 +32,8 @@
 
 #include <gst/gststructure.h>
 
+#include <string.h>
+
 /**
  * gst_audio_frame_byte_size:
  * @pad: the #GstPad to get the caps from
@@ -268,6 +270,437 @@ gst_audio_structure_set_int (GstStructure * structure, GstAudioFieldFlag flag)
 }
 #endif /* GST_REMOVE_DEPRECATED */
 
+#define SINT (GST_AUDIO_FORMAT_FLAG_INTEGER | GST_AUDIO_FORMAT_FLAG_SIGNED)
+#define UINT (GST_AUDIO_FORMAT_FLAG_INTEGER)
+
+#define MAKE_FORMAT(str,flags,end,width,depth,silent) \
+  { GST_AUDIO_FORMAT_ ##str, G_STRINGIFY(str), flags, end, width, depth, silent }
+
+#define SILENT_0         { 0, 0, 0, 0, 0, 0, 0, 0 }
+#define SILENT_U8        { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }
+#define SILENT_U16LE     { 0x00, 0x80,  0x00, 0x80,  0x00, 0x80,  0x00, 0x80 }
+#define SILENT_U16BE     { 0x80, 0x00,  0x80, 0x00,  0x80, 0x00,  0x80, 0x00 }
+#define SILENT_U24_32LE  { 0x00, 0x00, 0x80, 0x00,  0x00, 0x00, 0x80, 0x00 }
+#define SILENT_U24_32BE  { 0x00, 0x80, 0x00, 0x00,  0x00, 0x80, 0x00, 0x00 }
+#define SILENT_U32LE     { 0x00, 0x00, 0x00, 0x80,  0x00, 0x00, 0x00, 0x80 }
+#define SILENT_U32BE     { 0x80, 0x00, 0x00, 0x00,  0x80, 0x00, 0x00, 0x00 }
+#define SILENT_U24LE     { 0x00, 0x00, 0x80,  0x00, 0x00, 0x80 }
+#define SILENT_U24BE     { 0x80, 0x00, 0x00,  0x80, 0x00, 0x00 }
+#define SILENT_U20LE     { 0x00, 0x00, 0x08,  0x00, 0x00, 0x08 }
+#define SILENT_U20BE     { 0x08, 0x00, 0x00,  0x08, 0x00, 0x00 }
+#define SILENT_U18LE     { 0x00, 0x00, 0x02,  0x00, 0x00, 0x02 }
+#define SILENT_U18BE     { 0x02, 0x00, 0x00,  0x02, 0x00, 0x00 }
+
+static GstAudioFormatInfo formats[] = {
+  {GST_AUDIO_FORMAT_UNKNOWN, "UNKNOWN", 0, 0, 0, 0},
+  /* 8 bit */
+  MAKE_FORMAT (S8, SINT, 0, 8, 8, SILENT_0),
+  MAKE_FORMAT (U8, UINT, 0, 8, 8, SILENT_U8),
+  /* 16 bit */
+  MAKE_FORMAT (S16LE, SINT, G_LITTLE_ENDIAN, 16, 16, SILENT_0),
+  MAKE_FORMAT (S16BE, SINT, G_BIG_ENDIAN, 16, 16, SILENT_0),
+  MAKE_FORMAT (U16LE, UINT, G_LITTLE_ENDIAN, 16, 16, SILENT_U16LE),
+  MAKE_FORMAT (U16BE, UINT, G_BIG_ENDIAN, 16, 16, SILENT_U16BE),
+  /* 24 bit in low 3 bytes of 32 bits */
+  MAKE_FORMAT (S24_32LE, SINT, G_LITTLE_ENDIAN, 32, 24, SILENT_0),
+  MAKE_FORMAT (S24_32BE, SINT, G_BIG_ENDIAN, 32, 24, SILENT_0),
+  MAKE_FORMAT (U24_32LE, UINT, G_LITTLE_ENDIAN, 32, 24, SILENT_U24_32LE),
+  MAKE_FORMAT (U24_32BE, UINT, G_BIG_ENDIAN, 32, 24, SILENT_U24_32BE),
+  /* 32 bit */
+  MAKE_FORMAT (S32LE, SINT, G_LITTLE_ENDIAN, 32, 32, SILENT_0),
+  MAKE_FORMAT (S32BE, SINT, G_BIG_ENDIAN, 32, 32, SILENT_0),
+  MAKE_FORMAT (U32LE, UINT, G_LITTLE_ENDIAN, 32, 32, SILENT_U32LE),
+  MAKE_FORMAT (U32BE, UINT, G_BIG_ENDIAN, 32, 32, SILENT_U32BE),
+  /* 24 bit in 3 bytes */
+  MAKE_FORMAT (S24LE, SINT, G_LITTLE_ENDIAN, 24, 24, SILENT_0),
+  MAKE_FORMAT (S24BE, SINT, G_BIG_ENDIAN, 24, 24, SILENT_0),
+  MAKE_FORMAT (U24LE, UINT, G_LITTLE_ENDIAN, 24, 24, SILENT_U24LE),
+  MAKE_FORMAT (U24BE, UINT, G_BIG_ENDIAN, 24, 24, SILENT_U24BE),
+  /* 20 bit in 3 bytes */
+  MAKE_FORMAT (S20LE, SINT, G_LITTLE_ENDIAN, 24, 20, SILENT_0),
+  MAKE_FORMAT (S20BE, SINT, G_BIG_ENDIAN, 24, 20, SILENT_0),
+  MAKE_FORMAT (U20LE, UINT, G_LITTLE_ENDIAN, 24, 20, SILENT_U20LE),
+  MAKE_FORMAT (U20BE, UINT, G_BIG_ENDIAN, 24, 20, SILENT_U20BE),
+  /* 18 bit in 3 bytes */
+  MAKE_FORMAT (S18LE, SINT, G_LITTLE_ENDIAN, 24, 18, SILENT_0),
+  MAKE_FORMAT (S18BE, SINT, G_BIG_ENDIAN, 24, 18, SILENT_0),
+  MAKE_FORMAT (U18LE, UINT, G_LITTLE_ENDIAN, 24, 18, SILENT_U18LE),
+  MAKE_FORMAT (U18BE, UINT, G_BIG_ENDIAN, 24, 18, SILENT_U18BE),
+  /* float */
+  MAKE_FORMAT (F32LE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_LITTLE_ENDIAN, 32, 32,
+      SILENT_0),
+  MAKE_FORMAT (F32BE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_BIG_ENDIAN, 32, 32,
+      SILENT_0),
+  MAKE_FORMAT (F64LE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_LITTLE_ENDIAN, 64, 64,
+      SILENT_0),
+  MAKE_FORMAT (F64BE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_BIG_ENDIAN, 64, 64,
+      SILENT_0)
+};
+
+static GstAudioFormat
+gst_audio_format_from_caps_structure (const GstStructure * s)
+{
+  gint endianness, width, depth;
+  guint i;
+
+  if (gst_structure_has_name (s, "audio/x-raw-int")) {
+    gboolean sign;
+
+    if (!gst_structure_get_boolean (s, "signed", &sign))
+      goto missing_field_signed;
+
+    if (!gst_structure_get_int (s, "endianness", &endianness))
+      goto missing_field_endianness;
+
+    if (!gst_structure_get_int (s, "width", &width))
+      goto missing_field_width;
+
+    if (!gst_structure_get_int (s, "depth", &depth))
+      goto missing_field_depth;
+
+    for (i = 0; i < G_N_ELEMENTS (formats); i++) {
+      if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (&formats[i]) &&
+          sign == GST_AUDIO_FORMAT_INFO_IS_SIGNED (&formats[i]) &&
+          GST_AUDIO_FORMAT_INFO_ENDIANNESS (&formats[i]) == endianness &&
+          GST_AUDIO_FORMAT_INFO_WIDTH (&formats[i]) == width &&
+          GST_AUDIO_FORMAT_INFO_DEPTH (&formats[i]) == depth) {
+        return GST_AUDIO_FORMAT_INFO_FORMAT (&formats[i]);
+      }
+    }
+  } else if (gst_structure_has_name (s, "audio/x-raw-float")) {
+    /* fallbacks are for backwards compatibility (is this needed at all?) */
+    if (!gst_structure_get_int (s, "endianness", &endianness)) {
+      GST_WARNING ("float audio caps without endianness %" GST_PTR_FORMAT, s);
+      endianness = G_BYTE_ORDER;
+    }
+
+    if (!gst_structure_get_int (s, "width", &width)) {
+      GST_WARNING ("float audio caps without width %" GST_PTR_FORMAT, s);
+      width = 32;
+    }
+
+    for (i = 0; i < G_N_ELEMENTS (formats); i++) {
+      if (GST_AUDIO_FORMAT_INFO_IS_FLOAT (&formats[i]) &&
+          GST_AUDIO_FORMAT_INFO_ENDIANNESS (&formats[i]) == endianness &&
+          GST_AUDIO_FORMAT_INFO_WIDTH (&formats[i]) == width) {
+        return GST_AUDIO_FORMAT_INFO_FORMAT (&formats[i]);
+      }
+    }
+  }
+
+  /* no match */
+  return GST_AUDIO_FORMAT_UNKNOWN;
+
+missing_field_signed:
+  {
+    GST_ERROR ("missing 'signed' field in audio caps %" GST_PTR_FORMAT, s);
+    return GST_AUDIO_FORMAT_UNKNOWN;
+  }
+missing_field_endianness:
+  {
+    GST_ERROR ("missing 'endianness' field in audio caps %" GST_PTR_FORMAT, s);
+    return GST_AUDIO_FORMAT_UNKNOWN;
+  }
+missing_field_depth:
+  {
+    GST_ERROR ("missing 'depth' field in audio caps %" GST_PTR_FORMAT, s);
+    return GST_AUDIO_FORMAT_UNKNOWN;
+  }
+missing_field_width:
+  {
+    GST_ERROR ("missing 'width' field in audio caps %" GST_PTR_FORMAT, s);
+    return GST_AUDIO_FORMAT_UNKNOWN;
+  }
+}
+
+/* FIXME: remove these if we don't actually go for deep alloc positions */
+void
+gst_audio_info_init (GstAudioInfo * info)
+{
+  memset (info, 0, sizeof (GstAudioInfo));
+}
+
+void
+gst_audio_info_clear (GstAudioInfo * info)
+{
+  memset (info, 0, sizeof (GstAudioInfo));
+}
+
+GstAudioInfo *
+gst_audio_info_copy (GstAudioInfo * info)
+{
+  return (GstAudioInfo *) g_slice_copy (sizeof (GstAudioInfo), info);
+}
+
+void
+gst_audio_info_free (GstAudioInfo * info)
+{
+  g_slice_free (GstAudioInfo, info);
+}
+
+static void
+gst_audio_info_set_format (GstAudioInfo * info, GstAudioFormat format,
+    gint rate, gint channels)
+{
+  const GstAudioFormatInfo *finfo;
+
+  g_return_if_fail (info != NULL);
+  g_return_if_fail (format != GST_AUDIO_FORMAT_UNKNOWN);
+
+  finfo = &formats[format];
+
+  info->flags = 0;
+  info->finfo = finfo;
+  info->rate = rate;
+  info->channels = channels;
+  info->bpf = (finfo->width * channels) / 8;
+}
+
+/* from multichannel.c */
+void priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info);
+
+/**
+ * gst_audio_info_from_caps:
+ * @info: a #GstAudioInfo
+ * @caps: a #GstCaps
+ *
+ * Parse @caps and update @info.
+ *
+ * Returns: TRUE if @caps could be parsed
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_info_from_caps (GstAudioInfo * info, const GstCaps * caps)
+{
+  GstStructure *str;
+  GstAudioFormat format;
+  gint rate, channels;
+  const GValue *pos_val_arr, *pos_val_entry;
+  gint i;
+
+  g_return_val_if_fail (info != NULL, FALSE);
+  g_return_val_if_fail (caps != NULL, FALSE);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+
+  GST_DEBUG ("parsing caps %" GST_PTR_FORMAT, caps);
+
+  str = gst_caps_get_structure (caps, 0);
+
+  format = gst_audio_format_from_caps_structure (str);
+  if (format == GST_AUDIO_FORMAT_UNKNOWN)
+    goto unknown_format;
+
+  if (!gst_structure_get_int (str, "rate", &rate))
+    goto no_rate;
+  if (!gst_structure_get_int (str, "channels", &channels))
+    goto no_channels;
+
+  gst_audio_info_set_format (info, format, rate, channels);
+
+  pos_val_arr = gst_structure_get_value (str, "channel-positions");
+  if (pos_val_arr) {
+    if (channels <= G_N_ELEMENTS (info->position)) {
+      for (i = 0; i < channels; i++) {
+        pos_val_entry = gst_value_array_get_value (pos_val_arr, i);
+        info->position[i] = g_value_get_enum (pos_val_entry);
+      }
+    } else {
+      /* for that many channels, the positions are always NONE */
+      for (i = 0; i < G_N_ELEMENTS (info->position); i++)
+        info->position[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
+      info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS;
+    }
+  } else {
+    info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS;
+    priv_gst_audio_info_fill_default_channel_positions (info);
+  }
+
+  return TRUE;
+
+  /* ERROR */
+unknown_format:
+  {
+    GST_ERROR ("unknown format given");
+    return FALSE;
+  }
+no_rate:
+  {
+    GST_ERROR ("no rate property given");
+    return FALSE;
+  }
+no_channels:
+  {
+    GST_ERROR ("no channels property given");
+    return FALSE;
+  }
+}
+
+/**
+ * gst_audio_info_to_caps:
+ * @info: a #GstAudioInfo
+ *
+ * Convert the values of @info into a #GstCaps.
+ *
+ * Returns: (transfer full): the new #GstCaps containing the
+ *          info of @info.
+ *
+ * Since: 0.10.36
+ */
+GstCaps *
+gst_audio_info_to_caps (GstAudioInfo * info)
+{
+  GstCaps *caps;
+
+  g_return_val_if_fail (info != NULL, NULL);
+  g_return_val_if_fail (info->finfo != NULL, NULL);
+  g_return_val_if_fail (info->finfo->format != GST_AUDIO_FORMAT_UNKNOWN, NULL);
+
+  if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (info->finfo)) {
+    caps = gst_caps_new_simple ("audio/x-raw-int",
+        "width", G_TYPE_INT, GST_AUDIO_INFO_WIDTH (info),
+        "depth", G_TYPE_INT, GST_AUDIO_INFO_DEPTH (info),
+        "endianness", G_TYPE_INT,
+        GST_AUDIO_FORMAT_INFO_ENDIANNESS (info->finfo), "signed",
+        G_TYPE_BOOLEAN, GST_AUDIO_FORMAT_INFO_IS_SIGNED (info->finfo), "rate",
+        G_TYPE_INT, GST_AUDIO_INFO_RATE (info), "channels", G_TYPE_INT,
+        GST_AUDIO_INFO_CHANNELS (info), NULL);
+  } else if (GST_AUDIO_FORMAT_INFO_IS_FLOAT (info->finfo)) {
+    caps = gst_caps_new_simple ("audio/x-raw-float",
+        "width", G_TYPE_INT, GST_AUDIO_INFO_WIDTH (info),
+        "endianness", G_TYPE_INT,
+        GST_AUDIO_FORMAT_INFO_ENDIANNESS (info->finfo), "rate", G_TYPE_INT,
+        GST_AUDIO_INFO_RATE (info), "channels", G_TYPE_INT,
+        GST_AUDIO_INFO_CHANNELS (info), NULL);
+  } else {
+    GST_ERROR ("unknown audio format, neither integer nor float");
+    return NULL;
+  }
+
+  if (info->channels > 2) {
+    GValue pos_val_arr = { 0 }
+    , pos_val_entry = {
+    0};
+    GstStructure *str;
+    gint i;
+
+    /* build gvaluearray from positions */
+    g_value_init (&pos_val_arr, GST_TYPE_ARRAY);
+    g_value_init (&pos_val_entry, GST_TYPE_AUDIO_CHANNEL_POSITION);
+    for (i = 0; i < info->channels; i++) {
+      /* if we have many many channels, all positions are NONE */
+      if (info->channels <= 64)
+        g_value_set_enum (&pos_val_entry, info->position[i]);
+      else
+        g_value_set_enum (&pos_val_entry, GST_AUDIO_CHANNEL_POSITION_NONE);
+
+      gst_value_array_append_value (&pos_val_arr, &pos_val_entry);
+    }
+    g_value_unset (&pos_val_entry);
+
+    /* add to structure */
+    str = gst_caps_get_structure (caps, 0);
+    gst_structure_set_value (str, "channel-positions", &pos_val_arr);
+    g_value_unset (&pos_val_arr);
+  }
+
+  return caps;
+}
+
+/**
+ * gst_audio_format_convert:
+ * @info: a #GstAudioInfo
+ * @src_format: #GstFormat of the @src_value
+ * @src_value: value to convert
+ * @dest_format: #GstFormat of the @dest_value
+ * @dest_value: pointer to destination value
+ *
+ * Converts among various #GstFormat types.  This function handles
+ * GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
+ * raw audio, GST_FORMAT_DEFAULT corresponds to audio frames.  This
+ * function can be used to handle pad queries of the type GST_QUERY_CONVERT.
+ *
+ * Returns: TRUE if the conversion was successful.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_info_convert (GstAudioInfo * info,
+    GstFormat src_fmt, gint64 src_val, GstFormat dest_fmt, gint64 * dest_val)
+{
+  gboolean res = TRUE;
+  gint bpf, rate;
+
+  GST_DEBUG ("converting value %" G_GINT64_FORMAT " from %s (%d) to %s (%d)",
+      src_val, gst_format_get_name (src_fmt), src_fmt,
+      gst_format_get_name (dest_fmt), dest_fmt);
+
+  if (src_fmt == dest_fmt || src_val == -1) {
+    *dest_val = src_val;
+    goto done;
+  }
+
+  /* get important info */
+  bpf = GST_AUDIO_INFO_BPF (info);
+  rate = GST_AUDIO_INFO_RATE (info);
+
+  if (bpf == 0 || rate == 0) {
+    GST_DEBUG ("no rate or bpf configured");
+    res = FALSE;
+    goto done;
+  }
+
+  switch (src_fmt) {
+    case GST_FORMAT_BYTES:
+      switch (dest_fmt) {
+        case GST_FORMAT_TIME:
+          *dest_val = GST_FRAMES_TO_CLOCK_TIME (src_val / bpf, rate);
+          break;
+        case GST_FORMAT_DEFAULT:
+          *dest_val = src_val / bpf;
+          break;
+        default:
+          res = FALSE;
+          break;
+      }
+      break;
+    case GST_FORMAT_DEFAULT:
+      switch (dest_fmt) {
+        case GST_FORMAT_TIME:
+          *dest_val = GST_FRAMES_TO_CLOCK_TIME (src_val, rate);
+          break;
+        case GST_FORMAT_BYTES:
+          *dest_val = src_val * bpf;
+          break;
+        default:
+          res = FALSE;
+          break;
+      }
+      break;
+    case GST_FORMAT_TIME:
+      switch (dest_fmt) {
+        case GST_FORMAT_DEFAULT:
+          *dest_val = GST_CLOCK_TIME_TO_FRAMES (src_val, rate);
+          break;
+        case GST_FORMAT_BYTES:
+          *dest_val = GST_CLOCK_TIME_TO_FRAMES (src_val, rate);
+          *dest_val *= bpf;
+          break;
+        default:
+          res = FALSE;
+          break;
+      }
+      break;
+    default:
+      res = FALSE;
+      break;
+  }
+done:
+  GST_DEBUG ("ret=%d result %" G_GINT64_FORMAT, res, *dest_val);
+
+  return res;
+}
+
 /**
  * gst_audio_buffer_clip:
  * @buffer: The buffer to clip.
@@ -275,7 +708,7 @@ gst_audio_structure_set_int (GstStructure * structure, GstAudioFieldFlag flag)
  * @rate: sample rate.
  * @frame_size: size of one audio frame in bytes.
  *
- * Clip the the buffer to the given %GstSegment.
+ * Clip the buffer to the given %GstSegment.
  *
  * After calling this function the caller does not own a reference to 
  * @buffer anymore.
index 43bf594..ed282fa 100644 (file)
 #ifndef __GST_AUDIO_AUDIO_H__
 #define __GST_AUDIO_AUDIO_H__
 
+#include <gst/audio/multichannel.h>
+
 G_BEGIN_DECLS
 
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+#define _GST_AUDIO_FORMAT_NE(fmt) GST_AUDIO_FORMAT_ ## fmt ## BE
+#elif G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define _GST_AUDIO_FORMAT_NE(fmt) GST_AUDIO_FORMAT_ ## fmt ## LE
+#endif
+
+/**
+ * GstAudioFormat:
+ * @GST_AUDIO_FORMAT_UNKNOWN: unknown audio format
+ * @GST_AUDIO_FORMAT_S8: 8 bits in 8 bits, signed
+ * @GST_AUDIO_FORMAT_U8: 8 bits in 8 bits, unsigned
+ * @GST_AUDIO_FORMAT_S16LE: 16 bits in 16 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S16BE: 16 bits in 16 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U16LE: 16 bits in 16 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U16BE: 16 bits in 16 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S24_32LE: 24 bits in 32 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S24_32BE: 24 bits in 32 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U24_32LE: 24 bits in 32 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U24_32BE: 24 bits in 32 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S32LE: 32 bits in 32 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S32BE: 32 bits in 32 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U32LE: 32 bits in 32 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U32BE: 32 bits in 32 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S24LE: 24 bits in 24 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S24BE: 24 bits in 24 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U24LE: 24 bits in 24 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U24BE: 24 bits in 24 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S20LE: 20 bits in 24 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S20BE: 20 bits in 24 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U20LE: 20 bits in 24 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U20BE: 20 bits in 24 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S18LE: 18 bits in 24 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S18BE: 18 bits in 24 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U18LE: 18 bits in 24 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U18BE: 18 bits in 24 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_F32LE: 32-bit floating point samples, little endian
+ * @GST_AUDIO_FORMAT_F32BE: 32-bit floating point samples, big endian
+ * @GST_AUDIO_FORMAT_F64LE: 64-bit floating point samples, little endian
+ * @GST_AUDIO_FORMAT_F64BE: 64-bit floating point samples, big endian
+ * @GST_AUDIO_FORMAT_S16: 16 bits in 16 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U16: 16 bits in 16 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S24_32: 24 bits in 32 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U24_32: 24 bits in 32 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S32: 32 bits in 32 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U32: 32 bits in 32 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S24: 24 bits in 24 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U24: 24 bits in 24 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S20: 20 bits in 24 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U20: 20 bits in 24 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S18: 18 bits in 24 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U18: 18 bits in 24 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_F32: 32-bit floating point samples, native endianness
+ * @GST_AUDIO_FORMAT_F64: 64-bit floating point samples, native endianness
+ *
+ * Enum value describing the most common audio formats.
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+  GST_AUDIO_FORMAT_UNKNOWN,
+  /* 8 bit */
+  GST_AUDIO_FORMAT_S8,
+  GST_AUDIO_FORMAT_U8,
+  /* 16 bit */
+  GST_AUDIO_FORMAT_S16LE,
+  GST_AUDIO_FORMAT_S16BE,
+  GST_AUDIO_FORMAT_U16LE,
+  GST_AUDIO_FORMAT_U16BE,
+  /* 24 bit in low 3 bytes of 32 bits*/
+  GST_AUDIO_FORMAT_S24_32LE,
+  GST_AUDIO_FORMAT_S24_32BE,
+  GST_AUDIO_FORMAT_U24_32LE,
+  GST_AUDIO_FORMAT_U24_32BE,
+  /* 32 bit */
+  GST_AUDIO_FORMAT_S32LE,
+  GST_AUDIO_FORMAT_S32BE,
+  GST_AUDIO_FORMAT_U32LE,
+  GST_AUDIO_FORMAT_U32BE,
+  /* 24 bit in 3 bytes*/
+  GST_AUDIO_FORMAT_S24LE,
+  GST_AUDIO_FORMAT_S24BE,
+  GST_AUDIO_FORMAT_U24LE,
+  GST_AUDIO_FORMAT_U24BE,
+  /* 20 bit in 3 bytes*/
+  GST_AUDIO_FORMAT_S20LE,
+  GST_AUDIO_FORMAT_S20BE,
+  GST_AUDIO_FORMAT_U20LE,
+  GST_AUDIO_FORMAT_U20BE,
+  /* 18 bit in 3 bytes*/
+  GST_AUDIO_FORMAT_S18LE,
+  GST_AUDIO_FORMAT_S18BE,
+  GST_AUDIO_FORMAT_U18LE,
+  GST_AUDIO_FORMAT_U18BE,
+  /* float */
+  GST_AUDIO_FORMAT_F32LE,
+  GST_AUDIO_FORMAT_F32BE,
+  GST_AUDIO_FORMAT_F64LE,
+  GST_AUDIO_FORMAT_F64BE,
+  /* native endianness equivalents */
+  GST_AUDIO_FORMAT_S16 = _GST_AUDIO_FORMAT_NE(S16),
+  GST_AUDIO_FORMAT_U16 = _GST_AUDIO_FORMAT_NE(U16),
+  GST_AUDIO_FORMAT_S24_32 = _GST_AUDIO_FORMAT_NE(S24_32),
+  GST_AUDIO_FORMAT_U24_32 = _GST_AUDIO_FORMAT_NE(U24_32),
+  GST_AUDIO_FORMAT_S32 = _GST_AUDIO_FORMAT_NE(S32),
+  GST_AUDIO_FORMAT_U32 = _GST_AUDIO_FORMAT_NE(U32),
+  GST_AUDIO_FORMAT_S24 = _GST_AUDIO_FORMAT_NE(S24),
+  GST_AUDIO_FORMAT_U24 = _GST_AUDIO_FORMAT_NE(U24),
+  GST_AUDIO_FORMAT_S20 = _GST_AUDIO_FORMAT_NE(S20),
+  GST_AUDIO_FORMAT_U20 = _GST_AUDIO_FORMAT_NE(U20),
+  GST_AUDIO_FORMAT_S18 = _GST_AUDIO_FORMAT_NE(S18),
+  GST_AUDIO_FORMAT_U18 = _GST_AUDIO_FORMAT_NE(U18),
+  GST_AUDIO_FORMAT_F32 = _GST_AUDIO_FORMAT_NE(F32),
+  GST_AUDIO_FORMAT_F64 = _GST_AUDIO_FORMAT_NE(F64)
+} GstAudioFormat;
+
+/* FIXME: need GTypes */
+typedef struct _GstAudioFormatInfo GstAudioFormatInfo;
+typedef struct _GstAudioInfo GstAudioInfo;
+
+/**
+ * GstAudioFormatFlags:
+ * @GST_AUDIO_FORMAT_FLAG_INTEGER: integer samples
+ * @GST_AUDIO_FORMAT_FLAG_FLOAT: float samples
+ * @GST_AUDIO_FORMAT_FLAG_SIGNED: signed samples
+ * @GST_AUDIO_FORMAT_FLAG_COMPLEX: complex layout
+ *
+ * The different audio flags that a format info can have.
+ *
+ * Since: 0.10.36
+ */
+typedef enum
+{
+  GST_AUDIO_FORMAT_FLAG_INTEGER  = (1 << 0),
+  GST_AUDIO_FORMAT_FLAG_FLOAT    = (1 << 1),
+  GST_AUDIO_FORMAT_FLAG_SIGNED   = (1 << 2),
+  GST_AUDIO_FORMAT_FLAG_COMPLEX  = (1 << 4)
+} GstAudioFormatFlags;
+
+/**
+ * GstAudioFormatInfo:
+ * @format: #GstAudioFormat
+ * @name: string representation of the format
+ * @flags: #GstAudioFormatFlags
+ * @endianness: the endianness
+ * @width: amount of bits used for one sample
+ * @depth: amount of valid bits in @width
+ * @silence: @width/8 bytes with 1 silent sample
+ *
+ * Information for an audio format.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioFormatInfo {
+  GstAudioFormat      format;
+  const gchar *       name;
+  GstAudioFormatFlags flags;
+  gint                endianness;
+  gint                width;
+  gint                depth;
+  guint8              silence[8];
+  /*< private >*/
+  guint               padding_i[4];
+  gpointer            padding_p[4];
+};
+
+#define GST_AUDIO_FORMAT_INFO_FORMAT(info)           ((info)->format)
+#define GST_AUDIO_FORMAT_INFO_NAME(info)             ((info)->name)
+#define GST_AUDIO_FORMAT_INFO_FLAGS(info)            ((info)->flags)
+
+#define GST_AUDIO_FORMAT_INFO_IS_INTEGER(info)       !!((info)->flags & GST_AUDIO_FORMAT_FLAG_INTEGER)
+#define GST_AUDIO_FORMAT_INFO_IS_FLOAT(info)         !!((info)->flags & GST_AUDIO_FORMAT_FLAG_FLOAT)
+#define GST_AUDIO_FORMAT_INFO_IS_SIGNED(info)        !!((info)->flags & GST_AUDIO_FORMAT_FLAG_SIGNED)
+
+#define GST_AUDIO_FORMAT_INFO_ENDIANNESS(info)       ((info)->endianness)
+#define GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN(info) ((info)->endianness == G_LITTLE_ENDIAN)
+#define GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN(info)    ((info)->endianness == G_BIG_ENDIAN)
+#define GST_AUDIO_FORMAT_INFO_WIDTH(info)            ((info)->width)
+#define GST_AUDIO_FORMAT_INFO_DEPTH(info)            ((info)->depth)
+
+const GstAudioFormatInfo * gst_audio_format_get_info (GstAudioFormat format) G_GNUC_CONST;
+
+/**
+ * GstAudioFlags:
+ * @GST_AUDIO_FLAG_NONE: no valid flag
+ * @GST_AUDIO_FLAG_DEFAULT_POSITIONS: unpositioned audio layout, position array
+ *     contains the default layout (meaning that the channel layout was not
+ *     explicitly specified in the caps)
+ *
+ * Extra audio flags
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+  GST_AUDIO_FLAG_NONE         = 0,
+  GST_AUDIO_FLAG_DEFAULT_POSITIONS = (1 << 0)
+} GstAudioFlags;
+
+/**
+ * GstAudioInfo:
+ * @finfo: the format info of the audio
+ * @flags: additional audio flags
+ * @rate: the audio sample rate
+ * @channels: the number of channels
+ * @bpf: the number of bytes for one frame, this is the size of one
+ *         sample * @channels
+ * @position: the position for each channel (assume all NONE for >64 channels)
+ *
+ * Information describing audio properties. This information can be filled
+ * in from GstCaps with gst_audio_info_from_caps().
+ *
+ * Use the provided macros to access the info in this structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioInfo {
+  const GstAudioFormatInfo *finfo;
+  GstAudioFlags             flags;
+  gint                      rate;
+  gint                      channels;
+  gint                      bpf;
+  GstAudioChannelPosition   position[64];
+};
+
+#define GST_AUDIO_INFO_IS_VALID(i)           ((i)->finfo != NULL && (i)->rate > 0 && (i)->channels > 0 && (i)->bpf > 0)
+
+#define GST_AUDIO_INFO_FORMAT(i)             (GST_AUDIO_FORMAT_INFO_FORMAT((i)->finfo))
+#define GST_AUDIO_INFO_NAME(i)               (GST_AUDIO_FORMAT_INFO_NAME((i)->finfo))
+#define GST_AUDIO_INFO_WIDTH(i)              (GST_AUDIO_FORMAT_INFO_WIDTH((i)->finfo))
+#define GST_AUDIO_INFO_DEPTH(i)              (GST_AUDIO_FORMAT_INFO_DEPTH((i)->finfo))
+#define GST_AUDIO_INFO_BPS(info)             (GST_AUDIO_INFO_DEPTH(info) >> 3)
+
+#define GST_AUDIO_INFO_IS_INTEGER(i)         (GST_AUDIO_FORMAT_INFO_IS_INTEGER((i)->finfo))
+#define GST_AUDIO_INFO_IS_FLOAT(i)           (GST_AUDIO_FORMAT_INFO_IS_FLOAT((i)->finfo))
+#define GST_AUDIO_INFO_IS_SIGNED(i)          (GST_AUDIO_FORMAT_INFO_IS_SIGNED((i)->finfo))
+
+#define GST_AUDIO_INFO_ENDIANNESS(i)         (GST_AUDIO_FORMAT_INFO_ENDIANNES((i)->finfo))
+#define GST_AUDIO_INFO_IS_LITTLE_ENDIAN(i)   (GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN((i)->finfo))
+#define GST_AUDIO_INFO_IS_BIG_ENDIAN(i)      (GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN((i)->finfo))
+
+#define GST_AUDIO_INFO_FLAGS(info)           ((info)->flags)
+#define GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS(info) ((info)->flags & GST_AUDIO_FLAG_DEFAULT_POSITIONS)
+
+#define GST_AUDIO_INFO_RATE(info)            ((info)->rate)
+#define GST_AUDIO_INFO_CHANNELS(info)        ((info)->channels)
+#define GST_AUDIO_INFO_BPF(info)             ((info)->bpf)
+#define GST_AUDIO_INFO_POSITION(info,c)      ((info)->position[c])
+
+void           gst_audio_info_init  (GstAudioInfo * info);
+void           gst_audio_info_clear (GstAudioInfo * info);
+
+GstAudioInfo * gst_audio_info_copy  (GstAudioInfo * info);
+void           gst_audio_info_free  (GstAudioInfo * info);
+
+gboolean       gst_audio_info_from_caps (GstAudioInfo * info, const GstCaps * caps);
+GstCaps *      gst_audio_info_to_caps   (GstAudioInfo * info);
+
+gboolean       gst_audio_info_convert   (GstAudioInfo * info,
+                                         GstFormat src_fmt,  gint64   src_val,
+                                         GstFormat dest_fmt, gint64 * dest_val);
+
 /* For people that are looking at this source: the purpose of these defines is
  * to make GstCaps a bit easier, in that you don't have to know all of the
  * properties that need to be defined. you can just use these macros. currently
index fb50bcf..906c802 100644 (file)
@@ -60,14 +60,13 @@ typedef GstClockTime (*GstAudioClockGetTimeFunc) (GstClock *clock, gpointer user
 
 /**
  * GstAudioClock:
- * @clock: parent #GstSystemClock
  *
  * Opaque #GstAudioClock.
  */
 struct _GstAudioClock {
   GstSystemClock clock;
 
-  /* --- protected --- */
+  /*< protected >*/
   GstAudioClockGetTimeFunc func;
   gpointer user_data;
 
diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
new file mode 100644 (file)
index 0000000..e35779e
--- /dev/null
@@ -0,0 +1,2586 @@
+/* GStreamer
+ * Copyright (C) 2009 Igalia S.L.
+ * Author: Iago Toral Quiroga <itoral@igalia.com>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ *   Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstaudiodecoder
+ * @short_description: Base class for audio decoders
+ * @see_also: #GstBaseTransform
+ * @since: 0.10.36
+ *
+ * This base class is for audio decoders turning encoded data into
+ * raw audio samples.
+ *
+ * GstAudioDecoder and subclass should cooperate as follows.
+ * <orderedlist>
+ * <listitem>
+ *   <itemizedlist><title>Configuration</title>
+ *   <listitem><para>
+ *     Initially, GstAudioDecoder calls @start when the decoder element
+ *     is activated, which allows subclass to perform any global setup.
+ *     Base class (context) parameters can already be set according to subclass
+ *     capabilities (or possibly upon receive more information in subsequent
+ *     @set_format).
+ *   </para></listitem>
+ *   <listitem><para>
+ *     GstAudioDecoder calls @set_format to inform subclass of the format
+ *     of input audio data that it is about to receive.
+ *     While unlikely, it might be called more than once, if changing input
+ *     parameters require reconfiguration.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     GstAudioDecoder calls @stop at end of all processing.
+ *   </para></listitem>
+ *   </itemizedlist>
+ * </listitem>
+ * As of configuration stage, and throughout processing, GstAudioDecoder
+ * provides various (context) parameters, e.g. describing the format of
+ * output audio data (valid when output caps have been set) or current parsing state.
+ * Conversely, subclass can and should configure context to inform
+ * base class of its expectation w.r.t. buffer handling.
+ * <listitem>
+ *   <itemizedlist>
+ *   <title>Data processing</title>
+ *     <listitem><para>
+ *       Base class gathers input data, and optionally allows subclass
+ *       to parse this into subsequently manageable (as defined by subclass)
+ *       chunks.  Such chunks are subsequently referred to as 'frames',
+ *       though they may or may not correspond to 1 (or more) audio format frame.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       Input frame is provided to subclass' @handle_frame.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       If codec processing results in decoded data, subclass should call
+ *       @gst_audio_decoder_finish_frame to have decoded data pushed
+ *       downstream.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       Just prior to actually pushing a buffer downstream,
+ *       it is passed to @pre_push.  Subclass should either use this callback
+ *       to arrange for additional downstream pushing or otherwise ensure such
+ *       custom pushing occurs after at least a method call has finished since
+ *       setting src pad caps.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       During the parsing process GstAudioDecoderClass will handle both
+ *       srcpad and sinkpad events. Sink events will be passed to subclass
+ *       if @event callback has been provided.
+ *     </para></listitem>
+ *   </itemizedlist>
+ * </listitem>
+ * <listitem>
+ *   <itemizedlist><title>Shutdown phase</title>
+ *   <listitem><para>
+ *     GstAudioDecoder class calls @stop to inform the subclass that data
+ *     parsing will be stopped.
+ *   </para></listitem>
+ *   </itemizedlist>
+ * </listitem>
+ * </orderedlist>
+ *
+ * Subclass is responsible for providing pad template caps for
+ * source and sink pads. The pads need to be named "sink" and "src". It also
+ * needs to set the fixed caps on srcpad, when the format is ensured.  This
+ * is typically when base class calls subclass' @set_format function, though
+ * it might be delayed until calling @gst_audio_decoder_finish_frame.
+ *
+ * In summary, above process should have subclass concentrating on
+ * codec data processing while leaving other matters to base class,
+ * such as most notably timestamp handling.  While it may exert more control
+ * in this area (see e.g. @pre_push), it is very much not recommended.
+ *
+ * In particular, base class will try to arrange for perfect output timestamps
+ * as much as possible while tracking upstream timestamps.
+ * To this end, if deviation between the next ideal expected perfect timestamp
+ * and upstream exceeds #GstAudioDecoder:tolerance, then resync to upstream
+ * occurs (which would happen always if the tolerance mechanism is disabled).
+ *
+ * In non-live pipelines, baseclass can also (configurably) arrange for
+ * output buffer aggregation which may help to redue large(r) numbers of
+ * small(er) buffers being pushed and processed downstream.
+ *
+ * On the other hand, it should be noted that baseclass only provides limited
+ * seeking support (upon explicit subclass request), as full-fledged support
+ * should rather be left to upstream demuxer, parser or alike.  This simple
+ * approach caters for seeking and duration reporting using estimated input
+ * bitrates.
+ *
+ * Things that subclass need to take care of:
+ * <itemizedlist>
+ *   <listitem><para>Provide pad templates</para></listitem>
+ *   <listitem><para>
+ *      Set source pad caps when appropriate
+ *   </para></listitem>
+ *   <listitem><para>
+ *      Set user-configurable properties to sane defaults for format and
+ *      implementing codec at hand, and convey some subclass capabilities and
+ *      expectations in context.
+ *   </para></listitem>
+ *   <listitem><para>
+ *      Accept data in @handle_frame and provide encoded results to
+ *      @gst_audio_decoder_finish_frame.  If it is prepared to perform
+ *      PLC, it should also accept NULL data in @handle_frame and provide for
+ *      data for indicated duration.
+ *   </para></listitem>
+ * </itemizedlist>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include "gstaudiodecoder.h"
+#include <gst/pbutils/descriptions.h>
+
+#include <string.h>
+
+GST_DEBUG_CATEGORY (audiodecoder_debug);
+#define GST_CAT_DEFAULT audiodecoder_debug
+
+#define GST_AUDIO_DECODER_GET_PRIVATE(obj)  \
+    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_DECODER, \
+        GstAudioDecoderPrivate))
+
+enum
+{
+  LAST_SIGNAL
+};
+
+enum
+{
+  PROP_0,
+  PROP_LATENCY,
+  PROP_TOLERANCE,
+  PROP_PLC
+};
+
+#define DEFAULT_LATENCY    0
+#define DEFAULT_TOLERANCE  0
+#define DEFAULT_PLC        FALSE
+#define DEFAULT_DRAINABLE  TRUE
+#define DEFAULT_NEEDS_FORMAT  FALSE
+
+typedef struct _GstAudioDecoderContext
+{
+  /* input */
+  /* (output) audio format */
+  GstAudioInfo info;
+
+  /* parsing state */
+  gboolean eos;
+  gboolean sync;
+
+  /* misc */
+  gint delay;
+
+  /* output */
+  gboolean do_plc;
+  gboolean do_byte_time;
+  gint max_errors;
+  /* MT-protected (with LOCK) */
+  GstClockTime min_latency;
+  GstClockTime max_latency;
+} GstAudioDecoderContext;
+
+struct _GstAudioDecoderPrivate
+{
+  /* activation status */
+  gboolean active;
+
+  /* input base/first ts as basis for output ts */
+  GstClockTime base_ts;
+  /* input samples processed and sent downstream so far (w.r.t. base_ts) */
+  guint64 samples;
+
+  /* collected input data */
+  GstAdapter *adapter;
+  /* tracking input ts for changes */
+  GstClockTime prev_ts;
+  /* frames obtained from input */
+  GQueue frames;
+  /* collected output data */
+  GstAdapter *adapter_out;
+  /* ts and duration for output data collected above */
+  GstClockTime out_ts, out_dur;
+  /* mark outgoing discont */
+  gboolean discont;
+
+  /* subclass gave all it could already */
+  gboolean drained;
+  /* subclass currently being forcibly drained */
+  gboolean force;
+
+  /* input bps estimatation */
+  /* global in bytes seen */
+  guint64 bytes_in;
+  /* global samples sent out */
+  guint64 samples_out;
+  /* bytes flushed during parsing */
+  guint sync_flush;
+  /* error count */
+  gint error_count;
+  /* codec id tag */
+  GstTagList *taglist;
+
+  /* whether circumstances allow output aggregation */
+  gint agg;
+
+  /* reverse playback queues */
+  /* collect input */
+  GList *gather;
+  /* to-be-decoded */
+  GList *decode;
+  /* reversed output */
+  GList *queued;
+
+  /* context storage */
+  GstAudioDecoderContext ctx;
+
+  /* properties */
+  GstClockTime latency;
+  GstClockTime tolerance;
+  gboolean plc;
+  gboolean drainable;
+  gboolean needs_format;
+
+  /* pending serialized sink events, will be sent from finish_frame() */
+  GList *pending_events;
+};
+
+
+static void gst_audio_decoder_finalize (GObject * object);
+static void gst_audio_decoder_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_audio_decoder_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec);
+
+static void gst_audio_decoder_clear_queues (GstAudioDecoder * dec);
+static GstFlowReturn gst_audio_decoder_chain_reverse (GstAudioDecoder *
+    dec, GstBuffer * buf);
+
+static GstStateChangeReturn gst_audio_decoder_change_state (GstElement *
+    element, GstStateChange transition);
+static gboolean gst_audio_decoder_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_audio_decoder_src_event (GstPad * pad, GstEvent * event);
+static gboolean gst_audio_decoder_sink_setcaps (GstPad * pad, GstCaps * caps);
+static gboolean gst_audio_decoder_src_setcaps (GstPad * pad, GstCaps * caps);
+static GstFlowReturn gst_audio_decoder_chain (GstPad * pad, GstBuffer * buf);
+static gboolean gst_audio_decoder_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_audio_decoder_sink_query (GstPad * pad, GstQuery * query);
+static const GstQueryType *gst_audio_decoder_get_query_types (GstPad * pad);
+static void gst_audio_decoder_reset (GstAudioDecoder * dec, gboolean full);
+
+
+GST_BOILERPLATE (GstAudioDecoder, gst_audio_decoder, GstElement,
+    GST_TYPE_ELEMENT);
+
+static void
+gst_audio_decoder_base_init (gpointer g_class)
+{
+}
+
+static void
+gst_audio_decoder_class_init (GstAudioDecoderClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *element_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  element_class = GST_ELEMENT_CLASS (klass);
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  g_type_class_add_private (klass, sizeof (GstAudioDecoderPrivate));
+
+  GST_DEBUG_CATEGORY_INIT (audiodecoder_debug, "audiodecoder", 0,
+      "audio decoder base class");
+
+  gobject_class->set_property = gst_audio_decoder_set_property;
+  gobject_class->get_property = gst_audio_decoder_get_property;
+  gobject_class->finalize = gst_audio_decoder_finalize;
+
+  element_class->change_state = gst_audio_decoder_change_state;
+
+  /* Properties */
+  g_object_class_install_property (gobject_class, PROP_LATENCY,
+      g_param_spec_int64 ("min-latency", "Minimum Latency",
+          "Aggregate output data to a minimum of latency time (ns)",
+          0, G_MAXINT64, DEFAULT_LATENCY,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_TOLERANCE,
+      g_param_spec_int64 ("tolerance", "Tolerance",
+          "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+          0, G_MAXINT64, DEFAULT_TOLERANCE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_PLC,
+      g_param_spec_boolean ("plc", "Packet Loss Concealment",
+          "Perform packet loss concealment (if supported)",
+          DEFAULT_PLC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_audio_decoder_init (GstAudioDecoder * dec, GstAudioDecoderClass * klass)
+{
+  GstPadTemplate *pad_template;
+
+  GST_DEBUG_OBJECT (dec, "gst_audio_decoder_init");
+
+  dec->priv = GST_AUDIO_DECODER_GET_PRIVATE (dec);
+
+  /* Setup sink pad */
+  pad_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink");
+  g_return_if_fail (pad_template != NULL);
+
+  dec->sinkpad = gst_pad_new_from_template (pad_template, "sink");
+  gst_pad_set_event_function (dec->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_sink_event));
+  gst_pad_set_setcaps_function (dec->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_sink_setcaps));
+  gst_pad_set_chain_function (dec->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_chain));
+  gst_pad_set_query_function (dec->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_sink_query));
+  gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
+  GST_DEBUG_OBJECT (dec, "sinkpad created");
+
+  /* Setup source pad */
+  pad_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "src");
+  g_return_if_fail (pad_template != NULL);
+
+  dec->srcpad = gst_pad_new_from_template (pad_template, "src");
+  gst_pad_set_setcaps_function (dec->srcpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_src_setcaps));
+  gst_pad_set_event_function (dec->srcpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_src_event));
+  gst_pad_set_query_function (dec->srcpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_src_query));
+  gst_pad_set_query_type_function (dec->srcpad,
+      GST_DEBUG_FUNCPTR (gst_audio_decoder_get_query_types));
+  gst_pad_use_fixed_caps (dec->srcpad);
+  gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
+  GST_DEBUG_OBJECT (dec, "srcpad created");
+
+  dec->priv->adapter = gst_adapter_new ();
+  dec->priv->adapter_out = gst_adapter_new ();
+  g_queue_init (&dec->priv->frames);
+
+  g_static_rec_mutex_init (&dec->stream_lock);
+
+  /* property default */
+  dec->priv->latency = DEFAULT_LATENCY;
+  dec->priv->tolerance = DEFAULT_TOLERANCE;
+  dec->priv->plc = DEFAULT_PLC;
+  dec->priv->drainable = DEFAULT_DRAINABLE;
+  dec->priv->needs_format = DEFAULT_NEEDS_FORMAT;
+
+  /* init state */
+  gst_audio_decoder_reset (dec, TRUE);
+  GST_DEBUG_OBJECT (dec, "init ok");
+}
+
+static void
+gst_audio_decoder_reset (GstAudioDecoder * dec, gboolean full)
+{
+  GST_DEBUG_OBJECT (dec, "gst_audio_decoder_reset");
+
+  GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+  if (full) {
+    dec->priv->active = FALSE;
+    dec->priv->bytes_in = 0;
+    dec->priv->samples_out = 0;
+    dec->priv->agg = -1;
+    dec->priv->error_count = 0;
+    gst_audio_decoder_clear_queues (dec);
+
+    gst_audio_info_clear (&dec->priv->ctx.info);
+    memset (&dec->priv->ctx, 0, sizeof (dec->priv->ctx));
+    dec->priv->ctx.max_errors = GST_AUDIO_DECODER_MAX_ERRORS;
+
+    if (dec->priv->taglist) {
+      gst_tag_list_free (dec->priv->taglist);
+      dec->priv->taglist = NULL;
+    }
+
+    gst_segment_init (&dec->segment, GST_FORMAT_TIME);
+
+    g_list_foreach (dec->priv->pending_events, (GFunc) gst_event_unref, NULL);
+    g_list_free (dec->priv->pending_events);
+    dec->priv->pending_events = NULL;
+  }
+
+  g_queue_foreach (&dec->priv->frames, (GFunc) gst_buffer_unref, NULL);
+  g_queue_clear (&dec->priv->frames);
+  gst_adapter_clear (dec->priv->adapter);
+  gst_adapter_clear (dec->priv->adapter_out);
+  dec->priv->out_ts = GST_CLOCK_TIME_NONE;
+  dec->priv->out_dur = 0;
+  dec->priv->prev_ts = GST_CLOCK_TIME_NONE;
+  dec->priv->drained = TRUE;
+  dec->priv->base_ts = GST_CLOCK_TIME_NONE;
+  dec->priv->samples = 0;
+  dec->priv->discont = TRUE;
+  dec->priv->sync_flush = FALSE;
+
+  GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+}
+
+static void
+gst_audio_decoder_finalize (GObject * object)
+{
+  GstAudioDecoder *dec;
+
+  g_return_if_fail (GST_IS_AUDIO_DECODER (object));
+  dec = GST_AUDIO_DECODER (object);
+
+  if (dec->priv->adapter) {
+    g_object_unref (dec->priv->adapter);
+  }
+  if (dec->priv->adapter_out) {
+    g_object_unref (dec->priv->adapter_out);
+  }
+
+  g_static_rec_mutex_free (&dec->stream_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* automagically perform sanity checking of src caps;
+ * also extracts output data format */
+static gboolean
+gst_audio_decoder_src_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstAudioDecoder *dec;
+  gboolean res = TRUE;
+  guint old_rate;
+
+  dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+
+  GST_DEBUG_OBJECT (dec, "setting src caps %" GST_PTR_FORMAT, caps);
+
+  GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+  /* parse caps here to check subclass;
+   * also makes us aware of output format */
+  if (!gst_caps_is_fixed (caps))
+    goto refuse_caps;
+
+  /* adjust ts tracking to new sample rate */
+  old_rate = GST_AUDIO_INFO_RATE (&dec->priv->ctx.info);
+  if (GST_CLOCK_TIME_IS_VALID (dec->priv->base_ts) && old_rate) {
+    dec->priv->base_ts +=
+        GST_FRAMES_TO_CLOCK_TIME (dec->priv->samples, old_rate);
+    dec->priv->samples = 0;
+  }
+
+  if (!gst_audio_info_from_caps (&dec->priv->ctx.info, caps))
+    goto refuse_caps;
+
+done:
+  GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+  gst_object_unref (dec);
+  return res;
+
+  /* ERRORS */
+refuse_caps:
+  {
+    GST_WARNING_OBJECT (dec, "rejected caps %" GST_PTR_FORMAT, caps);
+    res = FALSE;
+    goto done;
+  }
+}
+
+static gboolean
+gst_audio_decoder_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstAudioDecoder *dec;
+  GstAudioDecoderClass *klass;
+  gboolean res = TRUE;
+
+  dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+  GST_DEBUG_OBJECT (dec, "caps: %" GST_PTR_FORMAT, caps);
+
+  GST_AUDIO_DECODER_STREAM_LOCK (dec);
+  /* NOTE pbutils only needed here */
+  /* TODO maybe (only) upstream demuxer/parser etc should handle this ? */
+  if (dec->priv->taglist)
+    gst_tag_list_free (dec->priv->taglist);
+  dec->priv->taglist = gst_tag_list_new ();
+  gst_pb_utils_add_codec_description_to_tag_list (dec->priv->taglist,
+      GST_TAG_AUDIO_CODEC, caps);
+
+  if (klass->set_format)
+    res = klass->set_format (dec, caps);
+
+  GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+  g_object_unref (dec);
+  return res;
+}
+
+static void
+gst_audio_decoder_setup (GstAudioDecoder * dec)
+{
+  GstQuery *query;
+  gboolean res;
+
+  /* check if in live pipeline, then latency messing is no-no */
+  query = gst_query_new_latency ();
+  res = gst_pad_peer_query (dec->sinkpad, query);
+  if (res) {
+    gst_query_parse_latency (query, &res, NULL, NULL);
+    res = !res;
+  }
+  gst_query_unref (query);
+
+  /* normalize to bool */
+  dec->priv->agg = ! !res;
+}
+
+static GstFlowReturn
+gst_audio_decoder_push_forward (GstAudioDecoder * dec, GstBuffer * buf)
+{
+  GstAudioDecoderClass *klass;
+  GstAudioDecoderPrivate *priv;
+  GstAudioDecoderContext *ctx;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+  priv = dec->priv;
+  ctx = &dec->priv->ctx;
+
+  g_return_val_if_fail (ctx->info.bpf != 0, GST_FLOW_ERROR);
+
+  if (G_UNLIKELY (!buf)) {
+    g_assert_not_reached ();
+    return GST_FLOW_OK;
+  }
+
+  GST_LOG_OBJECT (dec, "clipping buffer of size %d with ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+  /* clip buffer */
+  buf = gst_audio_buffer_clip (buf, &dec->segment, ctx->info.rate,
+      ctx->info.bpf);
+  if (G_UNLIKELY (!buf)) {
+    GST_DEBUG_OBJECT (dec, "no data after clipping to segment");
+    goto exit;
+  }
+
+  /* decorate */
+  gst_buffer_set_caps (buf, GST_PAD_CAPS (dec->srcpad));
+
+  if (G_UNLIKELY (priv->discont)) {
+    GST_LOG_OBJECT (dec, "marking discont");
+    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+    priv->discont = FALSE;
+  }
+
+  /* track where we are */
+  if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (buf))) {
+    /* duration should always be valid for raw audio */
+    g_assert (GST_BUFFER_DURATION_IS_VALID (buf));
+    dec->segment.last_stop =
+        GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf);
+  }
+
+  if (klass->pre_push) {
+    /* last chance for subclass to do some dirty stuff */
+    ret = klass->pre_push (dec, &buf);
+    if (ret != GST_FLOW_OK || !buf) {
+      GST_DEBUG_OBJECT (dec, "subclass returned %s, buf %p",
+          gst_flow_get_name (ret), buf);
+      if (buf)
+        gst_buffer_unref (buf);
+      goto exit;
+    }
+  }
+
+  GST_LOG_OBJECT (dec, "pushing buffer of size %d with ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+  ret = gst_pad_push (dec->srcpad, buf);
+
+exit:
+  return ret;
+}
+
+/* mini aggregator combining output buffers into fewer larger ones,
+ * if so allowed/configured */
+static GstFlowReturn
+gst_audio_decoder_output (GstAudioDecoder * dec, GstBuffer * buf)
+{
+  GstAudioDecoderPrivate *priv;
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstBuffer *inbuf = NULL;
+
+  priv = dec->priv;
+
+  if (G_UNLIKELY (priv->agg < 0))
+    gst_audio_decoder_setup (dec);
+
+  if (G_LIKELY (buf)) {
+    GST_LOG_OBJECT (dec, "output buffer of size %d with ts %" GST_TIME_FORMAT
+        ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+        GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+  }
+
+again:
+  inbuf = NULL;
+  if (priv->agg && dec->priv->latency > 0) {
+    gint av;
+    gboolean assemble = FALSE;
+    const GstClockTimeDiff tol = 10 * GST_MSECOND;
+    GstClockTimeDiff diff = -100 * GST_MSECOND;
+
+    av = gst_adapter_available (priv->adapter_out);
+    if (G_UNLIKELY (!buf)) {
+      /* forcibly send current */
+      assemble = TRUE;
+      GST_LOG_OBJECT (dec, "forcing fragment flush");
+    } else if (av && (!GST_BUFFER_TIMESTAMP_IS_VALID (buf) ||
+            !GST_CLOCK_TIME_IS_VALID (priv->out_ts) ||
+            ((diff = GST_CLOCK_DIFF (GST_BUFFER_TIMESTAMP (buf),
+                        priv->out_ts + priv->out_dur)) > tol) || diff < -tol)) {
+      assemble = TRUE;
+      GST_LOG_OBJECT (dec, "buffer %d ms apart from current fragment",
+          (gint) (diff / GST_MSECOND));
+    } else {
+      /* add or start collecting */
+      if (!av) {
+        GST_LOG_OBJECT (dec, "starting new fragment");
+        priv->out_ts = GST_BUFFER_TIMESTAMP (buf);
+      } else {
+        GST_LOG_OBJECT (dec, "adding to fragment");
+      }
+      gst_adapter_push (priv->adapter_out, buf);
+      priv->out_dur += GST_BUFFER_DURATION (buf);
+      av += GST_BUFFER_SIZE (buf);
+      buf = NULL;
+    }
+    if (priv->out_dur > dec->priv->latency)
+      assemble = TRUE;
+    if (av && assemble) {
+      GST_LOG_OBJECT (dec, "assembling fragment");
+      inbuf = buf;
+      buf = gst_adapter_take_buffer (priv->adapter_out, av);
+      GST_BUFFER_TIMESTAMP (buf) = priv->out_ts;
+      GST_BUFFER_DURATION (buf) = priv->out_dur;
+      priv->out_ts = GST_CLOCK_TIME_NONE;
+      priv->out_dur = 0;
+    }
+  }
+
+  if (G_LIKELY (buf)) {
+    if (dec->segment.rate > 0.0) {
+      ret = gst_audio_decoder_push_forward (dec, buf);
+      GST_LOG_OBJECT (dec, "buffer pushed: %s", gst_flow_get_name (ret));
+    } else {
+      ret = GST_FLOW_OK;
+      priv->queued = g_list_prepend (priv->queued, buf);
+      GST_LOG_OBJECT (dec, "buffer queued");
+    }
+
+    if (inbuf) {
+      buf = inbuf;
+      goto again;
+    }
+  }
+
+  return ret;
+}
+
+/**
+ * gst_audio_decoder_finish_frame:
+ * @dec: a #GstAudioDecoder
+ * @buf: decoded data
+ * @frames: number of decoded frames represented by decoded data
+ *
+ * Collects decoded data and pushes it downstream.
+ *
+ * @buf may be NULL in which case the indicated number of frames
+ * are discarded and considered to have produced no output
+ * (e.g. lead-in or setup frames).
+ * Otherwise, source pad caps must be set when it is called with valid
+ * data in @buf.
+ *
+ * Note that a frame received in gst_audio_decoder_handle_frame() may be
+ * invalidated by a call to this function.
+ *
+ * Returns: a #GstFlowReturn that should be escalated to caller (of caller)
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_audio_decoder_finish_frame (GstAudioDecoder * dec, GstBuffer * buf,
+    gint frames)
+{
+  GstAudioDecoderPrivate *priv;
+  GstAudioDecoderContext *ctx;
+  gint samples = 0;
+  GstClockTime ts, next_ts;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  /* subclass should know what it is producing by now */
+  g_return_val_if_fail (buf == NULL || GST_PAD_CAPS (dec->srcpad) != NULL,
+      GST_FLOW_ERROR);
+  /* subclass should not hand us no data */
+  g_return_val_if_fail (buf == NULL || GST_BUFFER_SIZE (buf) > 0,
+      GST_FLOW_ERROR);
+  /* no dummy calls please */
+  g_return_val_if_fail (frames != 0, GST_FLOW_ERROR);
+
+  priv = dec->priv;
+  ctx = &dec->priv->ctx;
+
+  /* must know the output format by now */
+  g_return_val_if_fail (buf == NULL || GST_AUDIO_INFO_IS_VALID (&ctx->info),
+      GST_FLOW_ERROR);
+
+  GST_LOG_OBJECT (dec, "accepting %d bytes == %d samples for %d frames",
+      buf ? GST_BUFFER_SIZE (buf) : -1,
+      buf ? GST_BUFFER_SIZE (buf) / ctx->info.bpf : -1, frames);
+
+  GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+  if (priv->pending_events) {
+    GList *pending_events, *l;
+
+    pending_events = priv->pending_events;
+    priv->pending_events = NULL;
+
+    GST_DEBUG_OBJECT (dec, "Pushing pending events");
+    for (l = pending_events; l; l = l->next)
+      gst_pad_push_event (dec->srcpad, l->data);
+    g_list_free (pending_events);
+  }
+
+  /* output shoud be whole number of sample frames */
+  if (G_LIKELY (buf && ctx->info.bpf)) {
+    if (GST_BUFFER_SIZE (buf) % ctx->info.bpf)
+      goto wrong_buffer;
+    /* per channel least */
+    samples = GST_BUFFER_SIZE (buf) / ctx->info.bpf;
+  }
+
+  /* frame and ts book-keeping */
+  if (G_UNLIKELY (frames < 0)) {
+    if (G_UNLIKELY (-frames - 1 > priv->frames.length))
+      goto overflow;
+    frames = priv->frames.length + frames + 1;
+  } else if (G_UNLIKELY (frames > priv->frames.length)) {
+    if (G_LIKELY (!priv->force)) {
+      /* no way we can let this pass */
+      g_assert_not_reached ();
+      /* really no way */
+      goto overflow;
+    }
+  }
+
+  if (G_LIKELY (priv->frames.length))
+    ts = GST_BUFFER_TIMESTAMP (priv->frames.head->data);
+  else
+    ts = GST_CLOCK_TIME_NONE;
+
+  GST_DEBUG_OBJECT (dec, "leading frame ts %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (ts));
+
+  while (priv->frames.length && frames) {
+    gst_buffer_unref (g_queue_pop_head (&priv->frames));
+    dec->priv->ctx.delay = dec->priv->frames.length;
+    frames--;
+  }
+
+  if (G_UNLIKELY (!buf))
+    goto exit;
+
+  /* lock on */
+  if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+    priv->base_ts = ts;
+    GST_DEBUG_OBJECT (dec, "base_ts now %" GST_TIME_FORMAT, GST_TIME_ARGS (ts));
+  }
+
+  /* slightly convoluted approach caters for perfect ts if subclass desires */
+  if (GST_CLOCK_TIME_IS_VALID (ts)) {
+    if (dec->priv->tolerance > 0) {
+      GstClockTimeDiff diff;
+
+      g_assert (GST_CLOCK_TIME_IS_VALID (priv->base_ts));
+      next_ts = priv->base_ts +
+          gst_util_uint64_scale (priv->samples, GST_SECOND, ctx->info.rate);
+      GST_LOG_OBJECT (dec,
+          "buffer is %" G_GUINT64_FORMAT " samples past base_ts %"
+          GST_TIME_FORMAT ", expected ts %" GST_TIME_FORMAT, priv->samples,
+          GST_TIME_ARGS (priv->base_ts), GST_TIME_ARGS (next_ts));
+      diff = GST_CLOCK_DIFF (next_ts, ts);
+      GST_LOG_OBJECT (dec, "ts diff %d ms", (gint) (diff / GST_MSECOND));
+      /* if within tolerance,
+       * discard buffer ts and carry on producing perfect stream,
+       * otherwise resync to ts */
+      if (G_UNLIKELY (diff < (gint64) - dec->priv->tolerance ||
+              diff > (gint64) dec->priv->tolerance)) {
+        GST_DEBUG_OBJECT (dec, "base_ts resync");
+        priv->base_ts = ts;
+        priv->samples = 0;
+      }
+    } else {
+      GST_DEBUG_OBJECT (dec, "base_ts resync");
+      priv->base_ts = ts;
+      priv->samples = 0;
+    }
+  }
+
+  /* delayed one-shot stuff until confirmed data */
+  if (priv->taglist) {
+    GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, priv->taglist);
+    if (gst_tag_list_is_empty (priv->taglist)) {
+      gst_tag_list_free (priv->taglist);
+    } else {
+      gst_element_found_tags (GST_ELEMENT (dec), priv->taglist);
+    }
+    priv->taglist = NULL;
+  }
+
+  buf = gst_buffer_make_metadata_writable (buf);
+  if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+    GST_BUFFER_TIMESTAMP (buf) =
+        priv->base_ts +
+        GST_FRAMES_TO_CLOCK_TIME (priv->samples, ctx->info.rate);
+    GST_BUFFER_DURATION (buf) = priv->base_ts +
+        GST_FRAMES_TO_CLOCK_TIME (priv->samples + samples, ctx->info.rate) -
+        GST_BUFFER_TIMESTAMP (buf);
+  } else {
+    GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE;
+    GST_BUFFER_DURATION (buf) =
+        GST_FRAMES_TO_CLOCK_TIME (samples, ctx->info.rate);
+  }
+  priv->samples += samples;
+  priv->samples_out += samples;
+
+  /* we got data, so note things are looking up */
+  if (G_UNLIKELY (dec->priv->error_count))
+    dec->priv->error_count--;
+
+exit:
+  ret = gst_audio_decoder_output (dec, buf);
+
+  GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+  return ret;
+
+  /* ERRORS */
+wrong_buffer:
+  {
+    GST_ELEMENT_ERROR (dec, STREAM, ENCODE, (NULL),
+        ("buffer size %d not a multiple of %d", GST_BUFFER_SIZE (buf),
+            ctx->info.bpf));
+    gst_buffer_unref (buf);
+    ret = GST_FLOW_ERROR;
+    goto exit;
+  }
+overflow:
+  {
+    GST_ELEMENT_ERROR (dec, STREAM, ENCODE,
+        ("received more decoded frames %d than provided %d", frames,
+            priv->frames.length), (NULL));
+    if (buf)
+      gst_buffer_unref (buf);
+    ret = GST_FLOW_ERROR;
+    goto exit;
+  }
+}
+
+static GstFlowReturn
+gst_audio_decoder_handle_frame (GstAudioDecoder * dec,
+    GstAudioDecoderClass * klass, GstBuffer * buffer)
+{
+  if (G_LIKELY (buffer)) {
+    /* keep around for admin */
+    GST_LOG_OBJECT (dec, "tracking frame size %d, ts %" GST_TIME_FORMAT,
+        GST_BUFFER_SIZE (buffer),
+        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
+    g_queue_push_tail (&dec->priv->frames, buffer);
+    dec->priv->ctx.delay = dec->priv->frames.length;
+    dec->priv->bytes_in += GST_BUFFER_SIZE (buffer);
+  } else {
+    GST_LOG_OBJECT (dec, "providing subclass with NULL frame");
+  }
+
+  return klass->handle_frame (dec, buffer);
+}
+
+/* maybe subclass configurable instead, but this allows for a whole lot of
+ * raw samples, so at least quite some encoded ... */
+#define GST_AUDIO_DECODER_MAX_SYNC     10 * 8 * 2 * 1024
+
+static GstFlowReturn
+gst_audio_decoder_push_buffers (GstAudioDecoder * dec, gboolean force)
+{
+  GstAudioDecoderClass *klass;
+  GstAudioDecoderPrivate *priv;
+  GstAudioDecoderContext *ctx;
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstBuffer *buffer;
+  gint av, flush;
+
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+  priv = dec->priv;
+  ctx = &dec->priv->ctx;
+
+  g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
+
+  av = gst_adapter_available (priv->adapter);
+  GST_DEBUG_OBJECT (dec, "available: %d", av);
+
+  while (ret == GST_FLOW_OK) {
+
+    flush = 0;
+    ctx->eos = force;
+
+    if (G_LIKELY (av)) {
+      gint len;
+      GstClockTime ts;
+
+      /* parse if needed */
+      if (klass->parse) {
+        gint offset = 0;
+
+        /* limited (legacy) parsing; avoid whole of baseparse */
+        GST_DEBUG_OBJECT (dec, "parsing available: %d", av);
+        /* piggyback sync state on discont */
+        ctx->sync = !priv->discont;
+        ret = klass->parse (dec, priv->adapter, &offset, &len);
+
+        g_assert (offset <= av);
+        if (offset) {
+          /* jumped a bit */
+          GST_DEBUG_OBJECT (dec, "setting DISCONT");
+          gst_adapter_flush (priv->adapter, offset);
+          flush = offset;
+          /* avoid parsing indefinitely */
+          priv->sync_flush += offset;
+          if (priv->sync_flush > GST_AUDIO_DECODER_MAX_SYNC)
+            goto parse_failed;
+        }
+
+        if (ret == GST_FLOW_UNEXPECTED) {
+          GST_LOG_OBJECT (dec, "no frame yet");
+          ret = GST_FLOW_OK;
+          break;
+        } else if (ret == GST_FLOW_OK) {
+          GST_LOG_OBJECT (dec, "frame at offset %d of length %d", offset, len);
+          g_assert (len);
+          g_assert (offset + len <= av);
+          priv->sync_flush = 0;
+        } else {
+          break;
+        }
+      } else {
+        len = av;
+      }
+      /* track upstream ts, but do not get stuck if nothing new upstream */
+      ts = gst_adapter_prev_timestamp (priv->adapter, NULL);
+      if (ts == priv->prev_ts) {
+        GST_LOG_OBJECT (dec, "ts == prev_ts; discarding");
+        ts = GST_CLOCK_TIME_NONE;
+      } else {
+        priv->prev_ts = ts;
+      }
+      buffer = gst_adapter_take_buffer (priv->adapter, len);
+      buffer = gst_buffer_make_metadata_writable (buffer);
+      GST_BUFFER_TIMESTAMP (buffer) = ts;
+      flush += len;
+    } else {
+      if (!force)
+        break;
+      if (!priv->drainable) {
+        priv->drained = TRUE;
+        break;
+      }
+      buffer = NULL;
+    }
+
+    ret = gst_audio_decoder_handle_frame (dec, klass, buffer);
+
+    /* do not keep pushing it ... */
+    if (G_UNLIKELY (!av)) {
+      priv->drained = TRUE;
+      break;
+    }
+
+    av -= flush;
+    g_assert (av >= 0);
+  }
+
+  GST_LOG_OBJECT (dec, "done pushing to subclass");
+  return ret;
+
+  /* ERRORS */
+parse_failed:
+  {
+    GST_ELEMENT_ERROR (dec, STREAM, DECODE, (NULL), ("failed to parse stream"));
+    return GST_FLOW_ERROR;
+  }
+}
+
+static GstFlowReturn
+gst_audio_decoder_drain (GstAudioDecoder * dec)
+{
+  GstFlowReturn ret;
+
+  if (dec->priv->drained && !dec->priv->gather)
+    return GST_FLOW_OK;
+  else {
+    /* dispatch reverse pending buffers */
+    /* chain eventually calls upon drain as well, but by that time
+     * gather list should be clear, so ok ... */
+    if (dec->segment.rate < 0.0 && dec->priv->gather)
+      gst_audio_decoder_chain_reverse (dec, NULL);
+    /* have subclass give all it can */
+    ret = gst_audio_decoder_push_buffers (dec, TRUE);
+    /* ensure all output sent */
+    ret = gst_audio_decoder_output (dec, NULL);
+    /* everything should be away now */
+    if (dec->priv->frames.length) {
+      /* not fatal/impossible though if subclass/codec eats stuff */
+      GST_WARNING_OBJECT (dec, "still %d frames left after draining",
+          dec->priv->frames.length);
+      g_queue_foreach (&dec->priv->frames, (GFunc) gst_buffer_unref, NULL);
+      g_queue_clear (&dec->priv->frames);
+    }
+    /* discard (unparsed) leftover */
+    gst_adapter_clear (dec->priv->adapter);
+
+    return ret;
+  }
+}
+
+/* hard == FLUSH, otherwise discont */
+static GstFlowReturn
+gst_audio_decoder_flush (GstAudioDecoder * dec, gboolean hard)
+{
+  GstAudioDecoderClass *klass;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+  GST_LOG_OBJECT (dec, "flush hard %d", hard);
+
+  if (!hard) {
+    ret = gst_audio_decoder_drain (dec);
+  } else {
+    gst_audio_decoder_clear_queues (dec);
+    gst_segment_init (&dec->segment, GST_FORMAT_TIME);
+    dec->priv->error_count = 0;
+  }
+  /* only bother subclass with flushing if known it is already alive
+   * and kicking out stuff */
+  if (klass->flush && dec->priv->samples_out > 0)
+    klass->flush (dec, hard);
+  /* and get (re)set for the sequel */
+  gst_audio_decoder_reset (dec, FALSE);
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_audio_decoder_chain_forward (GstAudioDecoder * dec, GstBuffer * buffer)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  /* discard silly case, though maybe ts may be of value ?? */
+  if (G_UNLIKELY (GST_BUFFER_SIZE (buffer) == 0)) {
+    GST_DEBUG_OBJECT (dec, "discarding empty buffer");
+    gst_buffer_unref (buffer);
+    goto exit;
+  }
+
+  /* grab buffer */
+  gst_adapter_push (dec->priv->adapter, buffer);
+  buffer = NULL;
+  /* new stuff, so we can push subclass again */
+  dec->priv->drained = FALSE;
+
+  /* hand to subclass */
+  ret = gst_audio_decoder_push_buffers (dec, FALSE);
+
+exit:
+  GST_LOG_OBJECT (dec, "chain-done");
+  return ret;
+}
+
+static void
+gst_audio_decoder_clear_queues (GstAudioDecoder * dec)
+{
+  GstAudioDecoderPrivate *priv = dec->priv;
+
+  g_list_foreach (priv->queued, (GFunc) gst_mini_object_unref, NULL);
+  g_list_free (priv->queued);
+  priv->queued = NULL;
+  g_list_foreach (priv->gather, (GFunc) gst_mini_object_unref, NULL);
+  g_list_free (priv->gather);
+  priv->gather = NULL;
+  g_list_foreach (priv->decode, (GFunc) gst_mini_object_unref, NULL);
+  g_list_free (priv->decode);
+  priv->decode = NULL;
+}
+
+/*
+ * Input:
+ *  Buffer decoding order:  7  8  9  4  5  6  3  1  2  EOS
+ *  Discont flag:           D        D        D  D
+ *
+ * - Each Discont marks a discont in the decoding order.
+ *
+ * for vorbis, each buffer is a keyframe when we have the previous
+ * buffer. This means that to decode buffer 7, we need buffer 6, which
+ * arrives out of order.
+ *
+ * we first gather buffers in the gather queue until we get a DISCONT. We
+ * prepend each incomming buffer so that they are in reversed order.
+ *
+ *    gather queue:    9  8  7
+ *    decode queue:
+ *    output queue:
+ *
+ * When a DISCONT is received (buffer 4), we move the gather queue to the
+ * decode queue. This is simply done be taking the head of the gather queue
+ * and prepending it to the decode queue. This yields:
+ *
+ *    gather queue:
+ *    decode queue:    7  8  9
+ *    output queue:
+ *
+ * Then we decode each buffer in the decode queue in order and put the output
+ * buffer in the output queue. The first buffer (7) will not produce any output
+ * because it needs the previous buffer (6) which did not arrive yet. This
+ * yields:
+ *
+ *    gather queue:
+ *    decode queue:    7  8  9
+ *    output queue:    9  8
+ *
+ * Then we remove the consumed buffers from the decode queue. Buffer 7 is not
+ * completely consumed, we need to keep it around for when we receive buffer
+ * 6. This yields:
+ *
+ *    gather queue:
+ *    decode queue:    7
+ *    output queue:    9  8
+ *
+ * Then we accumulate more buffers:
+ *
+ *    gather queue:    6  5  4
+ *    decode queue:    7
+ *    output queue:
+ *
+ * prepending to the decode queue on DISCONT yields:
+ *
+ *    gather queue:
+ *    decode queue:    4  5  6  7
+ *    output queue:
+ *
+ * after decoding and keeping buffer 4:
+ *
+ *    gather queue:
+ *    decode queue:    4
+ *    output queue:    7  6  5
+ *
+ * Etc..
+ */
+static GstFlowReturn
+gst_audio_decoder_flush_decode (GstAudioDecoder * dec)
+{
+  GstAudioDecoderPrivate *priv = dec->priv;
+  GstFlowReturn res = GST_FLOW_OK;
+  GstClockTime timestamp;
+  GList *walk;
+
+  walk = priv->decode;
+
+  GST_DEBUG_OBJECT (dec, "flushing buffers to decoder");
+
+  /* clear buffer and decoder state */
+  gst_audio_decoder_flush (dec, FALSE);
+
+  while (walk) {
+    GList *next;
+    GstBuffer *buf = GST_BUFFER_CAST (walk->data);
+
+    GST_DEBUG_OBJECT (dec, "decoding buffer %p, ts %" GST_TIME_FORMAT,
+        buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+    next = g_list_next (walk);
+    /* decode buffer, resulting data prepended to output queue */
+    gst_buffer_ref (buf);
+    res = gst_audio_decoder_chain_forward (dec, buf);
+
+    /* if we generated output, we can discard the buffer, else we
+     * keep it in the queue */
+    if (priv->queued) {
+      GST_DEBUG_OBJECT (dec, "decoded buffer to %p", priv->queued->data);
+      priv->decode = g_list_delete_link (priv->decode, walk);
+      gst_buffer_unref (buf);
+    } else {
+      GST_DEBUG_OBJECT (dec, "buffer did not decode, keeping");
+    }
+    walk = next;
+  }
+
+  /* drain any aggregation (or otherwise) leftover */
+  gst_audio_decoder_drain (dec);
+
+  /* now send queued data downstream */
+  timestamp = GST_CLOCK_TIME_NONE;
+  while (priv->queued) {
+    GstBuffer *buf = GST_BUFFER_CAST (priv->queued->data);
+
+    /* duration should always be valid for raw audio */
+    g_assert (GST_BUFFER_DURATION_IS_VALID (buf));
+
+    /* interpolate (backward) if needed */
+    if (G_LIKELY (timestamp != -1))
+      timestamp -= GST_BUFFER_DURATION (buf);
+
+    if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+      GST_LOG_OBJECT (dec, "applying reverse interpolated ts %"
+          GST_TIME_FORMAT, GST_TIME_ARGS (timestamp));
+      GST_BUFFER_TIMESTAMP (buf) = timestamp;
+    } else {
+      /* track otherwise */
+      timestamp = GST_BUFFER_TIMESTAMP (buf);
+      GST_LOG_OBJECT (dec, "tracking ts %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (timestamp));
+    }
+
+    if (G_LIKELY (res == GST_FLOW_OK)) {
+      GST_DEBUG_OBJECT (dec, "pushing buffer %p of size %u, "
+          "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
+          GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+          GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+      /* should be already, but let's be sure */
+      buf = gst_buffer_make_metadata_writable (buf);
+      /* avoid stray DISCONT from forward processing,
+       * which have no meaning in reverse pushing */
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
+      res = gst_audio_decoder_push_forward (dec, buf);
+    } else {
+      gst_buffer_unref (buf);
+    }
+
+    priv->queued = g_list_delete_link (priv->queued, priv->queued);
+  }
+
+  return res;
+}
+
+static GstFlowReturn
+gst_audio_decoder_chain_reverse (GstAudioDecoder * dec, GstBuffer * buf)
+{
+  GstAudioDecoderPrivate *priv = dec->priv;
+  GstFlowReturn result = GST_FLOW_OK;
+
+  /* if we have a discont, move buffers to the decode list */
+  if (!buf || GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) {
+    GST_DEBUG_OBJECT (dec, "received discont");
+    while (priv->gather) {
+      GstBuffer *gbuf;
+
+      gbuf = GST_BUFFER_CAST (priv->gather->data);
+      /* remove from the gather list */
+      priv->gather = g_list_delete_link (priv->gather, priv->gather);
+      /* copy to decode queue */
+      priv->decode = g_list_prepend (priv->decode, gbuf);
+    }
+    /* decode stuff in the decode queue */
+    gst_audio_decoder_flush_decode (dec);
+  }
+
+  if (G_LIKELY (buf)) {
+    GST_DEBUG_OBJECT (dec, "gathering buffer %p of size %u, "
+        "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
+        GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+        GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+    /* add buffer to gather queue */
+    priv->gather = g_list_prepend (priv->gather, buf);
+  }
+
+  return result;
+}
+
+static GstFlowReturn
+gst_audio_decoder_chain (GstPad * pad, GstBuffer * buffer)
+{
+  GstAudioDecoder *dec;
+  GstFlowReturn ret;
+
+  dec = GST_AUDIO_DECODER (GST_PAD_PARENT (pad));
+
+  if (G_UNLIKELY (!GST_PAD_CAPS (pad) && dec->priv->needs_format))
+    goto not_negotiated;
+
+  GST_LOG_OBJECT (dec,
+      "received buffer of size %d with ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+  GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) {
+    gint64 samples, ts;
+
+    /* track present position */
+    ts = dec->priv->base_ts;
+    samples = dec->priv->samples;
+
+    GST_DEBUG_OBJECT (dec, "handling discont");
+    gst_audio_decoder_flush (dec, FALSE);
+    dec->priv->discont = TRUE;
+
+    /* buffer may claim DISCONT loudly, if it can't tell us where we are now,
+     * we'll stick to where we were ...
+     * Particularly useful/needed for upstream BYTE based */
+    if (dec->segment.rate > 0.0 && !GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) {
+      GST_DEBUG_OBJECT (dec, "... but restoring previous ts tracking");
+      dec->priv->base_ts = ts;
+      dec->priv->samples = samples;
+    }
+  }
+
+  if (dec->segment.rate > 0.0)
+    ret = gst_audio_decoder_chain_forward (dec, buffer);
+  else
+    ret = gst_audio_decoder_chain_reverse (dec, buffer);
+
+  GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+  return ret;
+
+  /* ERRORS */
+not_negotiated:
+  {
+    GST_ELEMENT_ERROR (dec, CORE, NEGOTIATION, (NULL),
+        ("decoder not initialized"));
+    gst_buffer_unref (buffer);
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
+}
+
+/* perform upstream byte <-> time conversion (duration, seeking)
+ * if subclass allows and if enough data for moderately decent conversion */
+static inline gboolean
+gst_audio_decoder_do_byte (GstAudioDecoder * dec)
+{
+  return dec->priv->ctx.do_byte_time && dec->priv->ctx.info.bpf &&
+      dec->priv->ctx.info.rate <= dec->priv->samples_out;
+}
+
+static gboolean
+gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
+{
+  gboolean handled = FALSE;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_NEWSEGMENT:
+    {
+      GstFormat format;
+      gdouble rate, arate;
+      gint64 start, stop, time;
+      gboolean update;
+
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
+          &start, &stop, &time);
+
+      if (format == GST_FORMAT_TIME) {
+        GST_DEBUG_OBJECT (dec, "received TIME NEW_SEGMENT %" GST_TIME_FORMAT
+            " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT
+            ", rate %g, applied_rate %g",
+            GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (time),
+            rate, arate);
+      } else {
+        GstFormat dformat = GST_FORMAT_TIME;
+
+        GST_DEBUG_OBJECT (dec, "received NEW_SEGMENT %" G_GINT64_FORMAT
+            " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT
+            ", rate %g, applied_rate %g", start, stop, time, rate, arate);
+        /* handle newsegment resulting from legacy simple seeking */
+        /* note that we need to convert this whether or not enough data
+         * to handle initial newsegment */
+        if (dec->priv->ctx.do_byte_time &&
+            gst_pad_query_convert (dec->sinkpad, GST_FORMAT_BYTES, start,
+                &dformat, &start)) {
+          /* best attempt convert */
+          /* as these are only estimates, stop is kept open-ended to avoid
+           * premature cutting */
+          GST_DEBUG_OBJECT (dec, "converted to TIME start %" GST_TIME_FORMAT,
+              GST_TIME_ARGS (start));
+          format = GST_FORMAT_TIME;
+          time = start;
+          stop = GST_CLOCK_TIME_NONE;
+          /* replace event */
+          gst_event_unref (event);
+          event = gst_event_new_new_segment_full (update, rate, arate,
+              GST_FORMAT_TIME, start, stop, time);
+        } else {
+          GST_DEBUG_OBJECT (dec, "unsupported format; ignoring");
+          GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+          break;
+        }
+      }
+
+      /* finish current segment */
+      gst_audio_decoder_drain (dec);
+
+      if (update) {
+        /* time progressed without data, see if we can fill the gap with
+         * some concealment data */
+        GST_DEBUG_OBJECT (dec,
+            "segment update: plc %d, do_plc %d, last_stop %" GST_TIME_FORMAT,
+            dec->priv->plc, dec->priv->ctx.do_plc,
+            GST_TIME_ARGS (dec->segment.last_stop));
+        if (dec->priv->plc && dec->priv->ctx.do_plc &&
+            dec->segment.rate > 0.0 && dec->segment.last_stop < start) {
+          GstAudioDecoderClass *klass;
+          GstBuffer *buf;
+
+          klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+          /* hand subclass empty frame with duration that needs covering */
+          buf = gst_buffer_new ();
+          GST_BUFFER_DURATION (buf) = start - dec->segment.last_stop;
+          /* best effort, not much error handling */
+          gst_audio_decoder_handle_frame (dec, klass, buf);
+        }
+      } else {
+        /* prepare for next one */
+        gst_audio_decoder_flush (dec, FALSE);
+        /* and that's where we time from,
+         * in case upstream does not come up with anything better
+         * (e.g. upstream BYTE) */
+        if (format != GST_FORMAT_TIME) {
+          dec->priv->base_ts = start;
+          dec->priv->samples = 0;
+        }
+      }
+
+      /* and follow along with segment */
+      gst_segment_set_newsegment_full (&dec->segment, update, rate, arate,
+          format, start, stop, time);
+
+      dec->priv->pending_events =
+          g_list_append (dec->priv->pending_events, event);
+      handled = TRUE;
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+      break;
+    }
+
+    case GST_EVENT_FLUSH_START:
+      break;
+
+    case GST_EVENT_FLUSH_STOP:
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      /* prepare for fresh start */
+      gst_audio_decoder_flush (dec, TRUE);
+
+      g_list_foreach (dec->priv->pending_events, (GFunc) gst_event_unref, NULL);
+      g_list_free (dec->priv->pending_events);
+      dec->priv->pending_events = NULL;
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+      break;
+
+    case GST_EVENT_EOS:
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      gst_audio_decoder_drain (dec);
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+      break;
+
+    default:
+      break;
+  }
+
+  return handled;
+}
+
+static gboolean
+gst_audio_decoder_sink_event (GstPad * pad, GstEvent * event)
+{
+  GstAudioDecoder *dec;
+  GstAudioDecoderClass *klass;
+  gboolean handled = FALSE;
+  gboolean ret = TRUE;
+
+  dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+  GST_DEBUG_OBJECT (dec, "received event %d, %s", GST_EVENT_TYPE (event),
+      GST_EVENT_TYPE_NAME (event));
+
+  if (klass->event)
+    handled = klass->event (dec, event);
+
+  if (!handled)
+    handled = gst_audio_decoder_sink_eventfunc (dec, event);
+
+  if (!handled) {
+    /* Forward non-serialized events and EOS/FLUSH_STOP immediately.
+     * For EOS this is required because no buffer or serialized event
+     * will come after EOS and nothing could trigger another
+     * _finish_frame() call.
+     *
+     * For FLUSH_STOP this is required because it is expected
+     * to be forwarded immediately and no buffers are queued anyway.
+     */
+    if (!GST_EVENT_IS_SERIALIZED (event)
+        || GST_EVENT_TYPE (event) == GST_EVENT_EOS
+        || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+      ret = gst_pad_event_default (pad, event);
+    } else {
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      dec->priv->pending_events =
+          g_list_append (dec->priv->pending_events, event);
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+      ret = TRUE;
+    }
+  }
+
+  GST_DEBUG_OBJECT (dec, "event handled");
+
+  gst_object_unref (dec);
+  return ret;
+}
+
+static gboolean
+gst_audio_decoder_do_seek (GstAudioDecoder * dec, GstEvent * event)
+{
+  GstSeekFlags flags;
+  GstSeekType start_type, end_type;
+  GstFormat format;
+  gdouble rate;
+  gint64 start, start_time, end_time;
+  GstSegment seek_segment;
+  guint32 seqnum;
+
+  gst_event_parse_seek (event, &rate, &format, &flags, &start_type,
+      &start_time, &end_type, &end_time);
+
+  /* we'll handle plain open-ended flushing seeks with the simple approach */
+  if (rate != 1.0) {
+    GST_DEBUG_OBJECT (dec, "unsupported seek: rate");
+    return FALSE;
+  }
+
+  if (start_type != GST_SEEK_TYPE_SET) {
+    GST_DEBUG_OBJECT (dec, "unsupported seek: start time");
+    return FALSE;
+  }
+
+  if (end_type != GST_SEEK_TYPE_NONE ||
+      (end_type == GST_SEEK_TYPE_SET && end_time != GST_CLOCK_TIME_NONE)) {
+    GST_DEBUG_OBJECT (dec, "unsupported seek: end time");
+    return FALSE;
+  }
+
+  if (!(flags & GST_SEEK_FLAG_FLUSH)) {
+    GST_DEBUG_OBJECT (dec, "unsupported seek: not flushing");
+    return FALSE;
+  }
+
+  memcpy (&seek_segment, &dec->segment, sizeof (seek_segment));
+  gst_segment_set_seek (&seek_segment, rate, format, flags, start_type,
+      start_time, end_type, end_time, NULL);
+  start_time = seek_segment.last_stop;
+
+  format = GST_FORMAT_BYTES;
+  if (!gst_pad_query_convert (dec->sinkpad, GST_FORMAT_TIME, start_time,
+          &format, &start)) {
+    GST_DEBUG_OBJECT (dec, "conversion failed");
+    return FALSE;
+  }
+
+  seqnum = gst_event_get_seqnum (event);
+  event = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags,
+      GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_NONE, -1);
+  gst_event_set_seqnum (event, seqnum);
+
+  GST_DEBUG_OBJECT (dec, "seeking to %" GST_TIME_FORMAT " at byte offset %"
+      G_GINT64_FORMAT, GST_TIME_ARGS (start_time), start);
+
+  return gst_pad_push_event (dec->sinkpad, event);
+}
+
+static gboolean
+gst_audio_decoder_src_event (GstPad * pad, GstEvent * event)
+{
+  GstAudioDecoder *dec;
+  gboolean res = FALSE;
+
+  dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+  if (G_UNLIKELY (dec == NULL)) {
+    gst_event_unref (event);
+    return FALSE;
+  }
+
+  GST_DEBUG_OBJECT (dec, "received event %d, %s", GST_EVENT_TYPE (event),
+      GST_EVENT_TYPE_NAME (event));
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_SEEK:
+    {
+      GstFormat format, tformat;
+      gdouble rate;
+      GstSeekFlags flags;
+      GstSeekType cur_type, stop_type;
+      gint64 cur, stop;
+      gint64 tcur, tstop;
+      guint32 seqnum;
+
+      gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
+          &stop_type, &stop);
+      seqnum = gst_event_get_seqnum (event);
+
+      /* upstream gets a chance first */
+      if ((res = gst_pad_push_event (dec->sinkpad, event)))
+        break;
+
+      /* if upstream fails for a time seek, maybe we can help if allowed */
+      if (format == GST_FORMAT_TIME) {
+        if (gst_audio_decoder_do_byte (dec))
+          res = gst_audio_decoder_do_seek (dec, event);
+        break;
+      }
+
+      /* ... though a non-time seek can be aided as well */
+      /* First bring the requested format to time */
+      tformat = GST_FORMAT_TIME;
+      if (!(res = gst_pad_query_convert (pad, format, cur, &tformat, &tcur)))
+        goto convert_error;
+      if (!(res = gst_pad_query_convert (pad, format, stop, &tformat, &tstop)))
+        goto convert_error;
+
+      /* then seek with time on the peer */
+      event = gst_event_new_seek (rate, GST_FORMAT_TIME,
+          flags, cur_type, tcur, stop_type, tstop);
+      gst_event_set_seqnum (event, seqnum);
+
+      res = gst_pad_push_event (dec->sinkpad, event);
+      break;
+    }
+    default:
+      res = gst_pad_push_event (dec->sinkpad, event);
+      break;
+  }
+done:
+  gst_object_unref (dec);
+
+  return res;
+
+  /* ERRORS */
+convert_error:
+  {
+    GST_DEBUG_OBJECT (dec, "cannot convert start/stop for seek");
+    goto done;
+  }
+}
+
+/*
+ * gst_audio_encoded_audio_convert:
+ * @fmt: audio format of the encoded audio
+ * @bytes: number of encoded bytes
+ * @samples: number of encoded samples
+ * @src_format: source format
+ * @src_value: source value
+ * @dest_format: destination format
+ * @dest_value: destination format
+ *
+ * Helper function to convert @src_value in @src_format to @dest_value in
+ * @dest_format for encoded audio data.  Conversion is possible between
+ * BYTE and TIME format by using estimated bitrate based on
+ * @samples and @bytes (and @fmt).
+ */
+/* FIXME: make gst_audio_encoded_audio_convert() public? */
+static gboolean
+gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
+    gint64 bytes, gint64 samples, GstFormat src_format,
+    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
+{
+  gboolean res = FALSE;
+
+  g_return_val_if_fail (dest_format != NULL, FALSE);
+  g_return_val_if_fail (dest_value != NULL, FALSE);
+
+  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+          src_value == -1)) {
+    if (dest_value)
+      *dest_value = src_value;
+    return TRUE;
+  }
+
+  if (samples == 0 || bytes == 0 || fmt->rate == 0) {
+    GST_DEBUG ("not enough metadata yet to convert");
+    goto exit;
+  }
+
+  bytes *= fmt->rate;
+
+  switch (src_format) {
+    case GST_FORMAT_BYTES:
+      switch (*dest_format) {
+        case GST_FORMAT_TIME:
+          *dest_value = gst_util_uint64_scale (src_value,
+              GST_SECOND * samples, bytes);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    case GST_FORMAT_TIME:
+      switch (*dest_format) {
+        case GST_FORMAT_BYTES:
+          *dest_value = gst_util_uint64_scale (src_value, bytes,
+              samples * GST_SECOND);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    default:
+      res = FALSE;
+  }
+
+exit:
+  return res;
+}
+
+static gboolean
+gst_audio_decoder_sink_query (GstPad * pad, GstQuery * query)
+{
+  gboolean res = TRUE;
+  GstAudioDecoder *dec;
+
+  dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_FORMATS:
+    {
+      gst_query_set_formats (query, 2, GST_FORMAT_TIME, GST_FORMAT_BYTES);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_CONVERT:
+    {
+      GstFormat src_fmt, dest_fmt;
+      gint64 src_val, dest_val;
+
+      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      if (!(res = gst_audio_encoded_audio_convert (&dec->priv->ctx.info,
+                  dec->priv->bytes_in, dec->priv->samples_out,
+                  src_fmt, src_val, &dest_fmt, &dest_val)))
+        goto error;
+      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, query);
+      break;
+  }
+
+error:
+  gst_object_unref (dec);
+  return res;
+}
+
+static const GstQueryType *
+gst_audio_decoder_get_query_types (GstPad * pad)
+{
+  static const GstQueryType gst_audio_decoder_src_query_types[] = {
+    GST_QUERY_POSITION,
+    GST_QUERY_DURATION,
+    GST_QUERY_CONVERT,
+    GST_QUERY_LATENCY,
+    0
+  };
+
+  return gst_audio_decoder_src_query_types;
+}
+
+/* FIXME ? are any of these queries (other than latency) a decoder's business ??
+ * also, the conversion stuff might seem to make sense, but seems to not mind
+ * segment stuff etc at all
+ * Supposedly that's backward compatibility ... */
+static gboolean
+gst_audio_decoder_src_query (GstPad * pad, GstQuery * query)
+{
+  GstAudioDecoder *dec;
+  GstPad *peerpad;
+  gboolean res = FALSE;
+
+  dec = GST_AUDIO_DECODER (GST_PAD_PARENT (pad));
+  if (G_UNLIKELY (dec == NULL))
+    return FALSE;
+
+  peerpad = gst_pad_get_peer (GST_PAD (dec->sinkpad));
+
+  GST_LOG_OBJECT (dec, "handling query: %" GST_PTR_FORMAT, query);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_DURATION:
+    {
+      GstFormat format;
+
+      /* upstream in any case */
+      if ((res = gst_pad_query_default (pad, query)))
+        break;
+
+      gst_query_parse_duration (query, &format, NULL);
+      /* try answering TIME by converting from BYTE if subclass allows  */
+      if (format == GST_FORMAT_TIME && gst_audio_decoder_do_byte (dec)) {
+        gint64 value;
+
+        format = GST_FORMAT_BYTES;
+        if (gst_pad_query_peer_duration (dec->sinkpad, &format, &value)) {
+          GST_LOG_OBJECT (dec, "upstream size %" G_GINT64_FORMAT, value);
+          format = GST_FORMAT_TIME;
+          if (gst_pad_query_convert (dec->sinkpad, GST_FORMAT_BYTES, value,
+                  &format, &value)) {
+            gst_query_set_duration (query, GST_FORMAT_TIME, value);
+            res = TRUE;
+          }
+        }
+      }
+      break;
+    }
+    case GST_QUERY_POSITION:
+    {
+      GstFormat format;
+      gint64 time, value;
+
+      if ((res = gst_pad_peer_query (dec->sinkpad, query))) {
+        GST_LOG_OBJECT (dec, "returning peer response");
+        break;
+      }
+
+      /* we start from the last seen time */
+      time = dec->segment.last_stop;
+      /* correct for the segment values */
+      time = gst_segment_to_stream_time (&dec->segment, GST_FORMAT_TIME, time);
+
+      GST_LOG_OBJECT (dec,
+          "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
+
+      /* and convert to the final format */
+      gst_query_parse_position (query, &format, NULL);
+      if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, time,
+                  &format, &value)))
+        break;
+
+      gst_query_set_position (query, format, value);
+
+      GST_LOG_OBJECT (dec,
+          "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value,
+          format);
+      break;
+    }
+    case GST_QUERY_FORMATS:
+    {
+      gst_query_set_formats (query, 3,
+          GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_DEFAULT);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_CONVERT:
+    {
+      GstFormat src_fmt, dest_fmt;
+      gint64 src_val, dest_val;
+
+      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      if (!(res = gst_audio_info_convert (&dec->priv->ctx.info,
+                  src_fmt, src_val, dest_fmt, &dest_val)))
+        break;
+      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+      break;
+    }
+    case GST_QUERY_LATENCY:
+    {
+      if ((res = gst_pad_peer_query (dec->sinkpad, query))) {
+        gboolean live;
+        GstClockTime min_latency, max_latency;
+
+        gst_query_parse_latency (query, &live, &min_latency, &max_latency);
+        GST_DEBUG_OBJECT (dec, "Peer latency: live %d, min %"
+            GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live,
+            GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
+
+        GST_OBJECT_LOCK (dec);
+        /* add our latency */
+        if (min_latency != -1)
+          min_latency += dec->priv->ctx.min_latency;
+        if (max_latency != -1)
+          max_latency += dec->priv->ctx.max_latency;
+        GST_OBJECT_UNLOCK (dec);
+
+        gst_query_set_latency (query, live, min_latency, max_latency);
+      }
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, query);
+      break;
+  }
+
+  gst_object_unref (peerpad);
+  return res;
+}
+
+static gboolean
+gst_audio_decoder_stop (GstAudioDecoder * dec)
+{
+  GstAudioDecoderClass *klass;
+  gboolean ret = TRUE;
+
+  GST_DEBUG_OBJECT (dec, "gst_audio_decoder_stop");
+
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+  if (klass->stop) {
+    ret = klass->stop (dec);
+  }
+
+  /* clean up */
+  gst_audio_decoder_reset (dec, TRUE);
+
+  if (ret)
+    dec->priv->active = FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+gst_audio_decoder_start (GstAudioDecoder * dec)
+{
+  GstAudioDecoderClass *klass;
+  gboolean ret = TRUE;
+
+  GST_DEBUG_OBJECT (dec, "gst_audio_decoder_start");
+
+  klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+  /* arrange clean state */
+  gst_audio_decoder_reset (dec, TRUE);
+
+  if (klass->start) {
+    ret = klass->start (dec);
+  }
+
+  if (ret)
+    dec->priv->active = TRUE;
+
+  return TRUE;
+}
+
+static void
+gst_audio_decoder_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstAudioDecoder *dec;
+
+  dec = GST_AUDIO_DECODER (object);
+
+  switch (prop_id) {
+    case PROP_LATENCY:
+      g_value_set_int64 (value, dec->priv->latency);
+      break;
+    case PROP_TOLERANCE:
+      g_value_set_int64 (value, dec->priv->tolerance);
+      break;
+    case PROP_PLC:
+      g_value_set_boolean (value, dec->priv->plc);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_audio_decoder_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstAudioDecoder *dec;
+
+  dec = GST_AUDIO_DECODER (object);
+
+  switch (prop_id) {
+    case PROP_LATENCY:
+      dec->priv->latency = g_value_get_int64 (value);
+      break;
+    case PROP_TOLERANCE:
+      dec->priv->tolerance = g_value_get_int64 (value);
+      break;
+    case PROP_PLC:
+      dec->priv->plc = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static GstStateChangeReturn
+gst_audio_decoder_change_state (GstElement * element, GstStateChange transition)
+{
+  GstAudioDecoder *codec;
+  GstStateChangeReturn ret;
+
+  codec = GST_AUDIO_DECODER (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      if (!gst_audio_decoder_start (codec)) {
+        goto start_failed;
+      }
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      break;
+    default:
+      break;
+  }
+
+  ret = parent_class->change_state (element, transition);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      if (!gst_audio_decoder_stop (codec)) {
+        goto stop_failed;
+      }
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+
+start_failed:
+  {
+    GST_ELEMENT_ERROR (codec, LIBRARY, INIT, (NULL), ("Failed to start codec"));
+    return GST_STATE_CHANGE_FAILURE;
+  }
+stop_failed:
+  {
+    GST_ELEMENT_ERROR (codec, LIBRARY, INIT, (NULL), ("Failed to stop codec"));
+    return GST_STATE_CHANGE_FAILURE;
+  }
+}
+
+GstFlowReturn
+_gst_audio_decoder_error (GstAudioDecoder * dec, gint weight,
+    GQuark domain, gint code, gchar * txt, gchar * dbg, const gchar * file,
+    const gchar * function, gint line)
+{
+  if (txt)
+    GST_WARNING_OBJECT (dec, "error: %s", txt);
+  if (dbg)
+    GST_WARNING_OBJECT (dec, "error: %s", dbg);
+  dec->priv->error_count += weight;
+  dec->priv->discont = TRUE;
+  if (dec->priv->ctx.max_errors < dec->priv->error_count) {
+    gst_element_message_full (GST_ELEMENT (dec), GST_MESSAGE_ERROR,
+        domain, code, txt, dbg, file, function, line);
+    return GST_FLOW_ERROR;
+  } else {
+    return GST_FLOW_OK;
+  }
+}
+
+/**
+ * gst_audio_decoder_get_audio_info:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: a #GstAudioInfo describing the input audio format
+ *
+ * Since: 0.10.36
+ */
+GstAudioInfo *
+gst_audio_decoder_get_audio_info (GstAudioDecoder * dec)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), NULL);
+
+  return &dec->priv->ctx.info;
+}
+
+/**
+ * gst_audio_decoder_set_plc_aware:
+ * @dec: a #GstAudioDecoder
+ * @plc: new plc state
+ *
+ * Indicates whether or not subclass handles packet loss concealment (plc).
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_plc_aware (GstAudioDecoder * dec, gboolean plc)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  dec->priv->ctx.do_plc = plc;
+}
+
+/**
+ * gst_audio_decoder_get_plc_aware:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured plc handling
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_plc_aware (GstAudioDecoder * dec)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  return dec->priv->ctx.do_plc;
+}
+
+/**
+ * gst_audio_decoder_set_byte_time:
+ * @dec: a #GstAudioDecoder
+ * @enabled: whether to enable byte to time conversion
+ *
+ * Allows baseclass to perform byte to time estimated conversion.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_byte_time (GstAudioDecoder * dec, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  dec->priv->ctx.do_byte_time = enabled;
+}
+
+/**
+ * gst_audio_decoder_get_byte_time:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured byte to time conversion setting
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_byte_time (GstAudioDecoder * dec)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  return dec->priv->ctx.do_byte_time;
+}
+
+/**
+ * gst_audio_decoder_get_delay:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured decoder delay
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_delay (GstAudioDecoder * dec)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  return dec->priv->ctx.delay;
+}
+
+/**
+ * gst_audio_decoder_set_max_errors:
+ * @dec: a #GstAudioDecoder
+ * @num: max tolerated errors
+ *
+ * Sets numbers of tolerated decoder errors, where a tolerated one is then only
+ * warned about, but more than tolerated will lead to fatal error.  Default
+ * is set to GST_AUDIO_DECODER_MAX_ERRORS.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_max_errors (GstAudioDecoder * dec, gint num)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  dec->priv->ctx.max_errors = num;
+}
+
+/**
+ * gst_audio_decoder_get_max_errors:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured decoder tolerated error count.
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_max_errors (GstAudioDecoder * dec)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  return dec->priv->ctx.max_errors;
+}
+
+/**
+ * gst_audio_decoder_set_latency:
+ * @dec: a #GstAudioDecoder
+ * @min: minimum latency
+ * @max: maximum latency
+ *
+ * Sets decoder latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_latency (GstAudioDecoder * dec,
+    GstClockTime min, GstClockTime max)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_OBJECT_LOCK (dec);
+  dec->priv->ctx.min_latency = min;
+  dec->priv->ctx.max_latency = max;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_latency:
+ * @dec: a #GstAudioDecoder
+ * @min: (out) (allow-none): a pointer to storage to hold minimum latency
+ * @max: (out) (allow-none): a pointer to storage to hold maximum latency
+ *
+ * Sets the variables pointed to by @min and @max to the currently configured
+ * latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_get_latency (GstAudioDecoder * dec,
+    GstClockTime * min, GstClockTime * max)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_OBJECT_LOCK (dec);
+  if (min)
+    *min = dec->priv->ctx.min_latency;
+  if (max)
+    *max = dec->priv->ctx.max_latency;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_parse_state:
+ * @dec: a #GstAudioDecoder
+ * @sync: a pointer to a variable to hold the current sync state
+ * @eos: a pointer to a variable to hold the current eos state
+ *
+ * Return current parsing (sync and eos) state.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_get_parse_state (GstAudioDecoder * dec,
+    gboolean * sync, gboolean * eos)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  if (sync)
+    *sync = dec->priv->ctx.sync;
+  if (eos)
+    *eos = dec->priv->ctx.eos;
+}
+
+/**
+ * gst_audio_decoder_set_plc:
+ * @dec: a #GstAudioDecoder
+ * @enabled: new state
+ *
+ * Enable or disable decoder packet loss concealment, provided subclass
+ * and codec are capable and allow handling plc.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_plc (GstAudioDecoder * dec, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_LOG_OBJECT (dec, "enabled: %d", enabled);
+
+  GST_OBJECT_LOCK (dec);
+  dec->priv->plc = enabled;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_plc:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder packet loss concealment handling.
+ *
+ * Returns: TRUE if packet loss concealment is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_decoder_get_plc (GstAudioDecoder * dec)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), FALSE);
+
+  GST_OBJECT_LOCK (dec);
+  result = dec->priv->plc;
+  GST_OBJECT_UNLOCK (dec);
+
+  return result;
+}
+
+/**
+ * gst_audio_decoder_set_min_latency:
+ * @dec: a #GstAudioDecoder
+ * @num: new minimum latency
+ *
+ * Sets decoder minimum aggregation latency.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_min_latency (GstAudioDecoder * dec, gint64 num)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_OBJECT_LOCK (dec);
+  dec->priv->latency = num;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_min_latency:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder's latency aggregation.
+ *
+ * Returns: aggregation latency.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gint64
+gst_audio_decoder_get_min_latency (GstAudioDecoder * dec)
+{
+  gint64 result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), FALSE);
+
+  GST_OBJECT_LOCK (dec);
+  result = dec->priv->latency;
+  GST_OBJECT_UNLOCK (dec);
+
+  return result;
+}
+
+/**
+ * gst_audio_decoder_set_tolerance:
+ * @dec: a #GstAudioDecoder
+ * @tolerance: new tolerance
+ *
+ * Configures decoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_tolerance (GstAudioDecoder * dec, gint64 tolerance)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_OBJECT_LOCK (dec);
+  dec->priv->tolerance = tolerance;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_tolerance:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries current audio jitter tolerance threshold.
+ *
+ * Returns: decoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gint64
+gst_audio_decoder_get_tolerance (GstAudioDecoder * dec)
+{
+  gint64 result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  GST_OBJECT_LOCK (dec);
+  result = dec->priv->tolerance;
+  GST_OBJECT_UNLOCK (dec);
+
+  return result;
+}
+
+/**
+ * gst_audio_decoder_set_drainable:
+ * @dec: a #GstAudioDecoder
+ * @enabled: new state
+ *
+ * Configures decoder drain handling.  If drainable, subclass might
+ * be handed a NULL buffer to have it return any leftover decoded data.
+ * Otherwise, it is not considered so capable and will only ever be passed
+ * real data.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_drainable (GstAudioDecoder * dec, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_OBJECT_LOCK (dec);
+  dec->priv->drainable = enabled;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_drainable:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder drain handling.
+ *
+ * Returns: TRUE if drainable handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_decoder_get_drainable (GstAudioDecoder * dec)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  GST_OBJECT_LOCK (dec);
+  result = dec->priv->drainable;
+  GST_OBJECT_UNLOCK (dec);
+
+  return result;
+}
+
+/**
+ * gst_audio_decoder_set_needs_format:
+ * @dec: a #GstAudioDecoder
+ * @enabled: new state
+ *
+ * Configures decoder format needs.  If enabled, subclass needs to be
+ * negotiated with format caps before it can process any data.  It will then
+ * never be handed any data before it has been configured.
+ * Otherwise, it might be handed data without having been configured and
+ * is then expected being able to do so either by default
+ * or based on the input data.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_needs_format (GstAudioDecoder * dec, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  GST_OBJECT_LOCK (dec);
+  dec->priv->needs_format = enabled;
+  GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_needs_format:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder required format handling.
+ *
+ * Returns: TRUE if required format handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_decoder_get_needs_format (GstAudioDecoder * dec)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+  GST_OBJECT_LOCK (dec);
+  result = dec->priv->needs_format;
+  GST_OBJECT_UNLOCK (dec);
+
+  return result;
+}
diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h
new file mode 100644 (file)
index 0000000..ba4fff3
--- /dev/null
@@ -0,0 +1,308 @@
+/* GStreamer
+ * Copyright (C) 2009 Igalia S.L.
+ * Author: Iago Toral Quiroga <itoral@igalia.com>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ *   Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+#ifndef _GST_AUDIO_DECODER_H_
+#define _GST_AUDIO_DECODER_H_
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_AUDIO_DECODER \
+  (gst_audio_decoder_get_type())
+#define GST_AUDIO_DECODER(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_DECODER,GstAudioDecoder))
+#define GST_AUDIO_DECODER_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_DECODER,GstAudioDecoderClass))
+#define GST_AUDIO_DECODER_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_DECODER,GstAudioDecoderClass))
+#define GST_IS_AUDIO_DECODER(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_DECODER))
+#define GST_IS_AUDIO_DECODER_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_DECODER))
+
+/**
+ * GST_AUDIO_DECODER_SINK_NAME:
+ *
+ * The name of the templates for the sink pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SINK_NAME    "sink"
+/**
+ * GST_AUDIO_DECODER_SRC_NAME:
+ *
+ * The name of the templates for the source pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SRC_NAME     "src"
+
+/**
+ * GST_AUDIO_DECODER_SRC_PAD:
+ * @obj: base audio codec instance
+ *
+ * Gives the pointer to the source #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SRC_PAD(obj)         (((GstAudioDecoder *) (obj))->srcpad)
+
+/**
+ * GST_AUDIO_DECODER_SINK_PAD:
+ * @obj: base audio codec instance
+ *
+ * Gives the pointer to the sink #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SINK_PAD(obj)        (((GstAudioDecoder *) (obj))->sinkpad)
+
+#define GST_AUDIO_DECODER_STREAM_LOCK(dec) g_static_rec_mutex_lock (&GST_AUDIO_DECODER (dec)->stream_lock)
+#define GST_AUDIO_DECODER_STREAM_UNLOCK(dec) g_static_rec_mutex_unlock (&GST_AUDIO_DECODER (dec)->stream_lock)
+
+typedef struct _GstAudioDecoder GstAudioDecoder;
+typedef struct _GstAudioDecoderClass GstAudioDecoderClass;
+
+typedef struct _GstAudioDecoderPrivate GstAudioDecoderPrivate;
+
+/* do not use this one, use macro below */
+GstFlowReturn _gst_audio_decoder_error (GstAudioDecoder *dec, gint weight,
+                                        GQuark domain, gint code,
+                                        gchar *txt, gchar *debug,
+                                        const gchar *file, const gchar *function,
+                                        gint line);
+
+/**
+ * GST_AUDIO_DECODER_ERROR:
+ * @el:     the base audio decoder element that generates the error
+ * @weight: element defined weight of the error, added to error count
+ * @domain: like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError)
+ * @code:   error code defined for that domain (see #gstreamer-GstGError)
+ * @text:   the message to display (format string and args enclosed in
+ *          parentheses)
+ * @debug:  debugging information for the message (format string and args
+ *          enclosed in parentheses)
+ * @ret:    variable to receive return value
+ *
+ * Utility function that audio decoder elements can use in case they encountered
+ * a data processing error that may be fatal for the current "data unit" but
+ * need not prevent subsequent decoding.  Such errors are counted and if there
+ * are too many, as configured in the context's max_errors, the pipeline will
+ * post an error message and the application will be requested to stop further
+ * media processing.  Otherwise, it is considered a "glitch" and only a warning
+ * is logged. In either case, @ret is set to the proper value to
+ * return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_ERROR(el, weight, domain, code, text, debug, ret) \
+G_STMT_START {                                                              \
+  gchar *__txt = _gst_element_error_printf text;                            \
+  gchar *__dbg = _gst_element_error_printf debug;                           \
+  GstAudioDecoder *dec = GST_AUDIO_DECODER (el);                   \
+  ret = _gst_audio_decoder_error (dec, weight, GST_ ## domain ## _ERROR,    \
+      GST_ ## domain ## _ERROR_ ## code, __txt, __dbg, __FILE__,            \
+      GST_FUNCTION, __LINE__);                                              \
+} G_STMT_END
+
+
+/**
+ * GST_AUDIO_DECODER_MAX_ERRORS:
+ *
+ * Default maximum number of errors tolerated before signaling error.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_MAX_ERRORS     10
+
+/**
+ * GstAudioDecoder:
+ *
+ * The opaque #GstAudioDecoder data structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioDecoder
+{
+  GstElement element;
+
+  /*< protected >*/
+  /* source and sink pads */
+  GstPad         *sinkpad;
+  GstPad         *srcpad;
+
+  /* protects all data processing, i.e. is locked
+   * in the chain function, finish_frame and when
+   * processing serialized events */
+  GStaticRecMutex stream_lock;
+
+  /* MT-protected (with STREAM_LOCK) */
+  GstSegment      segment;
+
+  /*< private >*/
+  GstAudioDecoderPrivate *priv;
+  gpointer       _gst_reserved[GST_PADDING_LARGE];
+};
+
+/**
+ * GstAudioDecoderClass:
+ * @element_class:  The parent class structure
+ * @start:          Optional.
+ *                  Called when the element starts processing.
+ *                  Allows opening external resources.
+ * @stop:           Optional.
+ *                  Called when the element stops processing.
+ *                  Allows closing external resources.
+ * @set_format:     Notifies subclass of incoming data format (caps).
+ * @parse:          Optional.
+ *                  Allows chopping incoming data into manageable units (frames)
+ *                  for subsequent decoding.  This division is at subclass
+ *                  discretion and may or may not correspond to 1 (or more)
+ *                  frames as defined by audio format.
+ * @handle_frame:   Provides input data (or NULL to clear any remaining data)
+ *                  to subclass.  Input data ref management is performed by
+ *                  base class, subclass should not care or intervene,
+ *                  and input data is only valid until next call to base class,
+ *                  most notably a call to gst_audio_decoder_finish_frame().
+ * @flush:          Optional.
+ *                  Instructs subclass to clear any codec caches and discard
+ *                  any pending samples and not yet returned decoded data.
+ *                  @hard indicates whether a FLUSH is being processed,
+ *                  or otherwise a DISCONT (or conceptually similar).
+ * @event:          Optional.
+ *                  Event handler on the sink pad. This function should return
+ *                  TRUE if the event was handled and should be discarded
+ *                  (i.e. not unref'ed).
+ * @pre_push:       Optional.
+ *                  Called just prior to pushing (encoded data) buffer downstream.
+ *                  Subclass has full discretionary access to buffer,
+ *                  and a not OK flow return will abort downstream pushing.
+ *
+ * Subclasses can override any of the available virtual methods or not, as
+ * needed. At minimum @handle_frame (and likely @set_format) needs to be
+ * overridden.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioDecoderClass
+{
+  GstElementClass element_class;
+
+  /*< public >*/
+  /* virtual methods for subclasses */
+
+  gboolean      (*start)              (GstAudioDecoder *dec);
+
+  gboolean      (*stop)               (GstAudioDecoder *dec);
+
+  gboolean      (*set_format)         (GstAudioDecoder *dec,
+                                       GstCaps *caps);
+
+  GstFlowReturn (*parse)              (GstAudioDecoder *dec,
+                                       GstAdapter *adapter,
+                                       gint *offset, gint *length);
+
+  GstFlowReturn (*handle_frame)       (GstAudioDecoder *dec,
+                                       GstBuffer *buffer);
+
+  void          (*flush)              (GstAudioDecoder *dec, gboolean hard);
+
+  GstFlowReturn (*pre_push)           (GstAudioDecoder *dec,
+                                       GstBuffer **buffer);
+
+  gboolean      (*event)              (GstAudioDecoder *dec,
+                                       GstEvent *event);
+
+  /*< private >*/
+  gpointer       _gst_reserved[GST_PADDING_LARGE];
+};
+
+GType             gst_audio_decoder_get_type (void);
+
+GstFlowReturn     gst_audio_decoder_finish_frame (GstAudioDecoder * dec,
+                                                       GstBuffer * buf, gint frames);
+
+/* context parameters */
+GstAudioInfo    * gst_audio_decoder_get_audio_info (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_plc_aware  (GstAudioDecoder * dec,
+                                                    gboolean          plc);
+
+gint              gst_audio_decoder_get_plc_aware  (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_byte_time  (GstAudioDecoder * dec,
+                                                    gboolean          enabled);
+
+gint              gst_audio_decoder_get_byte_time  (GstAudioDecoder * dec);
+
+gint              gst_audio_decoder_get_delay      (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_max_errors (GstAudioDecoder * dec,
+                                                   gint               num);
+
+gint              gst_audio_decoder_get_max_errors (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_latency (GstAudioDecoder * dec,
+                                                 GstClockTime      min,
+                                                 GstClockTime      max);
+
+void              gst_audio_decoder_get_latency (GstAudioDecoder * dec,
+                                                 GstClockTime    * min,
+                                                 GstClockTime    * max);
+
+void              gst_audio_decoder_get_parse_state (GstAudioDecoder * dec,
+                                                     gboolean        * sync,
+                                                     gboolean        * eos);
+
+
+/* object properties */
+void              gst_audio_decoder_set_plc (GstAudioDecoder * dec,
+                                             gboolean          enabled);
+
+gboolean          gst_audio_decoder_get_plc (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_min_latency (GstAudioDecoder * dec,
+                                                     gint64            num);
+
+gint64            gst_audio_decoder_get_min_latency (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_tolerance   (GstAudioDecoder * dec,
+                                                     gint64            tolerance);
+
+gint64            gst_audio_decoder_get_tolerance   (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_drainable (GstAudioDecoder * dec,
+                                                   gboolean enabled);
+
+gboolean          gst_audio_decoder_get_drainable (GstAudioDecoder * dec);
+
+void              gst_audio_decoder_set_needs_format (GstAudioDecoder * dec,
+                                                      gboolean enabled);
+
+gboolean          gst_audio_decoder_get_needs_format (GstAudioDecoder * dec);
+
+G_END_DECLS
+
+#endif /* _GST_AUDIO_DECODER_H_ */
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
new file mode 100644 (file)
index 0000000..b915ae7
--- /dev/null
@@ -0,0 +1,2287 @@
+/* GStreamer
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ *   Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstaudioencoder
+ * @short_description: Base class for audio encoders
+ * @see_also: #GstBaseTransform
+ * @since: 0.10.36
+ *
+ * This base class is for audio encoders turning raw audio samples into
+ * encoded audio data.
+ *
+ * GstAudioEncoder and subclass should cooperate as follows.
+ * <orderedlist>
+ * <listitem>
+ *   <itemizedlist><title>Configuration</title>
+ *   <listitem><para>
+ *     Initially, GstAudioEncoder calls @start when the encoder element
+ *     is activated, which allows subclass to perform any global setup.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     GstAudioEncoder calls @set_format to inform subclass of the format
+ *     of input audio data that it is about to receive.  Subclass should
+ *     setup for encoding and configure various base class parameters
+ *     appropriately, notably those directing desired input data handling.
+ *     While unlikely, it might be called more than once, if changing input
+ *     parameters require reconfiguration.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     GstAudioEncoder calls @stop at end of all processing.
+ *   </para></listitem>
+ *   </itemizedlist>
+ * </listitem>
+ * As of configuration stage, and throughout processing, GstAudioEncoder
+ * maintains various parameters that provide required context,
+ * e.g. describing the format of input audio data.
+ * Conversely, subclass can and should configure these context parameters
+ * to inform base class of its expectation w.r.t. buffer handling.
+ * <listitem>
+ *   <itemizedlist>
+ *   <title>Data processing</title>
+ *     <listitem><para>
+ *       Base class gathers input sample data (as directed by the context's
+ *       frame_samples and frame_max) and provides this to subclass' @handle_frame.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       If codec processing results in encoded data, subclass should call
+ *       @gst_audio_encoder_finish_frame to have encoded data pushed
+ *       downstream.  Alternatively, it might also call to indicate dropped
+ *       (non-encoded) samples.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       Just prior to actually pushing a buffer downstream,
+ *       it is passed to @pre_push.
+ *     </para></listitem>
+ *     <listitem><para>
+ *       During the parsing process GstAudioEncoderClass will handle both
+ *       srcpad and sinkpad events. Sink events will be passed to subclass
+ *       if @event callback has been provided.
+ *     </para></listitem>
+ *   </itemizedlist>
+ * </listitem>
+ * <listitem>
+ *   <itemizedlist><title>Shutdown phase</title>
+ *   <listitem><para>
+ *     GstAudioEncoder class calls @stop to inform the subclass that data
+ *     parsing will be stopped.
+ *   </para></listitem>
+ *   </itemizedlist>
+ * </listitem>
+ * </orderedlist>
+ *
+ * Subclass is responsible for providing pad template caps for
+ * source and sink pads. The pads need to be named "sink" and "src". It also 
+ * needs to set the fixed caps on srcpad, when the format is ensured.  This
+ * is typically when base class calls subclass' @set_format function, though
+ * it might be delayed until calling @gst_audio_encoder_finish_frame.
+ *
+ * In summary, above process should have subclass concentrating on
+ * codec data processing while leaving other matters to base class,
+ * such as most notably timestamp handling.  While it may exert more control
+ * in this area (see e.g. @pre_push), it is very much not recommended.
+ *
+ * In particular, base class will either favor tracking upstream timestamps
+ * (at the possible expense of jitter) or aim to arrange for a perfect stream of
+ * output timestamps, depending on #GstAudioEncoder:perfect-timestamp.
+ * However, in the latter case, the input may not be so perfect or ideal, which
+ * is handled as follows.  An input timestamp is compared with the expected
+ * timestamp as dictated by input sample stream and if the deviation is less
+ * than #GstAudioEncoder:tolerance, the deviation is discarded.
+ * Otherwise, it is considered a discontuinity and subsequent output timestamp
+ * is resynced to the new position after performing configured discontinuity
+ * processing.  In the non-perfect-timestamp case, an upstream variation
+ * exceeding tolerance only leads to marking DISCONT on subsequent outgoing
+ * (while timestamps are adjusted to upstream regardless of variation).
+ * While DISCONT is also marked in the perfect-timestamp case, this one
+ * optionally (see #GstAudioEncoder:hard-resync)
+ * performs some additional steps, such as clipping of (early) input samples
+ * or draining all currently remaining input data, depending on the direction
+ * of the discontuinity.
+ *
+ * If perfect timestamps are arranged, it is also possible to request baseclass
+ * (usually set by subclass) to provide additional buffer metadata (in OFFSET
+ * and OFFSET_END) fields according to granule defined semantics currently
+ * needed by oggmux.  Specifically, OFFSET is set to granulepos (= sample count
+ * including buffer) and OFFSET_END to corresponding timestamp (as determined
+ * by same sample count and sample rate).
+ *
+ * Things that subclass need to take care of:
+ * <itemizedlist>
+ *   <listitem><para>Provide pad templates</para></listitem>
+ *   <listitem><para>
+ *      Set source pad caps when appropriate
+ *   </para></listitem>
+ *   <listitem><para>
+ *      Inform base class of buffer processing needs using context's
+ *      frame_samples and frame_bytes.
+ *   </para></listitem>
+ *   <listitem><para>
+ *      Set user-configurable properties to sane defaults for format and
+ *      implementing codec at hand, e.g. those controlling timestamp behaviour
+ *      and discontinuity processing.
+ *   </para></listitem>
+ *   <listitem><para>
+ *      Accept data in @handle_frame and provide encoded results to
+ *      @gst_audio_encoder_finish_frame.
+ *   </para></listitem>
+ * </itemizedlist>
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include "gstaudioencoder.h"
+#include <gst/base/gstadapter.h>
+#include <gst/audio/audio.h>
+#include <gst/pbutils/descriptions.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+
+GST_DEBUG_CATEGORY_STATIC (gst_audio_encoder_debug);
+#define GST_CAT_DEFAULT gst_audio_encoder_debug
+
+#define GST_AUDIO_ENCODER_GET_PRIVATE(obj)  \
+    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_ENCODER, \
+        GstAudioEncoderPrivate))
+
+enum
+{
+  PROP_0,
+  PROP_PERFECT_TS,
+  PROP_GRANULE,
+  PROP_HARD_RESYNC,
+  PROP_TOLERANCE
+};
+
+#define DEFAULT_PERFECT_TS   FALSE
+#define DEFAULT_GRANULE      FALSE
+#define DEFAULT_HARD_RESYNC  FALSE
+#define DEFAULT_TOLERANCE    40000000
+#define DEFAULT_HARD_MIN     FALSE
+#define DEFAULT_DRAINABLE    TRUE
+
+typedef struct _GstAudioEncoderContext
+{
+  /* input */
+  GstAudioInfo info;
+
+  /* output */
+  gint frame_samples_min, frame_samples_max;
+  gint frame_max;
+  gint lookahead;
+  /* MT-protected (with LOCK) */
+  GstClockTime min_latency;
+  GstClockTime max_latency;
+} GstAudioEncoderContext;
+
+struct _GstAudioEncoderPrivate
+{
+  /* activation status */
+  gboolean active;
+
+  /* input base/first ts as basis for output ts;
+   * kept nearly constant for perfect_ts,
+   * otherwise resyncs to upstream ts */
+  GstClockTime base_ts;
+  /* corresponding base granulepos */
+  gint64 base_gp;
+  /* input samples processed and sent downstream so far (w.r.t. base_ts) */
+  guint64 samples;
+
+  /* currently collected sample data */
+  GstAdapter *adapter;
+  /* offset in adapter up to which already supplied to encoder */
+  gint offset;
+  /* mark outgoing discont */
+  gboolean discont;
+  /* to guess duration of drained data */
+  GstClockTime last_duration;
+
+  /* subclass provided data in processing round */
+  gboolean got_data;
+  /* subclass gave all it could already */
+  gboolean drained;
+  /* subclass currently being forcibly drained */
+  gboolean force;
+
+  /* output bps estimatation */
+  /* global in samples seen */
+  guint64 samples_in;
+  /* global bytes sent out */
+  guint64 bytes_out;
+
+  /* context storage */
+  GstAudioEncoderContext ctx;
+
+  /* properties */
+  gint64 tolerance;
+  gboolean perfect_ts;
+  gboolean hard_resync;
+  gboolean granule;
+  gboolean hard_min;
+  gboolean drainable;
+
+  /* pending tags */
+  GstTagList *tags;
+  /* pending serialized sink events, will be sent from finish_frame() */
+  GList *pending_events;
+};
+
+
+static GstElementClass *parent_class = NULL;
+
+static void gst_audio_encoder_class_init (GstAudioEncoderClass * klass);
+static void gst_audio_encoder_init (GstAudioEncoder * parse,
+    GstAudioEncoderClass * klass);
+
+GType
+gst_audio_encoder_get_type (void)
+{
+  static GType audio_encoder_type = 0;
+
+  if (!audio_encoder_type) {
+    static const GTypeInfo audio_encoder_info = {
+      sizeof (GstAudioEncoderClass),
+      (GBaseInitFunc) NULL,
+      (GBaseFinalizeFunc) NULL,
+      (GClassInitFunc) gst_audio_encoder_class_init,
+      NULL,
+      NULL,
+      sizeof (GstAudioEncoder),
+      0,
+      (GInstanceInitFunc) gst_audio_encoder_init,
+    };
+    const GInterfaceInfo preset_interface_info = {
+      NULL,                     /* interface_init */
+      NULL,                     /* interface_finalize */
+      NULL                      /* interface_data */
+    };
+
+    audio_encoder_type = g_type_register_static (GST_TYPE_ELEMENT,
+        "GstAudioEncoder", &audio_encoder_info, G_TYPE_FLAG_ABSTRACT);
+
+    g_type_add_interface_static (audio_encoder_type, GST_TYPE_PRESET,
+        &preset_interface_info);
+  }
+  return audio_encoder_type;
+}
+
+static void gst_audio_encoder_finalize (GObject * object);
+static void gst_audio_encoder_reset (GstAudioEncoder * enc, gboolean full);
+
+static void gst_audio_encoder_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_audio_encoder_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec);
+
+static gboolean gst_audio_encoder_sink_activate_push (GstPad * pad,
+    gboolean active);
+
+static gboolean gst_audio_encoder_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_audio_encoder_sink_setcaps (GstPad * pad, GstCaps * caps);
+static GstFlowReturn gst_audio_encoder_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_audio_encoder_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_audio_encoder_sink_query (GstPad * pad, GstQuery * query);
+static const GstQueryType *gst_audio_encoder_get_query_types (GstPad * pad);
+static GstCaps *gst_audio_encoder_sink_getcaps (GstPad * pad);
+
+
+static void
+gst_audio_encoder_class_init (GstAudioEncoderClass * klass)
+{
+  GObjectClass *gobject_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  parent_class = g_type_class_peek_parent (klass);
+
+  GST_DEBUG_CATEGORY_INIT (gst_audio_encoder_debug, "audioencoder", 0,
+      "audio encoder base class");
+
+  g_type_class_add_private (klass, sizeof (GstAudioEncoderPrivate));
+
+  gobject_class->set_property = gst_audio_encoder_set_property;
+  gobject_class->get_property = gst_audio_encoder_get_property;
+
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_audio_encoder_finalize);
+
+  /* properties */
+  g_object_class_install_property (gobject_class, PROP_PERFECT_TS,
+      g_param_spec_boolean ("perfect-timestamp", "Perfect Timestamps",
+          "Favour perfect timestamps over tracking upstream timestamps",
+          DEFAULT_PERFECT_TS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_GRANULE,
+      g_param_spec_boolean ("mark-granule", "Granule Marking",
+          "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
+          DEFAULT_GRANULE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_HARD_RESYNC,
+      g_param_spec_boolean ("hard-resync", "Hard Resync",
+          "Perform clipping and sample flushing upon discontinuity",
+          DEFAULT_HARD_RESYNC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_TOLERANCE,
+      g_param_spec_int64 ("tolerance", "Tolerance",
+          "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
+          0, G_MAXINT64, DEFAULT_TOLERANCE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_audio_encoder_init (GstAudioEncoder * enc, GstAudioEncoderClass * bclass)
+{
+  GstPadTemplate *pad_template;
+
+  GST_DEBUG_OBJECT (enc, "gst_audio_encoder_init");
+
+  enc->priv = GST_AUDIO_ENCODER_GET_PRIVATE (enc);
+
+  /* only push mode supported */
+  pad_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "sink");
+  g_return_if_fail (pad_template != NULL);
+  enc->sinkpad = gst_pad_new_from_template (pad_template, "sink");
+  gst_pad_set_event_function (enc->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_event));
+  gst_pad_set_setcaps_function (enc->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_setcaps));
+  gst_pad_set_getcaps_function (enc->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_getcaps));
+  gst_pad_set_query_function (enc->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_query));
+  gst_pad_set_chain_function (enc->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_chain));
+  gst_pad_set_activatepush_function (enc->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_activate_push));
+  gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad);
+
+  GST_DEBUG_OBJECT (enc, "sinkpad created");
+
+  /* and we don't mind upstream traveling stuff that much ... */
+  pad_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "src");
+  g_return_if_fail (pad_template != NULL);
+  enc->srcpad = gst_pad_new_from_template (pad_template, "src");
+  gst_pad_set_query_function (enc->srcpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_src_query));
+  gst_pad_set_query_type_function (enc->srcpad,
+      GST_DEBUG_FUNCPTR (gst_audio_encoder_get_query_types));
+  gst_pad_use_fixed_caps (enc->srcpad);
+  gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad);
+  GST_DEBUG_OBJECT (enc, "src created");
+
+  enc->priv->adapter = gst_adapter_new ();
+
+  g_static_rec_mutex_init (&enc->stream_lock);
+
+  /* property default */
+  enc->priv->granule = DEFAULT_GRANULE;
+  enc->priv->perfect_ts = DEFAULT_PERFECT_TS;
+  enc->priv->hard_resync = DEFAULT_HARD_RESYNC;
+  enc->priv->tolerance = DEFAULT_TOLERANCE;
+  enc->priv->hard_min = DEFAULT_HARD_MIN;
+  enc->priv->drainable = DEFAULT_DRAINABLE;
+
+  /* init state */
+  gst_audio_encoder_reset (enc, TRUE);
+  GST_DEBUG_OBJECT (enc, "init ok");
+}
+
+static void
+gst_audio_encoder_reset (GstAudioEncoder * enc, gboolean full)
+{
+  GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+  GST_LOG_OBJECT (enc, "reset full %d", full);
+
+  if (full) {
+    enc->priv->active = FALSE;
+    enc->priv->samples_in = 0;
+    enc->priv->bytes_out = 0;
+    gst_audio_info_clear (&enc->priv->ctx.info);
+    memset (&enc->priv->ctx, 0, sizeof (enc->priv->ctx));
+
+    if (enc->priv->tags)
+      gst_tag_list_free (enc->priv->tags);
+    enc->priv->tags = NULL;
+
+    g_list_foreach (enc->priv->pending_events, (GFunc) gst_event_unref, NULL);
+    g_list_free (enc->priv->pending_events);
+    enc->priv->pending_events = NULL;
+  }
+
+  gst_segment_init (&enc->segment, GST_FORMAT_TIME);
+
+  gst_adapter_clear (enc->priv->adapter);
+  enc->priv->got_data = FALSE;
+  enc->priv->drained = TRUE;
+  enc->priv->offset = 0;
+  enc->priv->base_ts = GST_CLOCK_TIME_NONE;
+  enc->priv->base_gp = -1;
+  enc->priv->samples = 0;
+  enc->priv->discont = FALSE;
+
+  GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+}
+
+static void
+gst_audio_encoder_finalize (GObject * object)
+{
+  GstAudioEncoder *enc = GST_AUDIO_ENCODER (object);
+
+  g_object_unref (enc->priv->adapter);
+
+  g_static_rec_mutex_free (&enc->stream_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/**
+ * gst_audio_encoder_finish_frame:
+ * @enc: a #GstAudioEncoder
+ * @buffer: encoded data
+ * @samples: number of samples (per channel) represented by encoded data
+ *
+ * Collects encoded data and pushes encoded data downstream.
+ * Source pad caps must be set when this is called.
+ *
+ * If @samples < 0, then best estimate is all samples provided to encoder
+ * (subclass) so far.  @buf may be NULL, in which case next number of @samples
+ * are considered discarded, e.g. as a result of discontinuous transmission,
+ * and a discontinuity is marked.
+ *
+ * Note that samples received in gst_audio_encoder_handle_frame()
+ * may be invalidated by a call to this function.
+ *
+ * Returns: a #GstFlowReturn that should be escalated to caller (of caller)
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_audio_encoder_finish_frame (GstAudioEncoder * enc, GstBuffer * buf,
+    gint samples)
+{
+  GstAudioEncoderClass *klass;
+  GstAudioEncoderPrivate *priv;
+  GstAudioEncoderContext *ctx;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+  priv = enc->priv;
+  ctx = &enc->priv->ctx;
+
+  /* subclass should know what it is producing by now */
+  g_return_val_if_fail (GST_PAD_CAPS (enc->srcpad) != NULL, GST_FLOW_ERROR);
+  /* subclass should not hand us no data */
+  g_return_val_if_fail (buf == NULL || GST_BUFFER_SIZE (buf) > 0,
+      GST_FLOW_ERROR);
+
+  GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+  GST_LOG_OBJECT (enc, "accepting %d bytes encoded data as %d samples",
+      buf ? GST_BUFFER_SIZE (buf) : -1, samples);
+
+  /* mark subclass still alive and providing */
+  if (G_LIKELY (buf))
+    priv->got_data = TRUE;
+
+  if (priv->pending_events) {
+    GList *pending_events, *l;
+
+    pending_events = priv->pending_events;
+    priv->pending_events = NULL;
+
+    GST_DEBUG_OBJECT (enc, "Pushing pending events");
+    for (l = pending_events; l; l = l->next)
+      gst_pad_push_event (enc->srcpad, l->data);
+    g_list_free (pending_events);
+  }
+
+  /* send after pending events, which likely includes newsegment event */
+  if (G_UNLIKELY (enc->priv->tags)) {
+    GstTagList *tags;
+
+    /* add codec info to pending tags */
+    tags = enc->priv->tags;
+    /* no more pending */
+    enc->priv->tags = NULL;
+    gst_pb_utils_add_codec_description_to_tag_list (tags, GST_TAG_CODEC,
+        GST_PAD_CAPS (enc->srcpad));
+    gst_pb_utils_add_codec_description_to_tag_list (tags, GST_TAG_AUDIO_CODEC,
+        GST_PAD_CAPS (enc->srcpad));
+    GST_DEBUG_OBJECT (enc, "sending tags %" GST_PTR_FORMAT, tags);
+    gst_element_found_tags_for_pad (GST_ELEMENT (enc), enc->srcpad, tags);
+  }
+
+  /* remove corresponding samples from input */
+  if (samples < 0)
+    samples = (enc->priv->offset / ctx->info.bpf);
+
+  if (G_LIKELY (samples)) {
+    /* track upstream ts if so configured */
+    if (!enc->priv->perfect_ts) {
+      guint64 ts, distance;
+
+      ts = gst_adapter_prev_timestamp (priv->adapter, &distance);
+      g_assert (distance % ctx->info.bpf == 0);
+      distance /= ctx->info.bpf;
+      GST_LOG_OBJECT (enc, "%" G_GUINT64_FORMAT " samples past prev_ts %"
+          GST_TIME_FORMAT, distance, GST_TIME_ARGS (ts));
+      GST_LOG_OBJECT (enc, "%" G_GUINT64_FORMAT " samples past base_ts %"
+          GST_TIME_FORMAT, priv->samples, GST_TIME_ARGS (priv->base_ts));
+      /* when draining adapter might be empty and no ts to offer */
+      if (GST_CLOCK_TIME_IS_VALID (ts) && ts != priv->base_ts) {
+        GstClockTimeDiff diff;
+        GstClockTime old_ts, next_ts;
+
+        /* passed into another buffer;
+         * mild check for discontinuity and only mark if so */
+        next_ts = ts +
+            gst_util_uint64_scale (distance, GST_SECOND, ctx->info.rate);
+        old_ts = priv->base_ts +
+            gst_util_uint64_scale (priv->samples, GST_SECOND, ctx->info.rate);
+        diff = GST_CLOCK_DIFF (next_ts, old_ts);
+        GST_LOG_OBJECT (enc, "ts diff %d ms", (gint) (diff / GST_MSECOND));
+        /* only mark discontinuity if beyond tolerance */
+        if (G_UNLIKELY (diff < -enc->priv->tolerance ||
+                diff > enc->priv->tolerance)) {
+          GST_DEBUG_OBJECT (enc, "marked discont");
+          priv->discont = TRUE;
+        }
+        if (diff > GST_SECOND / ctx->info.rate / 2 ||
+            diff < -GST_SECOND / ctx->info.rate / 2) {
+          GST_LOG_OBJECT (enc, "new upstream ts %" GST_TIME_FORMAT
+              " at distance %" G_GUINT64_FORMAT, GST_TIME_ARGS (ts), distance);
+          /* re-sync to upstream ts */
+          priv->base_ts = ts;
+          priv->samples = distance;
+        } else {
+          GST_LOG_OBJECT (enc, "new upstream ts only introduces jitter");
+        }
+      }
+    }
+    /* advance sample view */
+    if (G_UNLIKELY (samples * ctx->info.bpf > priv->offset)) {
+      if (G_LIKELY (!priv->force)) {
+        /* no way we can let this pass */
+        g_assert_not_reached ();
+        /* really no way */
+        goto overflow;
+      } else {
+        priv->offset = 0;
+        if (samples * ctx->info.bpf >= gst_adapter_available (priv->adapter))
+          gst_adapter_clear (priv->adapter);
+        else
+          gst_adapter_flush (priv->adapter, samples * ctx->info.bpf);
+      }
+    } else {
+      gst_adapter_flush (priv->adapter, samples * ctx->info.bpf);
+      priv->offset -= samples * ctx->info.bpf;
+      /* avoid subsequent stray prev_ts */
+      if (G_UNLIKELY (gst_adapter_available (priv->adapter) == 0))
+        gst_adapter_clear (priv->adapter);
+    }
+    /* sample count advanced below after buffer handling */
+  }
+
+  /* collect output */
+  if (G_LIKELY (buf)) {
+    GST_LOG_OBJECT (enc, "taking %d bytes for output", GST_BUFFER_SIZE (buf));
+    buf = gst_buffer_make_metadata_writable (buf);
+
+    /* decorate */
+    gst_buffer_set_caps (buf, GST_PAD_CAPS (enc->srcpad));
+    if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+      /* FIXME ? lookahead could lead to weird ts and duration ?
+       * (particularly if not in perfect mode) */
+      /* mind sample rounding and produce perfect output */
+      GST_BUFFER_TIMESTAMP (buf) = priv->base_ts +
+          gst_util_uint64_scale (priv->samples - ctx->lookahead, GST_SECOND,
+          ctx->info.rate);
+      GST_DEBUG_OBJECT (enc, "out samples %d", samples);
+      if (G_LIKELY (samples > 0)) {
+        priv->samples += samples;
+        GST_BUFFER_DURATION (buf) = priv->base_ts +
+            gst_util_uint64_scale (priv->samples - ctx->lookahead, GST_SECOND,
+            ctx->info.rate) - GST_BUFFER_TIMESTAMP (buf);
+        priv->last_duration = GST_BUFFER_DURATION (buf);
+      } else {
+        /* duration forecast in case of handling remainder;
+         * the last one is probably like the previous one ... */
+        GST_BUFFER_DURATION (buf) = priv->last_duration;
+      }
+      if (priv->base_gp >= 0) {
+        /* pamper oggmux */
+        /* FIXME: in longer run, muxer should take care of this ... */
+        /* offset_end = granulepos for ogg muxer */
+        GST_BUFFER_OFFSET_END (buf) = priv->base_gp + priv->samples -
+            enc->priv->ctx.lookahead;
+        /* offset = timestamp corresponding to granulepos for ogg muxer */
+        GST_BUFFER_OFFSET (buf) =
+            GST_FRAMES_TO_CLOCK_TIME (GST_BUFFER_OFFSET_END (buf),
+            ctx->info.rate);
+      } else {
+        GST_BUFFER_OFFSET (buf) = priv->bytes_out;
+        GST_BUFFER_OFFSET_END (buf) = priv->bytes_out + GST_BUFFER_SIZE (buf);
+      }
+    }
+
+    priv->bytes_out += GST_BUFFER_SIZE (buf);
+
+    if (G_UNLIKELY (priv->discont)) {
+      GST_LOG_OBJECT (enc, "marking discont");
+      GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+      priv->discont = FALSE;
+    }
+
+    if (klass->pre_push) {
+      /* last chance for subclass to do some dirty stuff */
+      ret = klass->pre_push (enc, &buf);
+      if (ret != GST_FLOW_OK || !buf) {
+        GST_DEBUG_OBJECT (enc, "subclass returned %s, buf %p",
+            gst_flow_get_name (ret), buf);
+        if (buf)
+          gst_buffer_unref (buf);
+        goto exit;
+      }
+    }
+
+    GST_LOG_OBJECT (enc, "pushing buffer of size %d with ts %" GST_TIME_FORMAT
+        ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+        GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+    ret = gst_pad_push (enc->srcpad, buf);
+    GST_LOG_OBJECT (enc, "buffer pushed: %s", gst_flow_get_name (ret));
+  } else {
+    /* merely advance samples, most work for that already done above */
+    priv->samples += samples;
+  }
+
+exit:
+  GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+  return ret;
+
+  /* ERRORS */
+overflow:
+  {
+    GST_ELEMENT_ERROR (enc, STREAM, ENCODE,
+        ("received more encoded samples %d than provided %d",
+            samples, priv->offset / ctx->info.bpf), (NULL));
+    if (buf)
+      gst_buffer_unref (buf);
+    ret = GST_FLOW_ERROR;
+    goto exit;
+  }
+}
+
+ /* adapter tracking idea:
+  * - start of adapter corresponds with what has already been encoded
+  * (i.e. really returned by encoder subclass)
+  * - start + offset is what needs to be fed to subclass next */
+static GstFlowReturn
+gst_audio_encoder_push_buffers (GstAudioEncoder * enc, gboolean force)
+{
+  GstAudioEncoderClass *klass;
+  GstAudioEncoderPrivate *priv;
+  GstAudioEncoderContext *ctx;
+  gint av, need;
+  GstBuffer *buf;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+  g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
+
+  priv = enc->priv;
+  ctx = &enc->priv->ctx;
+
+  while (ret == GST_FLOW_OK) {
+
+    buf = NULL;
+    av = gst_adapter_available (priv->adapter);
+
+    g_assert (priv->offset <= av);
+    av -= priv->offset;
+
+    need =
+        ctx->frame_samples_min >
+        0 ? ctx->frame_samples_min * ctx->info.bpf : av;
+    GST_LOG_OBJECT (enc, "available: %d, needed: %d, force: %d", av, need,
+        force);
+
+    if ((need > av) || !av) {
+      if (G_UNLIKELY (force)) {
+        priv->force = TRUE;
+        need = av;
+      } else {
+        break;
+      }
+    } else {
+      priv->force = FALSE;
+    }
+
+    if (ctx->frame_samples_max > 0)
+      need = MIN (av, ctx->frame_samples_max * ctx->info.bpf);
+
+    if (ctx->frame_samples_min == ctx->frame_samples_max) {
+      /* if we have some extra metadata,
+       * provide for integer multiple of frames to allow for better granularity
+       * of processing */
+      if (ctx->frame_samples_min > 0 && need) {
+        if (ctx->frame_max > 1)
+          need = need * MIN ((av / need), ctx->frame_max);
+        else if (ctx->frame_max == 0)
+          need = need * (av / need);
+      }
+    }
+
+    priv->got_data = FALSE;
+    if (G_LIKELY (need)) {
+      buf = gst_buffer_new ();
+      GST_BUFFER_DATA (buf) = (guint8 *)
+          gst_adapter_peek (priv->adapter, priv->offset + need) + priv->offset;
+      GST_BUFFER_SIZE (buf) = need;
+    } else if (!priv->drainable) {
+      GST_DEBUG_OBJECT (enc, "non-drainable and no more data");
+      goto finish;
+    }
+
+    GST_LOG_OBJECT (enc, "providing subclass with %d bytes at offset %d",
+        need, priv->offset);
+
+    /* mark this already as consumed,
+     * which it should be when subclass gives us data in exchange for samples */
+    priv->offset += need;
+    priv->samples_in += need / ctx->info.bpf;
+
+    /* subclass might not want to be bothered with leftover data,
+     * so take care of that here if so, otherwise pass along */
+    if (G_UNLIKELY (priv->force && priv->hard_min && buf)) {
+      GST_DEBUG_OBJECT (enc, "bypassing subclass with leftover");
+      ret = gst_audio_encoder_finish_frame (enc, NULL, -1);
+    } else {
+      ret = klass->handle_frame (enc, buf);
+    }
+
+    if (G_LIKELY (buf))
+      gst_buffer_unref (buf);
+
+  finish:
+    /* no data to feed, no leftover provided, then bail out */
+    if (G_UNLIKELY (!buf && !priv->got_data)) {
+      priv->drained = TRUE;
+      GST_LOG_OBJECT (enc, "no more data drained from subclass");
+      break;
+    }
+  }
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_audio_encoder_drain (GstAudioEncoder * enc)
+{
+  GST_DEBUG_OBJECT (enc, "draining");
+  if (enc->priv->drained)
+    return GST_FLOW_OK;
+  else {
+    GST_DEBUG_OBJECT (enc, "... really");
+    return gst_audio_encoder_push_buffers (enc, TRUE);
+  }
+}
+
+static void
+gst_audio_encoder_set_base_gp (GstAudioEncoder * enc)
+{
+  GstClockTime ts;
+
+  if (!enc->priv->granule)
+    return;
+
+  /* use running time for granule */
+  /* incoming data is clipped, so a valid input should yield a valid output */
+  ts = gst_segment_to_running_time (&enc->segment, GST_FORMAT_TIME,
+      enc->priv->base_ts);
+  if (GST_CLOCK_TIME_IS_VALID (ts)) {
+    enc->priv->base_gp =
+        GST_CLOCK_TIME_TO_FRAMES (enc->priv->base_ts, enc->priv->ctx.info.rate);
+    GST_DEBUG_OBJECT (enc, "new base gp %" G_GINT64_FORMAT, enc->priv->base_gp);
+  } else {
+    /* should reasonably have a valid base,
+     * otherwise start at 0 if we did not already start there earlier */
+    if (enc->priv->base_gp < 0) {
+      enc->priv->base_gp = 0;
+      GST_DEBUG_OBJECT (enc, "new base gp %" G_GINT64_FORMAT,
+          enc->priv->base_gp);
+    }
+  }
+}
+
+static GstFlowReturn
+gst_audio_encoder_chain (GstPad * pad, GstBuffer * buffer)
+{
+  GstAudioEncoder *enc;
+  GstAudioEncoderPrivate *priv;
+  GstAudioEncoderContext *ctx;
+  GstFlowReturn ret = GST_FLOW_OK;
+  gboolean discont;
+
+  enc = GST_AUDIO_ENCODER (GST_OBJECT_PARENT (pad));
+
+  priv = enc->priv;
+  ctx = &enc->priv->ctx;
+
+  GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+  /* should know what is coming by now */
+  if (!ctx->info.bpf)
+    goto not_negotiated;
+
+  GST_LOG_OBJECT (enc,
+      "received buffer of size %d with ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+  /* input shoud be whole number of sample frames */
+  if (GST_BUFFER_SIZE (buffer) % ctx->info.bpf)
+    goto wrong_buffer;
+
+#ifndef GST_DISABLE_GST_DEBUG
+  {
+    GstClockTime duration;
+    GstClockTimeDiff diff;
+
+    /* verify buffer duration */
+    duration = gst_util_uint64_scale (GST_BUFFER_SIZE (buffer), GST_SECOND,
+        ctx->info.rate * ctx->info.bpf);
+    diff = GST_CLOCK_DIFF (duration, GST_BUFFER_DURATION (buffer));
+    if (GST_BUFFER_DURATION (buffer) != GST_CLOCK_TIME_NONE &&
+        (diff > GST_SECOND / ctx->info.rate / 2 ||
+            diff < -GST_SECOND / ctx->info.rate / 2)) {
+      GST_DEBUG_OBJECT (enc, "incoming buffer had incorrect duration %"
+          GST_TIME_FORMAT ", expected duration %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)),
+          GST_TIME_ARGS (duration));
+    }
+  }
+#endif
+
+  discont = GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT);
+  if (G_UNLIKELY (discont)) {
+    GST_LOG_OBJECT (buffer, "marked discont");
+    enc->priv->discont = discont;
+  }
+
+  /* clip to segment */
+  /* NOTE: slightly painful linking -laudio only for this one ... */
+  buffer = gst_audio_buffer_clip (buffer, &enc->segment, ctx->info.rate,
+      ctx->info.bpf);
+  if (G_UNLIKELY (!buffer)) {
+    GST_DEBUG_OBJECT (buffer, "no data after clipping to segment");
+    goto done;
+  }
+
+  GST_LOG_OBJECT (enc,
+      "buffer after segment clipping has size %d with ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+  if (!GST_CLOCK_TIME_IS_VALID (priv->base_ts)) {
+    priv->base_ts = GST_BUFFER_TIMESTAMP (buffer);
+    GST_DEBUG_OBJECT (enc, "new base ts %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (priv->base_ts));
+    gst_audio_encoder_set_base_gp (enc);
+  }
+
+  /* check for continuity;
+   * checked elsewhere in non-perfect case */
+  if (enc->priv->perfect_ts) {
+    GstClockTimeDiff diff = 0;
+    GstClockTime next_ts = 0;
+
+    if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer) &&
+        GST_CLOCK_TIME_IS_VALID (priv->base_ts)) {
+      guint64 samples;
+
+      samples = priv->samples +
+          gst_adapter_available (priv->adapter) / ctx->info.bpf;
+      next_ts = priv->base_ts +
+          gst_util_uint64_scale (samples, GST_SECOND, ctx->info.rate);
+      GST_LOG_OBJECT (enc, "buffer is %" G_GUINT64_FORMAT
+          " samples past base_ts %" GST_TIME_FORMAT
+          ", expected ts %" GST_TIME_FORMAT, samples,
+          GST_TIME_ARGS (priv->base_ts), GST_TIME_ARGS (next_ts));
+      diff = GST_CLOCK_DIFF (next_ts, GST_BUFFER_TIMESTAMP (buffer));
+      GST_LOG_OBJECT (enc, "ts diff %d ms", (gint) (diff / GST_MSECOND));
+      /* if within tolerance,
+       * discard buffer ts and carry on producing perfect stream,
+       * otherwise clip or resync to ts */
+      if (G_UNLIKELY (diff < -enc->priv->tolerance ||
+              diff > enc->priv->tolerance)) {
+        GST_DEBUG_OBJECT (enc, "marked discont");
+        discont = TRUE;
+      }
+    }
+
+    /* do some fancy tweaking in hard resync case */
+    if (discont && enc->priv->hard_resync) {
+      if (diff < 0) {
+        guint64 diff_bytes;
+
+        GST_WARNING_OBJECT (enc, "Buffer is older than expected ts %"
+            GST_TIME_FORMAT ".  Clipping buffer", GST_TIME_ARGS (next_ts));
+
+        diff_bytes =
+            GST_CLOCK_TIME_TO_FRAMES (-diff, ctx->info.rate) * ctx->info.bpf;
+        if (diff_bytes >= GST_BUFFER_SIZE (buffer)) {
+          gst_buffer_unref (buffer);
+          goto done;
+        }
+        buffer = gst_buffer_make_metadata_writable (buffer);
+        GST_BUFFER_DATA (buffer) += diff_bytes;
+        GST_BUFFER_SIZE (buffer) -= diff_bytes;
+
+        GST_BUFFER_TIMESTAMP (buffer) += diff;
+        /* care even less about duration after this */
+      } else {
+        /* drain stuff prior to resync */
+        gst_audio_encoder_drain (enc);
+      }
+    }
+    if (discont) {
+      /* now re-sync ts */
+      priv->base_ts += diff;
+      gst_audio_encoder_set_base_gp (enc);
+      priv->discont |= discont;
+    }
+  }
+
+  gst_adapter_push (enc->priv->adapter, buffer);
+  /* new stuff, so we can push subclass again */
+  enc->priv->drained = FALSE;
+
+  ret = gst_audio_encoder_push_buffers (enc, FALSE);
+
+done:
+  GST_LOG_OBJECT (enc, "chain leaving");
+
+  GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+  return ret;
+
+  /* ERRORS */
+not_negotiated:
+  {
+    GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL),
+        ("encoder not initialized"));
+    gst_buffer_unref (buffer);
+    ret = GST_FLOW_NOT_NEGOTIATED;
+    goto done;
+  }
+wrong_buffer:
+  {
+    GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
+        ("buffer size %d not a multiple of %d", GST_BUFFER_SIZE (buffer),
+            ctx->info.bpf));
+    gst_buffer_unref (buffer);
+    ret = GST_FLOW_ERROR;
+    goto done;
+  }
+}
+
+static gboolean
+audio_info_is_equal (GstAudioInfo * from, GstAudioInfo * to)
+{
+  if (from == to)
+    return TRUE;
+  if (from->finfo == NULL || to->finfo == NULL)
+    return FALSE;
+  if (GST_AUDIO_INFO_FORMAT (from) != GST_AUDIO_INFO_FORMAT (to))
+    return FALSE;
+  if (GST_AUDIO_INFO_RATE (from) != GST_AUDIO_INFO_RATE (to))
+    return FALSE;
+  if (GST_AUDIO_INFO_CHANNELS (from) != GST_AUDIO_INFO_CHANNELS (to))
+    return FALSE;
+  if (GST_AUDIO_INFO_CHANNELS (from) > 64)
+    return TRUE;
+  return memcmp (from->position, to->position,
+      GST_AUDIO_INFO_CHANNELS (from) * sizeof (to->position[0]));
+}
+
+static gboolean
+gst_audio_encoder_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstAudioEncoder *enc;
+  GstAudioEncoderClass *klass;
+  GstAudioEncoderContext *ctx;
+  GstAudioInfo *state, *old_state;
+  gboolean res = TRUE, changed = FALSE;
+  guint old_rate;
+
+  enc = GST_AUDIO_ENCODER (GST_PAD_PARENT (pad));
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+  /* subclass must do something here ... */
+  g_return_val_if_fail (klass->set_format != NULL, FALSE);
+
+  ctx = &enc->priv->ctx;
+  state = &ctx->info;
+
+  GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+  GST_DEBUG_OBJECT (enc, "caps: %" GST_PTR_FORMAT, caps);
+
+  if (!gst_caps_is_fixed (caps))
+    goto refuse_caps;
+
+  /* adjust ts tracking to new sample rate */
+  old_rate = GST_AUDIO_INFO_RATE (state);
+  if (GST_CLOCK_TIME_IS_VALID (enc->priv->base_ts) && old_rate) {
+    enc->priv->base_ts +=
+        GST_FRAMES_TO_CLOCK_TIME (enc->priv->samples, old_rate);
+    enc->priv->samples = 0;
+  }
+
+  old_state = gst_audio_info_copy (state);
+  if (!gst_audio_info_from_caps (state, caps))
+    goto refuse_caps;
+
+  changed = !audio_info_is_equal (state, old_state);
+  gst_audio_info_free (old_state);
+
+  if (changed) {
+    GstClockTime old_min_latency;
+    GstClockTime old_max_latency;
+
+    /* drain any pending old data stuff */
+    gst_audio_encoder_drain (enc);
+
+    /* context defaults */
+    enc->priv->ctx.frame_samples_min = 0;
+    enc->priv->ctx.frame_samples_max = 0;
+    enc->priv->ctx.frame_max = 0;
+    enc->priv->ctx.lookahead = 0;
+
+    /* element might report latency */
+    GST_OBJECT_LOCK (enc);
+    old_min_latency = ctx->min_latency;
+    old_max_latency = ctx->max_latency;
+    GST_OBJECT_UNLOCK (enc);
+
+    if (klass->set_format)
+      res = klass->set_format (enc, state);
+
+    /* invalidate state to ensure no casual carrying on */
+    if (!res) {
+      GST_DEBUG_OBJECT (enc, "subclass did not accept format");
+      gst_audio_info_clear (state);
+      goto exit;
+    }
+
+    /* notify if new latency */
+    GST_OBJECT_LOCK (enc);
+    if ((ctx->min_latency > 0 && ctx->min_latency != old_min_latency) ||
+        (ctx->max_latency > 0 && ctx->max_latency != old_max_latency)) {
+      GST_OBJECT_UNLOCK (enc);
+      /* post latency message on the bus */
+      gst_element_post_message (GST_ELEMENT (enc),
+          gst_message_new_latency (GST_OBJECT (enc)));
+      GST_OBJECT_LOCK (enc);
+    }
+    GST_OBJECT_UNLOCK (enc);
+  } else {
+    GST_DEBUG_OBJECT (enc, "new audio format identical to configured format");
+  }
+
+exit:
+
+  GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+  return res;
+
+  /* ERRORS */
+refuse_caps:
+  {
+    GST_WARNING_OBJECT (enc, "rejected caps %" GST_PTR_FORMAT, caps);
+    goto exit;
+  }
+}
+
+
+/**
+ * gst_audio_encoder_proxy_getcaps:
+ * @enc: a #GstAudioEncoder
+ * @caps: initial caps
+ *
+ * Returns caps that express @caps (or sink template caps if @caps == NULL)
+ * restricted to channel/rate combinations supported by downstream elements
+ * (e.g. muxers).
+ *
+ * Returns: a #GstCaps owned by caller
+ *
+ * Since: 0.10.36
+ */
+GstCaps *
+gst_audio_encoder_proxy_getcaps (GstAudioEncoder * enc, GstCaps * caps)
+{
+  const GstCaps *templ_caps;
+  GstCaps *allowed = NULL;
+  GstCaps *fcaps, *filter_caps;
+  gint i, j;
+
+  /* we want to be able to communicate to upstream elements like audioconvert
+   * and audioresample any rate/channel restrictions downstream (e.g. muxer
+   * only accepting certain sample rates) */
+  templ_caps = caps ? caps : gst_pad_get_pad_template_caps (enc->sinkpad);
+  allowed = gst_pad_get_allowed_caps (enc->srcpad);
+  if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
+    fcaps = gst_caps_copy (templ_caps);
+    goto done;
+  }
+
+  GST_LOG_OBJECT (enc, "template caps %" GST_PTR_FORMAT, templ_caps);
+  GST_LOG_OBJECT (enc, "allowed caps %" GST_PTR_FORMAT, allowed);
+
+  filter_caps = gst_caps_new_empty ();
+
+  for (i = 0; i < gst_caps_get_size (templ_caps); i++) {
+    GQuark q_name;
+
+    q_name = gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
+
+    /* pick rate + channel fields from allowed caps */
+    for (j = 0; j < gst_caps_get_size (allowed); j++) {
+      const GstStructure *allowed_s = gst_caps_get_structure (allowed, j);
+      const GValue *val;
+      GstStructure *s;
+
+      s = gst_structure_id_empty_new (q_name);
+      if ((val = gst_structure_get_value (allowed_s, "rate")))
+        gst_structure_set_value (s, "rate", val);
+      if ((val = gst_structure_get_value (allowed_s, "channels")))
+        gst_structure_set_value (s, "channels", val);
+      /* following might also make sense for some encoded formats,
+       * e.g. wavpack */
+      if ((val = gst_structure_get_value (allowed_s, "width")))
+        gst_structure_set_value (s, "width", val);
+      if ((val = gst_structure_get_value (allowed_s, "depth")))
+        gst_structure_set_value (s, "depth", val);
+      if ((val = gst_structure_get_value (allowed_s, "endianness")))
+        gst_structure_set_value (s, "endianness", val);
+      if ((val = gst_structure_get_value (allowed_s, "signed")))
+        gst_structure_set_value (s, "signed", val);
+      if ((val = gst_structure_get_value (allowed_s, "channel-positions")))
+        gst_structure_set_value (s, "channel-positions", val);
+
+      gst_caps_merge_structure (filter_caps, s);
+    }
+  }
+
+  fcaps = gst_caps_intersect (filter_caps, templ_caps);
+  gst_caps_unref (filter_caps);
+
+done:
+  gst_caps_replace (&allowed, NULL);
+
+  GST_LOG_OBJECT (enc, "proxy caps %" GST_PTR_FORMAT, fcaps);
+
+  return fcaps;
+}
+
+static GstCaps *
+gst_audio_encoder_sink_getcaps (GstPad * pad)
+{
+  GstAudioEncoder *enc;
+  GstAudioEncoderClass *klass;
+  GstCaps *caps;
+
+  enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+  g_assert (pad == enc->sinkpad);
+
+  if (klass->getcaps)
+    caps = klass->getcaps (enc);
+  else
+    caps = gst_audio_encoder_proxy_getcaps (enc, NULL);
+  gst_object_unref (enc);
+
+  GST_LOG_OBJECT (enc, "returning caps %" GST_PTR_FORMAT, caps);
+
+  return caps;
+}
+
+static gboolean
+gst_audio_encoder_sink_eventfunc (GstAudioEncoder * enc, GstEvent * event)
+{
+  GstAudioEncoderClass *klass;
+  gboolean handled = FALSE;
+
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_NEWSEGMENT:
+    {
+      GstFormat format;
+      gdouble rate, arate;
+      gint64 start, stop, time;
+      gboolean update;
+
+      gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
+          &start, &stop, &time);
+
+      if (format == GST_FORMAT_TIME) {
+        GST_DEBUG_OBJECT (enc, "received TIME NEW_SEGMENT %" GST_TIME_FORMAT
+            " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT
+            ", rate %g, applied_rate %g",
+            GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (time),
+            rate, arate);
+      } else {
+        GST_DEBUG_OBJECT (enc, "received NEW_SEGMENT %" G_GINT64_FORMAT
+            " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT
+            ", rate %g, applied_rate %g", start, stop, time, rate, arate);
+        GST_DEBUG_OBJECT (enc, "unsupported format; ignoring");
+        break;
+      }
+
+      GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+      /* finish current segment */
+      gst_audio_encoder_drain (enc);
+      /* reset partially for new segment */
+      gst_audio_encoder_reset (enc, FALSE);
+      /* and follow along with segment */
+      gst_segment_set_newsegment_full (&enc->segment, update, rate, arate,
+          format, start, stop, time);
+      GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+      break;
+    }
+
+    case GST_EVENT_FLUSH_START:
+      break;
+
+    case GST_EVENT_FLUSH_STOP:
+      GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+      /* discard any pending stuff */
+      /* TODO route through drain ?? */
+      if (!enc->priv->drained && klass->flush)
+        klass->flush (enc);
+      /* and get (re)set for the sequel */
+      gst_audio_encoder_reset (enc, FALSE);
+
+      g_list_foreach (enc->priv->pending_events, (GFunc) gst_event_unref, NULL);
+      g_list_free (enc->priv->pending_events);
+      enc->priv->pending_events = NULL;
+      GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+      break;
+
+    case GST_EVENT_EOS:
+      GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+      gst_audio_encoder_drain (enc);
+      GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+      break;
+
+    case GST_EVENT_TAG:
+    {
+      GstTagList *tags;
+
+      gst_event_parse_tag (event, &tags);
+      tags = gst_tag_list_copy (tags);
+      gst_event_unref (event);
+
+      /* FIXME: make generic based on GST_TAG_FLAG_ENCODED */
+      gst_tag_list_remove_tag (tags, GST_TAG_CODEC);
+      gst_tag_list_remove_tag (tags, GST_TAG_AUDIO_CODEC);
+      gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);
+      gst_tag_list_remove_tag (tags, GST_TAG_SUBTITLE_CODEC);
+      gst_tag_list_remove_tag (tags, GST_TAG_CONTAINER_FORMAT);
+      gst_tag_list_remove_tag (tags, GST_TAG_BITRATE);
+      gst_tag_list_remove_tag (tags, GST_TAG_NOMINAL_BITRATE);
+      gst_tag_list_remove_tag (tags, GST_TAG_MAXIMUM_BITRATE);
+      gst_tag_list_remove_tag (tags, GST_TAG_MINIMUM_BITRATE);
+      gst_tag_list_remove_tag (tags, GST_TAG_ENCODER);
+      gst_tag_list_remove_tag (tags, GST_TAG_ENCODER_VERSION);
+      event = gst_event_new_tag (tags);
+
+      GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+      enc->priv->pending_events =
+          g_list_append (enc->priv->pending_events, event);
+      GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+      handled = TRUE;
+      break;
+    }
+
+    default:
+      break;
+  }
+
+  return handled;
+}
+
+static gboolean
+gst_audio_encoder_sink_event (GstPad * pad, GstEvent * event)
+{
+  GstAudioEncoder *enc;
+  GstAudioEncoderClass *klass;
+  gboolean handled = FALSE;
+  gboolean ret = TRUE;
+
+  enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+  GST_DEBUG_OBJECT (enc, "received event %d, %s", GST_EVENT_TYPE (event),
+      GST_EVENT_TYPE_NAME (event));
+
+  if (klass->event)
+    handled = klass->event (enc, event);
+
+  if (!handled)
+    handled = gst_audio_encoder_sink_eventfunc (enc, event);
+
+  if (!handled) {
+    /* Forward non-serialized events and EOS/FLUSH_STOP immediately.
+     * For EOS this is required because no buffer or serialized event
+     * will come after EOS and nothing could trigger another
+     * _finish_frame() call.
+     *
+     * For FLUSH_STOP this is required because it is expected
+     * to be forwarded immediately and no buffers are queued anyway.
+     */
+    if (!GST_EVENT_IS_SERIALIZED (event)
+        || GST_EVENT_TYPE (event) == GST_EVENT_EOS
+        || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+      ret = gst_pad_event_default (pad, event);
+    } else {
+      GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+      enc->priv->pending_events =
+          g_list_append (enc->priv->pending_events, event);
+      GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+      ret = TRUE;
+    }
+  }
+
+  GST_DEBUG_OBJECT (enc, "event handled");
+
+  gst_object_unref (enc);
+  return ret;
+}
+
+static gboolean
+gst_audio_encoder_sink_query (GstPad * pad, GstQuery * query)
+{
+  gboolean res = TRUE;
+  GstAudioEncoder *enc;
+
+  enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_FORMATS:
+    {
+      gst_query_set_formats (query, 3,
+          GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_DEFAULT);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_CONVERT:
+    {
+      GstFormat src_fmt, dest_fmt;
+      gint64 src_val, dest_val;
+
+      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      if (!(res = gst_audio_info_convert (&enc->priv->ctx.info,
+                  src_fmt, src_val, dest_fmt, &dest_val)))
+        goto error;
+      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, query);
+      break;
+  }
+
+error:
+  gst_object_unref (enc);
+  return res;
+}
+
+static const GstQueryType *
+gst_audio_encoder_get_query_types (GstPad * pad)
+{
+  static const GstQueryType gst_audio_encoder_src_query_types[] = {
+    GST_QUERY_POSITION,
+    GST_QUERY_DURATION,
+    GST_QUERY_CONVERT,
+    GST_QUERY_LATENCY,
+    0
+  };
+
+  return gst_audio_encoder_src_query_types;
+}
+
+/*
+ * gst_audio_encoded_audio_convert:
+ * @fmt: audio format of the encoded audio
+ * @bytes: number of encoded bytes
+ * @samples: number of encoded samples
+ * @src_format: source format
+ * @src_value: source value
+ * @dest_format: destination format
+ * @dest_value: destination format
+ *
+ * Helper function to convert @src_value in @src_format to @dest_value in
+ * @dest_format for encoded audio data.  Conversion is possible between
+ * BYTE and TIME format by using estimated bitrate based on
+ * @samples and @bytes (and @fmt).
+ *
+ * Since: 0.10.36
+ */
+/* FIXME: make gst_audio_encoded_audio_convert() public? */
+static gboolean
+gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
+    gint64 bytes, gint64 samples, GstFormat src_format,
+    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
+{
+  gboolean res = FALSE;
+
+  g_return_val_if_fail (dest_format != NULL, FALSE);
+  g_return_val_if_fail (dest_value != NULL, FALSE);
+
+  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+          src_value == -1)) {
+    if (dest_value)
+      *dest_value = src_value;
+    return TRUE;
+  }
+
+  if (samples == 0 || bytes == 0 || fmt->rate == 0) {
+    GST_DEBUG ("not enough metadata yet to convert");
+    goto exit;
+  }
+
+  bytes *= fmt->rate;
+
+  switch (src_format) {
+    case GST_FORMAT_BYTES:
+      switch (*dest_format) {
+        case GST_FORMAT_TIME:
+          *dest_value = gst_util_uint64_scale (src_value,
+              GST_SECOND * samples, bytes);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    case GST_FORMAT_TIME:
+      switch (*dest_format) {
+        case GST_FORMAT_BYTES:
+          *dest_value = gst_util_uint64_scale (src_value, bytes,
+              samples * GST_SECOND);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    default:
+      res = FALSE;
+  }
+
+exit:
+  return res;
+}
+
+/* FIXME ? are any of these queries (other than latency) an encoder's business
+ * also, the conversion stuff might seem to make sense, but seems to not mind
+ * segment stuff etc at all
+ * Supposedly that's backward compatibility ... */
+static gboolean
+gst_audio_encoder_src_query (GstPad * pad, GstQuery * query)
+{
+  GstAudioEncoder *enc;
+  GstPad *peerpad;
+  gboolean res = FALSE;
+
+  enc = GST_AUDIO_ENCODER (GST_PAD_PARENT (pad));
+  if (G_UNLIKELY (enc == NULL))
+    return FALSE;
+
+  peerpad = gst_pad_get_peer (GST_PAD (enc->sinkpad));
+
+  GST_LOG_OBJECT (enc, "handling query: %" GST_PTR_FORMAT, query);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_POSITION:
+    {
+      GstFormat fmt, req_fmt;
+      gint64 pos, val;
+
+      if ((res = gst_pad_peer_query (enc->sinkpad, query))) {
+        GST_LOG_OBJECT (enc, "returning peer response");
+        break;
+      }
+
+      if (!peerpad) {
+        GST_LOG_OBJECT (enc, "no peer");
+        break;
+      }
+
+      gst_query_parse_position (query, &req_fmt, NULL);
+      fmt = GST_FORMAT_TIME;
+      if (!(res = gst_pad_query_position (peerpad, &fmt, &pos)))
+        break;
+
+      if ((res = gst_pad_query_convert (peerpad, fmt, pos, &req_fmt, &val))) {
+        gst_query_set_position (query, req_fmt, val);
+      }
+      break;
+    }
+    case GST_QUERY_DURATION:
+    {
+      GstFormat fmt, req_fmt;
+      gint64 dur, val;
+
+      if ((res = gst_pad_peer_query (enc->sinkpad, query))) {
+        GST_LOG_OBJECT (enc, "returning peer response");
+        break;
+      }
+
+      if (!peerpad) {
+        GST_LOG_OBJECT (enc, "no peer");
+        break;
+      }
+
+      gst_query_parse_duration (query, &req_fmt, NULL);
+      fmt = GST_FORMAT_TIME;
+      if (!(res = gst_pad_query_duration (peerpad, &fmt, &dur)))
+        break;
+
+      if ((res = gst_pad_query_convert (peerpad, fmt, dur, &req_fmt, &val))) {
+        gst_query_set_duration (query, req_fmt, val);
+      }
+      break;
+    }
+    case GST_QUERY_FORMATS:
+    {
+      gst_query_set_formats (query, 2, GST_FORMAT_TIME, GST_FORMAT_BYTES);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_CONVERT:
+    {
+      GstFormat src_fmt, dest_fmt;
+      gint64 src_val, dest_val;
+
+      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      if (!(res = gst_audio_encoded_audio_convert (&enc->priv->ctx.info,
+                  enc->priv->bytes_out, enc->priv->samples_in, src_fmt, src_val,
+                  &dest_fmt, &dest_val)))
+        break;
+      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+      break;
+    }
+    case GST_QUERY_LATENCY:
+    {
+      if ((res = gst_pad_peer_query (enc->sinkpad, query))) {
+        gboolean live;
+        GstClockTime min_latency, max_latency;
+
+        gst_query_parse_latency (query, &live, &min_latency, &max_latency);
+        GST_DEBUG_OBJECT (enc, "Peer latency: live %d, min %"
+            GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live,
+            GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
+
+        GST_OBJECT_LOCK (enc);
+        /* add our latency */
+        if (min_latency != -1)
+          min_latency += enc->priv->ctx.min_latency;
+        if (max_latency != -1)
+          max_latency += enc->priv->ctx.max_latency;
+        GST_OBJECT_UNLOCK (enc);
+
+        gst_query_set_latency (query, live, min_latency, max_latency);
+      }
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, query);
+      break;
+  }
+
+  gst_object_unref (peerpad);
+  return res;
+}
+
+static void
+gst_audio_encoder_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstAudioEncoder *enc;
+
+  enc = GST_AUDIO_ENCODER (object);
+
+  switch (prop_id) {
+    case PROP_PERFECT_TS:
+      if (enc->priv->granule && !g_value_get_boolean (value))
+        GST_WARNING_OBJECT (enc, "perfect-timestamp can not be set FALSE "
+            "while granule handling is enabled");
+      else
+        enc->priv->perfect_ts = g_value_get_boolean (value);
+      break;
+    case PROP_HARD_RESYNC:
+      enc->priv->hard_resync = g_value_get_boolean (value);
+      break;
+    case PROP_TOLERANCE:
+      enc->priv->tolerance = g_value_get_int64 (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_audio_encoder_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstAudioEncoder *enc;
+
+  enc = GST_AUDIO_ENCODER (object);
+
+  switch (prop_id) {
+    case PROP_PERFECT_TS:
+      g_value_set_boolean (value, enc->priv->perfect_ts);
+      break;
+    case PROP_GRANULE:
+      g_value_set_boolean (value, enc->priv->granule);
+      break;
+    case PROP_HARD_RESYNC:
+      g_value_set_boolean (value, enc->priv->hard_resync);
+      break;
+    case PROP_TOLERANCE:
+      g_value_set_int64 (value, enc->priv->tolerance);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_audio_encoder_activate (GstAudioEncoder * enc, gboolean active)
+{
+  GstAudioEncoderClass *klass;
+  gboolean result = FALSE;
+
+  klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+  g_return_val_if_fail (!enc->priv->granule || enc->priv->perfect_ts, FALSE);
+
+  GST_DEBUG_OBJECT (enc, "activate %d", active);
+
+  if (active) {
+
+    if (enc->priv->tags)
+      gst_tag_list_free (enc->priv->tags);
+    enc->priv->tags = gst_tag_list_new ();
+
+    if (!enc->priv->active && klass->start)
+      result = klass->start (enc);
+  } else {
+    /* We must make sure streaming has finished before resetting things
+     * and calling the ::stop vfunc */
+    GST_PAD_STREAM_LOCK (enc->sinkpad);
+    GST_PAD_STREAM_UNLOCK (enc->sinkpad);
+
+    if (enc->priv->active && klass->stop)
+      result = klass->stop (enc);
+
+    /* clean up */
+    gst_audio_encoder_reset (enc, TRUE);
+  }
+  GST_DEBUG_OBJECT (enc, "activate return: %d", result);
+  return result;
+}
+
+
+static gboolean
+gst_audio_encoder_sink_activate_push (GstPad * pad, gboolean active)
+{
+  gboolean result = TRUE;
+  GstAudioEncoder *enc;
+
+  enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+
+  GST_DEBUG_OBJECT (enc, "sink activate push %d", active);
+
+  result = gst_audio_encoder_activate (enc, active);
+
+  if (result)
+    enc->priv->active = active;
+
+  GST_DEBUG_OBJECT (enc, "sink activate push return: %d", result);
+
+  gst_object_unref (enc);
+  return result;
+}
+
+/**
+ * gst_audio_encoder_get_audio_info:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: a #GstAudioInfo describing the input audio format
+ *
+ * Since: 0.10.36
+ */
+GstAudioInfo *
+gst_audio_encoder_get_audio_info (GstAudioEncoder * enc)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), NULL);
+
+  return &enc->priv->ctx.info;
+}
+
+/**
+ * gst_audio_encoder_set_frame_samples_min:
+ * @enc: a #GstAudioEncoder
+ * @num: number of samples per frame
+ *
+ * Sets number of samples (per channel) subclass needs to be handed,
+ * at least or will be handed all available if 0.
+ *
+ * If an exact number of samples is required, gst_audio_encoder_set_frame_samples_max()
+ * must be called with the same number.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_frame_samples_min (GstAudioEncoder * enc, gint num)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  enc->priv->ctx.frame_samples_min = num;
+}
+
+/**
+ * gst_audio_encoder_get_frame_samples_min:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently minimum requested samples per frame
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_encoder_get_frame_samples_min (GstAudioEncoder * enc)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  return enc->priv->ctx.frame_samples_min;
+}
+
+/**
+ * gst_audio_encoder_set_frame_samples_max:
+ * @enc: a #GstAudioEncoder
+ * @num: number of samples per frame
+ *
+ * Sets number of samples (per channel) subclass needs to be handed,
+ * at most or will be handed all available if 0.
+ *
+ * If an exact number of samples is required, gst_audio_encoder_set_frame_samples_min()
+ * must be called with the same number.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_frame_samples_max (GstAudioEncoder * enc, gint num)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  enc->priv->ctx.frame_samples_max = num;
+}
+
+/**
+ * gst_audio_encoder_get_frame_samples_min:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently maximum requested samples per frame
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_encoder_get_frame_samples_max (GstAudioEncoder * enc)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  return enc->priv->ctx.frame_samples_max;
+}
+
+/**
+ * gst_audio_encoder_set_frame_max:
+ * @enc: a #GstAudioEncoder
+ * @num: number of frames
+ *
+ * Sets max number of frames accepted at once (assumed minimally 1).
+ * Requires @frame_samples_min and @frame_samples_max to be the equal.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_frame_max (GstAudioEncoder * enc, gint num)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  enc->priv->ctx.frame_max = num;
+}
+
+/**
+ * gst_audio_encoder_get_frame_max:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently configured maximum handled frames
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_encoder_get_frame_max (GstAudioEncoder * enc)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  return enc->priv->ctx.frame_max;
+}
+
+/**
+ * gst_audio_encoder_set_lookahead:
+ * @enc: a #GstAudioEncoder
+ * @num: lookahead
+ *
+ * Sets encoder lookahead (in units of input rate samples)
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_lookahead (GstAudioEncoder * enc, gint num)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  enc->priv->ctx.lookahead = num;
+}
+
+/**
+ * gst_audio_encoder_get_lookahead:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently configured encoder lookahead
+ */
+gint
+gst_audio_encoder_get_lookahead (GstAudioEncoder * enc)
+{
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  return enc->priv->ctx.lookahead;
+}
+
+/**
+ * gst_audio_encoder_set_latency:
+ * @enc: a #GstAudioEncoder
+ * @min: minimum latency
+ * @max: maximum latency
+ *
+ * Sets encoder latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_latency (GstAudioEncoder * enc,
+    GstClockTime min, GstClockTime max)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->ctx.min_latency = min;
+  enc->priv->ctx.max_latency = max;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_latency:
+ * @enc: a #GstAudioEncoder
+ * @min: (out) (allow-none): a pointer to storage to hold minimum latency
+ * @max: (out) (allow-none): a pointer to storage to hold maximum latency
+ *
+ * Sets the variables pointed to by @min and @max to the currently configured
+ * latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_get_latency (GstAudioEncoder * enc,
+    GstClockTime * min, GstClockTime * max)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_OBJECT_LOCK (enc);
+  if (min)
+    *min = enc->priv->ctx.min_latency;
+  if (max)
+    *max = enc->priv->ctx.max_latency;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_set_mark_granule:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Enable or disable encoder granule handling.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_mark_granule (GstAudioEncoder * enc, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_LOG_OBJECT (enc, "enabled: %d", enabled);
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->granule = enabled;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_mark_granule:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries if the encoder will handle granule marking.
+ *
+ * Returns: TRUE if granule marking is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_mark_granule (GstAudioEncoder * enc)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
+
+  GST_OBJECT_LOCK (enc);
+  result = enc->priv->granule;
+  GST_OBJECT_UNLOCK (enc);
+
+  return result;
+}
+
+/**
+ * gst_audio_encoder_set_perfect_timestamp:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Enable or disable encoder perfect output timestamp preference.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_perfect_timestamp (GstAudioEncoder * enc,
+    gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_LOG_OBJECT (enc, "enabled: %d", enabled);
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->perfect_ts = enabled;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_perfect_timestamp:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder perfect timestamp behaviour.
+ *
+ * Returns: TRUE if perfect timestamp setting enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_perfect_timestamp (GstAudioEncoder * enc)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
+
+  GST_OBJECT_LOCK (enc);
+  result = enc->priv->perfect_ts;
+  GST_OBJECT_UNLOCK (enc);
+
+  return result;
+}
+
+/**
+ * gst_audio_encoder_set_hard_sync:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Sets encoder hard resync handling.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_hard_resync (GstAudioEncoder * enc, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_LOG_OBJECT (enc, "enabled: %d", enabled);
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->hard_resync = enabled;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_hard_sync:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder's hard resync setting.
+ *
+ * Returns: TRUE if hard resync is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_hard_resync (GstAudioEncoder * enc)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
+
+  GST_OBJECT_LOCK (enc);
+  result = enc->priv->hard_resync;
+  GST_OBJECT_UNLOCK (enc);
+
+  return result;
+}
+
+/**
+ * gst_audio_encoder_set_tolerance:
+ * @enc: a #GstAudioEncoder
+ * @tolerance: new tolerance
+ *
+ * Configures encoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_tolerance (GstAudioEncoder * enc, gint64 tolerance)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->tolerance = tolerance;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_tolerance:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries current audio jitter tolerance threshold.
+ *
+ * Returns: encoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gint64
+gst_audio_encoder_get_tolerance (GstAudioEncoder * enc)
+{
+  gint64 result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  GST_OBJECT_LOCK (enc);
+  result = enc->priv->tolerance;
+  GST_OBJECT_UNLOCK (enc);
+
+  return result;
+}
+
+/**
+ * gst_audio_encoder_set_hard_min:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Configures encoder hard minimum handling.  If enabled, subclass
+ * will never be handed less samples than it configured, which otherwise
+ * might occur near end-of-data handling.  Instead, the leftover samples
+ * will simply be discarded.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_hard_min (GstAudioEncoder * enc, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->hard_min = enabled;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_hard_min:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder hard minimum handling.
+ *
+ * Returns: TRUE if hard minimum handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_hard_min (GstAudioEncoder * enc)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  GST_OBJECT_LOCK (enc);
+  result = enc->priv->hard_min;
+  GST_OBJECT_UNLOCK (enc);
+
+  return result;
+}
+
+/**
+ * gst_audio_encoder_set_drainable:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Configures encoder drain handling.  If drainable, subclass might
+ * be handed a NULL buffer to have it return any leftover encoded data.
+ * Otherwise, it is not considered so capable and will only ever be passed
+ * real data.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_drainable (GstAudioEncoder * enc, gboolean enabled)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  GST_OBJECT_LOCK (enc);
+  enc->priv->drainable = enabled;
+  GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_drainable:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder drain handling.
+ *
+ * Returns: TRUE if drainable handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_drainable (GstAudioEncoder * enc)
+{
+  gboolean result;
+
+  g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+  GST_OBJECT_LOCK (enc);
+  result = enc->priv->drainable;
+  GST_OBJECT_UNLOCK (enc);
+
+  return result;
+}
+
+/**
+ * gst_audio_encoder_merge_tags:
+ * @enc: a #GstAudioEncoder
+ * @tags: a #GstTagList to merge
+ * @mode: the #GstTagMergeMode to use
+ *
+ * Adds tags to so-called pending tags, which will be processed
+ * before pushing out data downstream.
+ *
+ * Note that this is provided for convenience, and the subclass is
+ * not required to use this and can still do tag handling on its own,
+ * although it should be aware that baseclass already takes care
+ * of the usual CODEC/AUDIO_CODEC tags.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_merge_tags (GstAudioEncoder * enc,
+    const GstTagList * tags, GstTagMergeMode mode)
+{
+  GstTagList *otags;
+
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+  g_return_if_fail (tags == NULL || GST_IS_TAG_LIST (tags));
+
+  GST_OBJECT_LOCK (enc);
+  if (tags)
+    GST_DEBUG_OBJECT (enc, "merging tags %" GST_PTR_FORMAT, tags);
+  otags = enc->priv->tags;
+  enc->priv->tags = gst_tag_list_merge (enc->priv->tags, tags, mode);
+  if (otags)
+    gst_tag_list_free (otags);
+  GST_OBJECT_UNLOCK (enc);
+}
diff --git a/gst-libs/gst/audio/gstaudioencoder.h b/gst-libs/gst/audio/gstaudioencoder.h
new file mode 100644 (file)
index 0000000..aa40677
--- /dev/null
@@ -0,0 +1,264 @@
+/* GStreamer
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ *   Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_AUDIO_ENCODER_H__
+#define __GST_AUDIO_ENCODER_H__
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_AUDIO_ENCODER            (gst_audio_encoder_get_type())
+#define GST_AUDIO_ENCODER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_ENCODER,GstAudioEncoder))
+#define GST_AUDIO_ENCODER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_ENCODER,GstAudioEncoderClass))
+#define GST_AUDIO_ENCODER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_ENCODER,GstAudioEncoderClass))
+#define GST_IS_AUDIO_ENCODER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_ENCODER))
+#define GST_IS_AUDIO_ENCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_ENCODER))
+#define GST_AUDIO_ENCODER_CAST(obj)    ((GstAudioEncoder *)(obj))
+
+/**
+ * GST_AUDIO_ENCODER_SINK_NAME:
+ *
+ * the name of the templates for the sink pad
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SINK_NAME    "sink"
+/**
+ * GST_AUDIO_ENCODER_SRC_NAME:
+ *
+ * the name of the templates for the source pad
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SRC_NAME             "src"
+
+/**
+ * GST_AUDIO_ENCODER_SRC_PAD:
+ * @obj: base parse instance
+ *
+ * Gives the pointer to the source #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SRC_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)->srcpad)
+
+/**
+ * GST_AUDIO_ENCODER_SINK_PAD:
+ * @obj: base parse instance
+ *
+ * Gives the pointer to the sink #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SINK_PAD(obj)        (GST_AUDIO_ENCODER_CAST (obj)->sinkpad)
+
+/**
+ * GST_AUDIO_ENCODER_SEGMENT:
+ * @obj: base parse instance
+ *
+ * Gives the segment of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SEGMENT(obj)     (GST_AUDIO_ENCODER_CAST (obj)->segment)
+
+#define GST_AUDIO_ENCODER_STREAM_LOCK(enc) g_static_rec_mutex_lock (&GST_AUDIO_ENCODER (enc)->stream_lock)
+#define GST_AUDIO_ENCODER_STREAM_UNLOCK(enc) g_static_rec_mutex_unlock (&GST_AUDIO_ENCODER (enc)->stream_lock)
+
+typedef struct _GstAudioEncoder GstAudioEncoder;
+typedef struct _GstAudioEncoderClass GstAudioEncoderClass;
+
+typedef struct _GstAudioEncoderPrivate GstAudioEncoderPrivate;
+
+/**
+ * GstAudioEncoder:
+ *
+ * The opaque #GstAudioEncoder data structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioEncoder {
+  GstElement     element;
+
+  /*< protected >*/
+  /* source and sink pads */
+  GstPad         *sinkpad;
+  GstPad         *srcpad;
+
+  /* protects all data processing, i.e. is locked
+   * in the chain function, finish_frame and when
+   * processing serialized events */
+  GStaticRecMutex stream_lock;
+
+  /* MT-protected (with STREAM_LOCK) */
+  GstSegment      segment;
+
+  /*< private >*/
+  GstAudioEncoderPrivate *priv;
+  gpointer       _gst_reserved[GST_PADDING_LARGE];
+};
+
+/**
+ * GstAudioEncoderClass:
+ * @element_class:  The parent class structure
+ * @start:          Optional.
+ *                  Called when the element starts processing.
+ *                  Allows opening external resources.
+ * @stop:           Optional.
+ *                  Called when the element stops processing.
+ *                  Allows closing external resources.
+ * @set_format:     Notifies subclass of incoming data format.
+ *                  GstAudioInfo contains the format according to provided caps.
+ * @handle_frame:   Provides input samples (or NULL to clear any remaining data)
+ *                  according to directions as configured by the subclass
+ *                  using the API.  Input data ref management is performed
+ *                  by base class, subclass should not care or intervene,
+ *                  and input data is only valid until next call to base class,
+ *                  most notably a call to gst_audio_encoder_finish_frame().
+ * @flush:          Optional.
+ *                  Instructs subclass to clear any codec caches and discard
+ *                  any pending samples and not yet returned encoded data.
+ * @event:          Optional.
+ *                  Event handler on the sink pad. This function should return
+ *                  TRUE if the event was handled and should be discarded
+ *                  (i.e. not unref'ed).
+ * @pre_push:       Optional.
+ *                  Called just prior to pushing (encoded data) buffer downstream.
+ *                  Subclass has full discretionary access to buffer,
+ *                  and a not OK flow return will abort downstream pushing.
+ * @getcaps:        Optional.
+ *                  Allows for a custom sink getcaps implementation (e.g.
+ *                  for multichannel input specification).  If not implemented,
+ *                  default returns gst_audio_encoder_proxy_getcaps
+ *                  applied to sink template caps.
+ *
+ * Subclasses can override any of the available virtual methods or not, as
+ * needed. At minimum @set_format and @handle_frame needs to be overridden.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioEncoderClass {
+  GstElementClass element_class;
+
+  /*< public >*/
+  /* virtual methods for subclasses */
+
+  gboolean      (*start)              (GstAudioEncoder *enc);
+
+  gboolean      (*stop)               (GstAudioEncoder *enc);
+
+  gboolean      (*set_format)         (GstAudioEncoder *enc,
+                                       GstAudioInfo        *info);
+
+  GstFlowReturn (*handle_frame)       (GstAudioEncoder *enc,
+                                       GstBuffer *buffer);
+
+  void          (*flush)              (GstAudioEncoder *enc);
+
+  GstFlowReturn (*pre_push)           (GstAudioEncoder *enc,
+                                       GstBuffer **buffer);
+
+  gboolean      (*event)              (GstAudioEncoder *enc,
+                                       GstEvent *event);
+
+  GstCaps *     (*getcaps)            (GstAudioEncoder *enc);
+
+  /*< private >*/
+  gpointer       _gst_reserved[GST_PADDING_LARGE];
+};
+
+GType           gst_audio_encoder_get_type         (void);
+
+GstFlowReturn   gst_audio_encoder_finish_frame (GstAudioEncoder * enc,
+                                                GstBuffer       * buffer,
+                                                gint              samples);
+
+GstCaps *       gst_audio_encoder_proxy_getcaps (GstAudioEncoder * enc,
+                                                 GstCaps         * caps);
+
+
+/* context parameters */
+GstAudioInfo  * gst_audio_encoder_get_audio_info (GstAudioEncoder * enc);
+
+gint            gst_audio_encoder_get_frame_samples_min (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_frame_samples_min (GstAudioEncoder * enc, gint num);
+
+gint            gst_audio_encoder_get_frame_samples_max (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_frame_samples_max (GstAudioEncoder * enc, gint num);
+
+gint            gst_audio_encoder_get_frame_max (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_frame_max (GstAudioEncoder * enc, gint num);
+
+gint            gst_audio_encoder_get_lookahead (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_lookahead (GstAudioEncoder * enc, gint num);
+
+void            gst_audio_encoder_get_latency (GstAudioEncoder * enc,
+                                               GstClockTime    * min,
+                                               GstClockTime    * max);
+
+void            gst_audio_encoder_set_latency (GstAudioEncoder * enc,
+                                               GstClockTime      min,
+                                               GstClockTime      max);
+
+/* object properties */
+
+void            gst_audio_encoder_set_mark_granule (GstAudioEncoder * enc,
+                                                    gboolean enabled);
+
+gboolean        gst_audio_encoder_get_mark_granule (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_perfect_timestamp (GstAudioEncoder * enc,
+                                                         gboolean          enabled);
+
+gboolean        gst_audio_encoder_get_perfect_timestamp (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_hard_resync (GstAudioEncoder * enc,
+                                                   gboolean          enabled);
+
+gboolean        gst_audio_encoder_get_hard_resync (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_tolerance (GstAudioEncoder * enc,
+                                                 gint64            tolerance);
+
+gint64          gst_audio_encoder_get_tolerance (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_hard_min (GstAudioEncoder * enc,
+                                                gboolean enabled);
+
+gboolean        gst_audio_encoder_get_hard_min (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_set_drainable (GstAudioEncoder * enc,
+                                                 gboolean enabled);
+
+gboolean        gst_audio_encoder_get_drainable (GstAudioEncoder * enc);
+
+void            gst_audio_encoder_merge_tags (GstAudioEncoder * enc,
+                                              const GstTagList * tags, GstTagMergeMode mode);
+
+G_END_DECLS
+
+#endif /* __GST_AUDIO_ENCODER_H__ */
index ca928d6..fcdf725 100644 (file)
@@ -23,7 +23,7 @@
  * SECTION:gstaudiofilter
  * @short_description: Base class for simple audio filters
  *
- * #GstAudioFilter is a #GstBaseTransform-derived base class for simple audio
+ * #GstAudioFilter is a #GstBaseTransform<!-- -->-derived base class for simple audio
  * filters, ie. those that output the same format that they get as input.
  *
  * #GstAudioFilter will parse the input format for you (with error checking)
index c311c97..2fe5da5 100644 (file)
@@ -47,7 +47,6 @@ typedef struct _GstAudioFilterClass GstAudioFilterClass;
 
 /**
  * GstAudioFilter:
- * @basetransform: Element parent class
  *
  * Base class for audio filters with the same format for input and output.
  *
diff --git a/gst-libs/gst/audio/gstaudioiec61937.c b/gst-libs/gst/audio/gstaudioiec61937.c
new file mode 100644 (file)
index 0000000..b6a3266
--- /dev/null
@@ -0,0 +1,321 @@
+/* GStreamer audio helper functions for IEC 61937 payloading
+ * (c) 2011 Intel Corporation
+ *     2011 Collabora Multimedia
+ *     2011 Arun Raghavan <arun.raghavan@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstaudioiec61937
+ * @short_description: Utility functions for IEC 61937 payloading
+ * @since: 0.10.36
+ *
+ * This module contains some helper functions for encapsulating various
+ * audio formats in IEC 61937 headers and padding.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include "gstaudioiec61937.h"
+
+#define IEC61937_HEADER_SIZE      8
+#define IEC61937_PAYLOAD_SIZE_AC3 (1536 * 4)
+#define IEC61937_PAYLOAD_SIZE_EAC3 (6144 * 4)
+
+static gint
+caps_get_int_field (const GstCaps * caps, const gchar * field)
+{
+  const GstStructure *st;
+  gint ret = 0;
+
+  st = gst_caps_get_structure (caps, 0);
+  gst_structure_get_int (st, field, &ret);
+
+  return ret;
+}
+
+static const gchar *
+caps_get_string_field (const GstCaps * caps, const gchar * field)
+{
+  const GstStructure *st = gst_caps_get_structure (caps, 0);
+  return gst_structure_get_string (st, field);
+}
+
+/**
+ * gst_audio_iec61937_frame_size:
+ * @spec: the ringbufer spec
+ *
+ * Calculated the size of the buffer expected by gst_audio_iec61937_payload() for
+ * payloading type from @spec.
+ *
+ * Returns: the size or 0 if the given @type is not supported or cannot be
+ * payloaded.
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_audio_iec61937_frame_size (const GstRingBufferSpec * spec)
+{
+  switch (spec->type) {
+    case GST_BUFTYPE_AC3:
+      return IEC61937_PAYLOAD_SIZE_AC3;
+
+    case GST_BUFTYPE_EAC3:
+      /* Check that the parser supports /some/ alignment. Need to be less
+       * strict about this at checking time since the alignment is dynamically
+       * set at the moment. */
+      if (caps_get_string_field (spec->caps, "alignment"))
+        return IEC61937_PAYLOAD_SIZE_EAC3;
+      else
+        return 0;
+
+    case GST_BUFTYPE_DTS:
+    {
+      gint dts_frame_size = caps_get_int_field (spec->caps, "frame-size");
+      gint iec_frame_size = caps_get_int_field (spec->caps, "block-size") * 4;
+
+      /* Note: this will also (correctly) fail if either field is missing */
+      if (iec_frame_size >= (dts_frame_size + IEC61937_HEADER_SIZE))
+        return iec_frame_size;
+      else
+        return 0;
+    }
+
+    case GST_BUFTYPE_MPEG:
+    {
+      int version, layer, channels, frames;
+
+      version = caps_get_int_field (spec->caps, "mpegaudioversion");
+      layer = caps_get_int_field (spec->caps, "layer");
+      channels = caps_get_int_field (spec->caps, "channels");
+
+      /* Bail out if we can't figure out either, if it's MPEG 2.5, or if it's
+       * MP3 with multichannel audio */
+      if (!version || !layer || version == 3 || channels > 2)
+        return 0;
+
+      if (version == 1 && layer == 1)
+        frames = 384;
+      else if (version == 2 && layer == 1 && spec->rate < 32000)
+        frames = 768;
+      else if (version == 2 && layer == 1 && spec->rate < 32000)
+        frames = 2304;
+      else
+        frames = 1152;
+
+      return frames * 4;
+    }
+
+    default:
+      return 0;
+  }
+}
+
+/**
+ * gst_audio_iec61937_payload:
+ * @src: a buffer containing the data to payload
+ * @src_n: size of @src in bytes
+ * @dst: the destination buffer to store the payloaded contents in. Should not
+ *       overlap with @src
+ * @dst_n: size of @dst in bytes
+ * @spec: the ringbufer spec for @src
+ *
+ * Payloads @src in the form specified by IEC 61937 for the type from @spec and
+ * stores the result in @dst. @src must contain exactly one frame of data and
+ * the frame is not checked for errors.
+ *
+ * Returns: transfer-full: %TRUE if the payloading was successful, %FALSE
+ * otherwise.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_iec61937_payload (const guint8 * src, guint src_n, guint8 * dst,
+    guint dst_n, const GstRingBufferSpec * spec)
+{
+  guint i, tmp;
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+  guint8 zero = 0, one = 1, two = 2, three = 3, four = 4, five = 5, six = 6,
+      seven = 7;
+#else
+  /* We need to send the data byte-swapped */
+  guint8 zero = 1, one = 0, two = 3, three = 2, four = 5, five = 4, six = 7,
+      seven = 6;
+#endif
+
+  g_return_val_if_fail (src != NULL, FALSE);
+  g_return_val_if_fail (dst != NULL, FALSE);
+  g_return_val_if_fail (src != dst, FALSE);
+  g_return_val_if_fail (dst_n >= gst_audio_iec61937_frame_size (spec), FALSE);
+
+  if (dst_n < src_n + IEC61937_HEADER_SIZE)
+    return FALSE;
+
+  /* Pa, Pb */
+  dst[zero] = 0xF8;
+  dst[one] = 0x72;
+  dst[two] = 0x4E;
+  dst[three] = 0x1F;
+
+  switch (spec->type) {
+    case GST_BUFTYPE_AC3:
+    {
+      g_return_val_if_fail (src_n >= 6, FALSE);
+
+      /* Pc: bit 13-15 - stream number (0)
+       *     bit 11-12 - reserved (0)
+       *     bit  8-10 - bsmod from AC3 frame */
+      dst[four] = src[5] & 0x7;
+      /* Pc: bit    7  - error bit (0)
+       *     bit  5-6  - subdata type (0)
+       *     bit  0-4  - data type (1) */
+      dst[five] = 1;
+      /* Pd: bit 15-0  - frame size in bits */
+      tmp = src_n * 8;
+      dst[six] = (guint8) (tmp >> 8);
+      dst[seven] = (guint8) (tmp & 0xff);
+
+      break;
+    }
+
+    case GST_BUFTYPE_EAC3:
+    {
+      if (g_str_equal (caps_get_string_field (spec->caps, "alignment"),
+              "iec61937"))
+        return FALSE;
+
+      /* Pc: bit 13-15 - stream number (0)
+       *     bit 11-12 - reserved (0)
+       *     bit  8-10 - bsmod from E-AC3 frame if present */
+      /* FIXME: this works, but nicer if we can put in the actual bsmod */
+      dst[four] = 0;
+      /* Pc: bit    7  - error bit (0)
+       *     bit  5-6  - subdata type (0)
+       *     bit  0-4  - data type (21) */
+      dst[five] = 21;
+      /* Pd: bit 15-0  - frame size in bytes */
+      dst[six] = ((guint16) src_n) >> 8;
+      dst[seven] = ((guint16) src_n) & 0xff;
+
+      break;
+    }
+
+    case GST_BUFTYPE_DTS:
+    {
+      int blocksize = caps_get_int_field (spec->caps, "block-size");
+
+      g_return_val_if_fail (src_n != 0, FALSE);
+
+      if (blocksize == 0)
+        return FALSE;
+
+      /* Pc: bit 13-15 - stream number (0)
+       *     bit 11-12 - reserved (0)
+       *     bit  8-10 - for DTS type I-III (0) */
+      dst[four] = 0;
+      /* Pc: bit    7  - error bit (0)
+       *     bit  5-6  - reserved (0)
+       *     bit  0-4  - data type (11 = type I, 12 = type II,
+       *                            13 = type III) */
+      dst[five] = 11 + (blocksize / 1024);
+      /* Pd: bit 15-0  - frame size in bytes */
+      dst[six] = ((guint16) src_n) >> 8;
+      dst[seven] = ((guint16) src_n) & 0xff;
+      break;
+    }
+
+    case GST_BUFTYPE_MPEG:
+    {
+      int version, layer;
+
+      version = caps_get_int_field (spec->caps, "mpegaudioversion");
+      layer = caps_get_int_field (spec->caps, "layer");
+
+      g_return_val_if_fail (version > 0 && layer > 0, FALSE);
+
+      /* NOTE: multichannel audio (MPEG-2) is not supported */
+
+      /* Pc: bit 13-15 - stream number (0)
+       *     bit 11-12 - reserved (0)
+       *     bit  9-10 - 0 - no dynamic range control
+       *               - 2 - dynamic range control exists
+       *               - 1,3 - reserved
+       *     bit    8  - Normal (0) or Karaoke (1) mode */
+      dst[four] = 0;
+      /* Pc: bit    7  - error bit (0)
+       *     bit  5-6  - reserved (0)
+       *     bit  0-4  - data type (04 = MPEG 1, Layer 1
+       *                            05 = MPEG 1, Layer 2, 3 / MPEG 2, w/o ext.
+       *                            06 = MPEG 2, with extension
+       *                            08 - MPEG 2 LSF, Layer 1
+       *                            09 - MPEG 2 LSF, Layer 2
+       *                            10 - MPEG 2 LSF, Layer 3 */
+      if (version == 1 && layer == 1)
+        dst[five] = 0x04;
+      else if ((version == 1 && (layer == 2 || layer == 3)) ||
+          (version == 2 && spec->rate >= 32000))
+        dst[five] = 0x05;
+      else if (version == 2 && layer == 1 && spec->rate < 32000)
+        dst[five] = 0x08;
+      else if (version == 2 && layer == 2 && spec->rate < 32000)
+        dst[five] = 0x09;
+      else if (version == 2 && layer == 3 && spec->rate < 32000)
+        dst[five] = 0x0A;
+      else
+        g_return_val_if_reached (FALSE);
+      /* Pd: bit 15-0  - frame size in bits */
+      dst[six] = ((guint16) src_n * 8) >> 8;
+      dst[seven] = ((guint16) src_n * 8) & 0xff;
+
+      break;
+    }
+
+    default:
+      return FALSE;
+  }
+
+  /* Copy the payload */
+  i = 8;
+
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+  memcpy (dst + i, src, src_n);
+#else
+  /* Byte-swapped again */
+  /* FIXME: orc-ify this */
+  for (tmp = 1; tmp < src_n; tmp += 2) {
+    dst[i + tmp - 1] = src[tmp];
+    dst[i + tmp] = src[tmp - 1];
+  }
+  /* Do we have 1 byte remaining? */
+  if (src_n % 2) {
+    dst[i + src_n - 1] = 0;
+    dst[i + src_n] = src[src_n - 1];
+    i++;
+  }
+#endif
+
+  i += src_n;
+
+  /* Zero the rest */
+  memset (dst + i, 0, dst_n - i);
+
+  return TRUE;
+}
diff --git a/gst-libs/gst/audio/gstaudioiec61937.h b/gst-libs/gst/audio/gstaudioiec61937.h
new file mode 100644 (file)
index 0000000..b33297a
--- /dev/null
@@ -0,0 +1,31 @@
+/* GStreamer audio helper functions for IEC 61937 payloading
+ * (c) 2011 Intel Corporation
+ *     2011 Collabora Multimedia
+ *     2011 Arun Raghavan <arun.raghavan@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_AUDIO_IEC61937_H__
+#define __GST_AUDIO_IEC61937_H__
+
+#include <gst/audio/gstringbuffer.h>
+
+guint gst_audio_iec61937_frame_size (const GstRingBufferSpec * spec);
+gboolean gst_audio_iec61937_payload (const guint8 * src, guint src_n,
+    guint8 * dst, guint dst_n, const GstRingBufferSpec * spec);
+
+#endif /* __GST_AUDIO_IEC61937_H__ */
index ce919af..c5fec73 100644 (file)
@@ -71,6 +71,8 @@
 
 #include "gstaudiosink.h"
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (gst_audio_sink_debug);
 #define GST_CAT_DEFAULT gst_audio_sink_debug
 
@@ -265,6 +267,11 @@ audioringbuffer_thread_func (GstRingBuffer * buf)
       GST_OBJECT_LOCK (abuf);
       if (!abuf->running)
         goto stop_running;
+      if (G_UNLIKELY (g_atomic_int_get (&buf->state) ==
+              GST_RING_BUFFER_STATE_STARTED)) {
+        GST_OBJECT_UNLOCK (abuf);
+        continue;
+      }
       GST_DEBUG_OBJECT (sink, "signal wait");
       GST_AUDIORING_BUFFER_SIGNAL (buf);
       GST_DEBUG_OBJECT (sink, "wait for action");
@@ -421,9 +428,16 @@ gst_audioringbuffer_activate (GstRingBuffer * buf, gboolean active)
     abuf->running = TRUE;
 
     GST_DEBUG_OBJECT (sink, "starting thread");
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
     sink->thread =
         g_thread_create ((GThreadFunc) audioringbuffer_thread_func, buf, TRUE,
         &error);
+#else
+    sink->thread = g_thread_try_new ("audiosink-ringbuffer",
+        (GThreadFunc) audioringbuffer_thread_func, buf, &error);
+#endif
+
     if (!sink->thread || error != NULL)
       goto thread_failed;
 
index d7a6b54..004153e 100644 (file)
@@ -71,6 +71,8 @@
 
 #include "gstaudiosrc.h"
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (gst_audio_src_debug);
 #define GST_CAT_DEFAULT gst_audio_src_debug
 
@@ -382,9 +384,16 @@ gst_audioringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec)
   abuf = GST_AUDIORING_BUFFER (buf);
   abuf->running = TRUE;
 
+  /* FIXME: handle thread creation failure */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   src->thread =
       g_thread_create ((GThreadFunc) audioringbuffer_thread_func, buf, TRUE,
       NULL);
+#else
+  src->thread = g_thread_try_new ("audiosrc-ringbuffer",
+      (GThreadFunc) audioringbuffer_thread_func, buf, NULL);
+#endif
+
   GST_AUDIORING_BUFFER_WAIT (buf);
 
   return result;
index d3b714d..3caa98e 100644 (file)
@@ -40,7 +40,6 @@ typedef struct _GstAudioSrcClass GstAudioSrcClass;
 
 /**
  * GstAudioSrc:
- * @element: parent class
  *
  * Base class for simple audio sources.
  */
index 6093092..e7ff30d 100644 (file)
 
 #include <string.h>
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include "gstbaseaudiosink.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_base_audio_sink_debug);
@@ -58,9 +62,19 @@ struct _GstBaseAudioSinkPrivate
   GstClockTime eos_time;
 
   gboolean do_time_offset;
-  /* number of microseconds we alow timestamps or clock slaving to drift
+  /* number of microseconds we allow clock slaving to drift
    * before resyncing */
   guint64 drift_tolerance;
+
+  /* number of nanoseconds we allow timestamps to drift
+   * before resyncing */
+  GstClockTime alignment_threshold;
+
+  /* time of the previous detected discont candidate */
+  GstClockTime discont_time;
+
+  /* number of nanoseconds to wait until creating a discontinuity */
+  GstClockTime discont_wait;
 };
 
 /* BaseAudioSink signals and args */
@@ -79,10 +93,18 @@ enum
 /* FIXME, enable pull mode when clock slaving and trick modes are figured out */
 #define DEFAULT_CAN_ACTIVATE_PULL FALSE
 
-/* when timestamps or clock slaving drift for more than 40ms we resync. This is
+/* when timestamps drift for more than 40ms we resync. This should
+ * be anough to compensate for timestamp rounding errors. */
+#define DEFAULT_ALIGNMENT_THRESHOLD   (40 * GST_MSECOND)
+
+/* when clock slaving drift for more than 40ms we resync. This is
  * a reasonable default */
 #define DEFAULT_DRIFT_TOLERANCE   ((40 * GST_MSECOND) / GST_USECOND)
 
+/* allow for one second before resyncing to see if the timestamps drift will
+ * fix itself, or is a permanent offset */
+#define DEFAULT_DISCONT_WAIT        (1 * GST_SECOND)
+
 enum
 {
   PROP_0,
@@ -92,7 +114,9 @@ enum
   PROP_PROVIDE_CLOCK,
   PROP_SLAVE_METHOD,
   PROP_CAN_ACTIVATE_PULL,
+  PROP_ALIGNMENT_THRESHOLD,
   PROP_DRIFT_TOLERANCE,
+  PROP_DISCONT_WAIT,
 
   PROP_LAST
 };
@@ -216,16 +240,44 @@ gst_base_audio_sink_class_init (GstBaseAudioSinkClass * klass)
   /**
    * GstBaseAudioSink:drift-tolerance
    *
-   * Controls the amount of time in milliseconds that timestamps or clocks are allowed
+   * Controls the amount of time in microseconds that clocks are allowed
    * to drift before resynchronisation happens.
    *
    * Since: 0.10.26
    */
   g_object_class_install_property (gobject_class, PROP_DRIFT_TOLERANCE,
       g_param_spec_int64 ("drift-tolerance", "Drift Tolerance",
-          "Tolerance for timestamp and clock drift in microseconds", 1,
+          "Tolerance for clock drift in microseconds", 1,
           G_MAXINT64, DEFAULT_DRIFT_TOLERANCE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstBaseAudioSink:alignment_threshold
+   *
+   * Controls the amount of time in nanoseconds that timestamps are allowed
+   * to drift from their ideal time before choosing not to align them.
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (gobject_class, PROP_ALIGNMENT_THRESHOLD,
+      g_param_spec_uint64 ("alignment-threshold", "Alignment Threshold",
+          "Timestamp alignment threshold in nanoseconds", 1,
+          G_MAXUINT64 - 1, DEFAULT_ALIGNMENT_THRESHOLD,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstBaseAudioSink:discont-wait
+   *
+   * A window of time in nanoseconds to wait before creating a discontinuity as
+   * a result of breaching the drift-tolerance.
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (gobject_class, PROP_DISCONT_WAIT,
+      g_param_spec_uint64 ("discont-wait", "Discont Wait",
+          "Window of time in nanoseconds to wait before "
+          "creating a discontinuity", 0,
+          G_MAXUINT64 - 1, DEFAULT_DISCONT_WAIT,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_base_audio_sink_change_state);
@@ -266,6 +318,8 @@ gst_base_audio_sink_init (GstBaseAudioSink * baseaudiosink,
   baseaudiosink->provide_clock = DEFAULT_PROVIDE_CLOCK;
   baseaudiosink->priv->slave_method = DEFAULT_SLAVE_METHOD;
   baseaudiosink->priv->drift_tolerance = DEFAULT_DRIFT_TOLERANCE;
+  baseaudiosink->priv->alignment_threshold = DEFAULT_ALIGNMENT_THRESHOLD;
+  baseaudiosink->priv->discont_wait = DEFAULT_DISCONT_WAIT;
 
   baseaudiosink->provided_clock = gst_audio_clock_new ("GstAudioSinkClock",
       (GstAudioClockGetTimeFunc) gst_base_audio_sink_get_time, baseaudiosink);
@@ -292,7 +346,7 @@ gst_base_audio_sink_init (GstBaseAudioSink * baseaudiosink,
   if (feature) {
     if (strcmp (gst_plugin_feature_get_name (feature), "pulsesink") == 0) {
       if (!gst_plugin_feature_check_version (feature, 0, 10, 17)) {
-        /* we're dealing with an old pulsesink, we need to disable time corection */
+        /* we're dealing with an old pulsesink, we need to disable time correction */
         GST_DEBUG ("disable time offset");
         baseaudiosink->priv->do_time_offset = FALSE;
       }
@@ -415,7 +469,7 @@ gst_base_audio_sink_query (GstElement * element, GstQuery * query)
       if ((res =
               gst_base_sink_query_latency (GST_BASE_SINK_CAST (basesink), &live,
                   &us_live, &min_l, &max_l))) {
-        GstClockTime min_latency, max_latency;
+        GstClockTime base_latency, min_latency, max_latency;
 
         /* we and upstream are both live, adjust the min_latency */
         if (live && us_live) {
@@ -434,21 +488,25 @@ gst_base_audio_sink_query (GstElement * element, GstQuery * query)
 
           basesink->priv->us_latency = min_l;
 
-          min_latency =
+          base_latency =
               gst_util_uint64_scale_int (spec->seglatency * spec->segsize,
               GST_SECOND, spec->rate * spec->bytes_per_sample);
           GST_OBJECT_UNLOCK (basesink);
 
           /* we cannot go lower than the buffer size and the min peer latency */
-          min_latency = min_latency + min_l;
+          min_latency = base_latency + min_l;
           /* the max latency is the max of the peer, we can delay an infinite
            * amount of time. */
-          max_latency = min_latency + (max_l == -1 ? 0 : max_l);
+          max_latency = (max_l == -1) ? -1 : (base_latency + max_l);
 
           GST_DEBUG_OBJECT (basesink,
               "peer min %" GST_TIME_FORMAT ", our min latency: %"
               GST_TIME_FORMAT, GST_TIME_ARGS (min_l),
               GST_TIME_ARGS (min_latency));
+          GST_DEBUG_OBJECT (basesink,
+              "peer max %" GST_TIME_FORMAT ", our max latency: %"
+              GST_TIME_FORMAT, GST_TIME_ARGS (max_l),
+              GST_TIME_ARGS (max_latency));
         } else {
           GST_DEBUG_OBJECT (basesink,
               "peer or we are not live, don't care about latency");
@@ -655,6 +713,94 @@ gst_base_audio_sink_get_drift_tolerance (GstBaseAudioSink * sink)
   return result;
 }
 
+/**
+ * gst_base_audio_sink_set_alignment_threshold:
+ * @sink: a #GstBaseAudioSink
+ * @alignment_threshold: the new alignment threshold in nanoseconds
+ *
+ * Controls the sink's alignment threshold.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_base_audio_sink_set_alignment_threshold (GstBaseAudioSink * sink,
+    GstClockTime alignment_threshold)
+{
+  g_return_if_fail (GST_IS_BASE_AUDIO_SINK (sink));
+
+  GST_OBJECT_LOCK (sink);
+  sink->priv->alignment_threshold = alignment_threshold;
+  GST_OBJECT_UNLOCK (sink);
+}
+
+/**
+ * gst_base_audio_sink_get_alignment_threshold
+ * @sink: a #GstBaseAudioSink
+ *
+ * Get the current alignment threshold, in nanoseconds, used by @sink.
+ *
+ * Returns: The current alignment threshold used by @sink.
+ *
+ * Since: 0.10.36
+ */
+GstClockTime
+gst_base_audio_sink_get_alignment_threshold (GstBaseAudioSink * sink)
+{
+  gint64 result;
+
+  g_return_val_if_fail (GST_IS_BASE_AUDIO_SINK (sink), -1);
+
+  GST_OBJECT_LOCK (sink);
+  result = sink->priv->alignment_threshold;
+  GST_OBJECT_UNLOCK (sink);
+
+  return result;
+}
+
+/**
+ * gst_base_audio_sink_set_discont_wait:
+ * @sink: a #GstBaseAudioSink
+ * @discont_wait: the new discont wait in nanoseconds
+ *
+ * Controls how long the sink will wait before creating a discontinuity.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_base_audio_sink_set_discont_wait (GstBaseAudioSink * sink,
+    GstClockTime discont_wait)
+{
+  g_return_if_fail (GST_IS_BASE_AUDIO_SINK (sink));
+
+  GST_OBJECT_LOCK (sink);
+  sink->priv->discont_wait = discont_wait;
+  GST_OBJECT_UNLOCK (sink);
+}
+
+/**
+ * gst_base_audio_sink_get_discont_wait
+ * @sink: a #GstBaseAudioSink
+ *
+ * Get the current discont wait, in nanoseconds, used by @sink.
+ *
+ * Returns: The current discont wait used by @sink.
+ *
+ * Since: 0.10.36
+ */
+GstClockTime
+gst_base_audio_sink_get_discont_wait (GstBaseAudioSink * sink)
+{
+  GstClockTime result;
+
+  g_return_val_if_fail (GST_IS_BASE_AUDIO_SINK (sink), -1);
+
+  GST_OBJECT_LOCK (sink);
+  result = sink->priv->discont_wait;
+  GST_OBJECT_UNLOCK (sink);
+
+  return result;
+}
+
 static void
 gst_base_audio_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
@@ -682,6 +828,13 @@ gst_base_audio_sink_set_property (GObject * object, guint prop_id,
     case PROP_DRIFT_TOLERANCE:
       gst_base_audio_sink_set_drift_tolerance (sink, g_value_get_int64 (value));
       break;
+    case PROP_ALIGNMENT_THRESHOLD:
+      gst_base_audio_sink_set_alignment_threshold (sink,
+          g_value_get_uint64 (value));
+      break;
+    case PROP_DISCONT_WAIT:
+      gst_base_audio_sink_set_discont_wait (sink, g_value_get_uint64 (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -715,6 +868,13 @@ gst_base_audio_sink_get_property (GObject * object, guint prop_id,
     case PROP_DRIFT_TOLERANCE:
       g_value_set_int64 (value, gst_base_audio_sink_get_drift_tolerance (sink));
       break;
+    case PROP_ALIGNMENT_THRESHOLD:
+      g_value_set_uint64 (value,
+          gst_base_audio_sink_get_alignment_threshold (sink));
+      break;
+    case PROP_DISCONT_WAIT:
+      g_value_set_uint64 (value, gst_base_audio_sink_get_discont_wait (sink));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -727,6 +887,7 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
   GstBaseAudioSink *sink = GST_BASE_AUDIO_SINK (bsink);
   GstRingBufferSpec *spec;
   GstClockTime now;
+  GstClockTime crate_num, crate_denom;
 
   if (!sink->ringbuffer)
     return FALSE;
@@ -765,6 +926,13 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
     gst_ring_buffer_activate (sink->ringbuffer, TRUE);
   }
 
+  /* due to possible changes in the spec file we should recalibrate the clock */
+  gst_clock_get_calibration (sink->provided_clock, NULL, NULL,
+      &crate_num, &crate_denom);
+  gst_clock_set_calibration (sink->provided_clock,
+      gst_clock_get_internal_time (sink->provided_clock), now, crate_num,
+      crate_denom);
+
   /* calculate actual latency and buffer times.
    * FIXME: In 0.11, store the latency_time internally in ns */
   spec->latency_time = gst_util_uint64_scale (spec->segsize,
@@ -876,6 +1044,7 @@ gst_base_audio_sink_event (GstBaseSink * bsink, GstEvent * event)
       sink->priv->avg_skew = -1;
       sink->next_sample = -1;
       sink->priv->eos_time = -1;
+      sink->priv->discont_time = -1;
       if (sink->ringbuffer)
         gst_ring_buffer_set_flushing (sink->ringbuffer, FALSE);
       break;
@@ -1297,6 +1466,7 @@ gst_base_audio_sink_sync_latency (GstBaseSink * bsink, GstMiniObject * obj)
   sink->priv->avg_skew = -1;
   sink->next_sample = -1;
   sink->priv->eos_time = -1;
+  sink->priv->discont_time = -1;
 
   return GST_FLOW_OK;
 
@@ -1320,49 +1490,75 @@ flushing:
 }
 
 static gint64
-gst_base_audio_sink_get_alignment (GstBaseAudioSink * sink, GstClockTime sample_offset)
+gst_base_audio_sink_get_alignment (GstBaseAudioSink * sink,
+    GstClockTime sample_offset)
 {
   GstRingBuffer *ringbuf = sink->ringbuffer;
   gint64 align;
-  gint64 diff;
-  gint64 maxdrift;
+  gint64 sample_diff;
+  gint64 max_sample_diff;
   gint segdone = g_atomic_int_get (&ringbuf->segdone) - ringbuf->segbase;
   gint64 samples_done = segdone * ringbuf->samples_per_seg;
   gint64 headroom = sample_offset - samples_done;
   gboolean allow_align = TRUE;
+  gboolean discont = FALSE;
 
   /* now try to align the sample to the previous one, first see how big the
    * difference is. */
   if (sample_offset >= sink->next_sample)
-    diff = sample_offset - sink->next_sample;
+    sample_diff = sample_offset - sink->next_sample;
   else
-    diff = sink->next_sample - sample_offset;
+    sample_diff = sink->next_sample - sample_offset;
 
-  /* calculate the max allowed drift in units of samples. By default this is
-   * 20ms and should be anough to compensate for timestamp rounding errors. */
-  maxdrift = (ringbuf->spec.rate * sink->priv->drift_tolerance) / GST_MSECOND;
+  /* calculate the max allowed drift in units of samples. */
+  max_sample_diff = gst_util_uint64_scale_int (sink->priv->alignment_threshold,
+      ringbuf->spec.rate, GST_SECOND);
 
   /* calc align with previous sample */
   align = sink->next_sample - sample_offset;
 
   /* don't align if it means writing behind the read-segment */
-  if (diff > headroom && align < 0)
+  if (sample_diff > headroom && align < 0)
     allow_align = FALSE;
 
-  if (G_LIKELY (diff < maxdrift && allow_align)) {
+  if (G_UNLIKELY (sample_diff >= max_sample_diff)) {
+    /* wait before deciding to make a discontinuity */
+    if (sink->priv->discont_wait > 0) {
+      GstClockTime time = gst_util_uint64_scale_int (sample_offset,
+          GST_SECOND, ringbuf->spec.rate);
+      if (sink->priv->discont_time == -1) {
+        /* discont candidate */
+        sink->priv->discont_time = time;
+      } else if (time - sink->priv->discont_time >= sink->priv->discont_wait) {
+        /* discont_wait expired, discontinuity detected */
+        discont = TRUE;
+        sink->priv->discont_time = -1;
+      }
+    } else {
+      discont = TRUE;
+    }
+  } else if (G_UNLIKELY (sink->priv->discont_time != -1)) {
+    /* we have had a discont, but are now back on track! */
+    sink->priv->discont_time = -1;
+  }
+
+  if (G_LIKELY (!discont && allow_align)) {
     GST_DEBUG_OBJECT (sink,
         "align with prev sample, ABS (%" G_GINT64_FORMAT ") < %"
-        G_GINT64_FORMAT, align, maxdrift);
+        G_GINT64_FORMAT, align, max_sample_diff);
   } else {
+    gint64 diff_s G_GNUC_UNUSED;
+
     /* calculate sample diff in seconds for error message */
-    gint64 diff_s = gst_util_uint64_scale_int (diff, GST_SECOND, ringbuf->spec.rate);
+    diff_s =
+        gst_util_uint64_scale_int (sample_diff, GST_SECOND, ringbuf->spec.rate);
+
     /* timestamps drifted apart from previous samples too much, we need to
      * resync. We log this as an element warning. */
     GST_WARNING_OBJECT (sink,
         "Unexpected discontinuity in audio timestamps of "
         "%s%" GST_TIME_FORMAT ", resyncing",
-        sample_offset > sink->next_sample ? "+" : "-",
-        GST_TIME_ARGS (diff_s));
+        sample_offset > sink->next_sample ? "+" : "-", GST_TIME_ARGS (diff_s));
     align = 0;
   }
 
@@ -1375,6 +1571,7 @@ gst_base_audio_sink_render (GstBaseSink * bsink, GstBuffer * buf)
   guint64 in_offset;
   GstClockTime time, stop, render_start, render_stop, sample_offset;
   GstClockTimeDiff sync_offset, ts_offset;
+  GstBaseAudioSinkClass *bclass;
   GstBaseAudioSink *sink;
   GstRingBuffer *ringbuf;
   gint64 diff, align, ctime, cstop;
@@ -1390,8 +1587,10 @@ gst_base_audio_sink_render (GstBaseSink * bsink, GstBuffer * buf)
   GstFlowReturn ret;
   GstSegment clip_seg;
   gint64 time_offset;
+  GstBuffer *out = NULL;
 
   sink = GST_BASE_AUDIO_SINK (bsink);
+  bclass = GST_BASE_AUDIO_SINK_GET_CLASS (sink);
 
   ringbuf = sink->ringbuffer;
 
@@ -1415,6 +1614,17 @@ gst_base_audio_sink_render (GstBaseSink * bsink, GstBuffer * buf)
     GST_OBJECT_UNLOCK (sink);
   }
 
+  /* Before we go on, let's see if we need to payload the data. If yes, we also
+   * need to unref the output buffer before leaving. */
+  if (bclass->payload) {
+    out = bclass->payload (sink, buf);
+
+    if (!out)
+      goto payload_failed;
+
+    buf = out;
+  }
+
   bps = ringbuf->spec.bytes_per_sample;
 
   size = GST_BUFFER_SIZE (buf);
@@ -1591,6 +1801,12 @@ gst_base_audio_sink_render (GstBaseSink * bsink, GstBuffer * buf)
       render_stop = 0;
   }
 
+  /* in some clock slaving cases, all late samples end up at 0 first,
+   * and subsequent ones align with that until threshold exceeded,
+   * and then sync back to 0 and so on, so avoid that altogether */
+  if (G_UNLIKELY (render_start == 0 && render_stop == 0))
+    goto too_late;
+
   /* and bring the time to the rate corrected offset in the buffer */
   render_start = gst_util_uint64_scale_int (render_start,
       ringbuf->spec.rate, GST_SECOND);
@@ -1697,7 +1913,13 @@ no_sync:
     gst_ring_buffer_start (ringbuf);
   }
 
-  return GST_FLOW_OK;
+  ret = GST_FLOW_OK;
+
+done:
+  if (out)
+    gst_buffer_unref (out);
+
+  return ret;
 
   /* SPECIAL cases */
 out_of_segment:
@@ -1706,32 +1928,47 @@ out_of_segment:
         "dropping sample out of segment time %" GST_TIME_FORMAT ", start %"
         GST_TIME_FORMAT, GST_TIME_ARGS (time),
         GST_TIME_ARGS (bsink->segment.start));
-    return GST_FLOW_OK;
+    ret = GST_FLOW_OK;
+    goto done;
+  }
+too_late:
+  {
+    GST_DEBUG_OBJECT (sink, "dropping late sample");
+    ret = GST_FLOW_OK;
+    goto done;
   }
   /* ERRORS */
+payload_failed:
+  {
+    GST_ELEMENT_ERROR (sink, STREAM, FORMAT, (NULL), ("failed to payload."));
+    ret = GST_FLOW_ERROR;
+    goto done;
+  }
 wrong_state:
   {
     GST_DEBUG_OBJECT (sink, "ringbuffer not negotiated");
     GST_ELEMENT_ERROR (sink, STREAM, FORMAT, (NULL), ("sink not negotiated."));
-    return GST_FLOW_NOT_NEGOTIATED;
+    ret = GST_FLOW_NOT_NEGOTIATED;
+    goto done;
   }
 wrong_size:
   {
     GST_DEBUG_OBJECT (sink, "wrong size");
     GST_ELEMENT_ERROR (sink, STREAM, WRONG_TYPE,
         (NULL), ("sink received buffer of wrong size."));
-    return GST_FLOW_ERROR;
+    ret = GST_FLOW_ERROR;
+    goto done;
   }
 stopping:
   {
     GST_DEBUG_OBJECT (sink, "preroll got interrupted: %d (%s)", ret,
         gst_flow_get_name (ret));
-    return ret;
+    goto done;
   }
 sync_latency_failed:
   {
     GST_DEBUG_OBJECT (sink, "failed waiting for latency");
-    return ret;
+    goto done;
   }
 }
 
@@ -1887,7 +2124,7 @@ gst_base_audio_sink_async_play (GstBaseSink * basesink)
   sink->priv->sync_latency = TRUE;
   gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
   if (basesink->pad_mode == GST_ACTIVATE_PULL) {
-    /* we always start the ringbuffer in pull mode immediatly */
+    /* we always start the ringbuffer in pull mode immediately */
     gst_ring_buffer_start (sink->ringbuffer);
   }
 
@@ -1914,6 +2151,7 @@ gst_base_audio_sink_change_state (GstElement * element,
       sink->next_sample = -1;
       sink->priv->last_align = -1;
       sink->priv->eos_time = -1;
+      sink->priv->discont_time = -1;
       gst_ring_buffer_set_flushing (sink->ringbuffer, FALSE);
       gst_ring_buffer_may_start (sink->ringbuffer, FALSE);
 
@@ -1940,7 +2178,7 @@ gst_base_audio_sink_change_state (GstElement * element,
       gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
       if (GST_BASE_SINK_CAST (sink)->pad_mode == GST_ACTIVATE_PULL ||
           g_atomic_int_get (&sink->abidata.ABI.eos_rendering) || eos) {
-        /* we always start the ringbuffer in pull mode immediatly */
+        /* we always start the ringbuffer in pull mode immediately */
         /* sync rendering on eos needs running clock,
          * and others need running clock when finished rendering eos */
         gst_ring_buffer_start (sink->ringbuffer);
@@ -2008,7 +2246,7 @@ gst_base_audio_sink_change_state (GstElement * element,
   /* ERRORS */
 open_failed:
   {
-    /* subclass must post a meaningfull error message */
+    /* subclass must post a meaningful error message */
     GST_DEBUG_OBJECT (sink, "open failed");
     return GST_STATE_CHANGE_FAILURE;
   }
index 12a90f9..34a99c9 100644 (file)
@@ -141,6 +141,10 @@ struct _GstBaseAudioSink {
  * GstBaseAudioSinkClass:
  * @parent_class: the parent class.
  * @create_ringbuffer: create and return a #GstRingBuffer to write to.
+ * @payload: payload data in a format suitable to write to the sink. If no
+ *           payloading is required, returns a reffed copy of the original
+ *           buffer, else returns the payloaded buffer with all other metadata
+ *           copied. (Since: 0.10.36)
  *
  * #GstBaseAudioSink class. Override the vmethod to implement
  * functionality.
@@ -151,8 +155,12 @@ struct _GstBaseAudioSinkClass {
   /* subclass ringbuffer allocation */
   GstRingBuffer* (*create_ringbuffer)  (GstBaseAudioSink *sink);
 
+  /* subclass payloader */
+  GstBuffer*     (*payload)            (GstBaseAudioSink *sink,
+                                        GstBuffer        *buffer);
+
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
+  gpointer _gst_reserved[GST_PADDING - 1];
 };
 
 GType gst_base_audio_sink_get_type(void);
@@ -172,6 +180,16 @@ void       gst_base_audio_sink_set_drift_tolerance    (GstBaseAudioSink *sink,
                                                        gint64 drift_tolerance);
 gint64     gst_base_audio_sink_get_drift_tolerance    (GstBaseAudioSink *sink);
 
+void       gst_base_audio_sink_set_alignment_threshold (GstBaseAudioSink * sink,
+                                                        GstClockTime alignment_threshold);
+GstClockTime
+           gst_base_audio_sink_get_alignment_threshold (GstBaseAudioSink * sink);
+
+void       gst_base_audio_sink_set_discont_wait       (GstBaseAudioSink * sink,
+                                                       GstClockTime discont_wait);
+GstClockTime
+           gst_base_audio_sink_get_discont_wait       (GstBaseAudioSink * sink);
+
 G_END_DECLS
 
 #endif /* __GST_BASE_AUDIO_SINK_H__ */
index 7c7ec93..a6d142b 100644 (file)
@@ -534,14 +534,17 @@ gst_base_audio_src_fixate (GstBaseSrc * bsrc, GstCaps * caps)
   /* fields for all formats */
   gst_structure_fixate_field_nearest_int (s, "rate", 44100);
   gst_structure_fixate_field_nearest_int (s, "channels", 2);
-  gst_structure_fixate_field_nearest_int (s, "width", 16);
-
-  /* fields for int */
-  if (gst_structure_has_field (s, "depth")) {
-    gst_structure_get_int (s, "width", &width);
-    /* round width to nearest multiple of 8 for the depth */
-    depth = GST_ROUND_UP_8 (width);
-    gst_structure_fixate_field_nearest_int (s, "depth", depth);
+
+  /* fields for int and/or float, but maybe not others like alaw/mulaw */
+  if (gst_structure_has_field (s, "width")) {
+    gst_structure_fixate_field_nearest_int (s, "width", 16);
+
+    if (gst_structure_has_field (s, "depth")) {
+      gst_structure_get_int (s, "width", &width);
+      /* round width to nearest multiple of 8 for the depth */
+      depth = GST_ROUND_UP_8 (width);
+      gst_structure_fixate_field_nearest_int (s, "depth", depth);
+    }
   }
   if (gst_structure_has_field (s, "signed"))
     gst_structure_fixate_field_boolean (s, "signed", TRUE);
@@ -561,8 +564,7 @@ gst_base_audio_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps)
   spec->latency_time = src->latency_time;
 
   GST_OBJECT_LOCK (src);
-  if (!gst_ring_buffer_parse_caps (spec, caps))
-  {
+  if (!gst_ring_buffer_parse_caps (spec, caps)) {
     GST_OBJECT_UNLOCK (src);
     goto parse_error;
   }
@@ -893,7 +895,7 @@ gst_base_audio_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
         running_time_sample =
             gst_util_uint64_scale_int (running_time, spec->rate, GST_SECOND);
 
-        /* the segmentnr corrensponding to running_time, round down */
+        /* the segmentnr corresponding to running_time, round down */
         running_time_segment = running_time_sample / sps;
 
         /* the segment currently read from the ringbuffer */
@@ -919,7 +921,7 @@ gst_base_audio_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
          *
          * 1. We are more than the length of the ringbuffer behind.
          *    The length of the ringbuffer then gets to dictate
-         *    the threshold for what is concidered "too late"
+         *    the threshold for what is considered "too late"
          *
          * 2. If this is our first buffer.
          *    We know that we should catch up to running_time
@@ -1150,7 +1152,7 @@ gst_base_audio_src_change_state (GstElement * element,
   /* ERRORS */
 open_failed:
   {
-    /* subclass must post a meaningfull error message */
+    /* subclass must post a meaningful error message */
     GST_DEBUG_OBJECT (src, "open failed");
     return GST_STATE_CHANGE_FAILURE;
   }
index 87d1ce2..5069304 100644 (file)
@@ -43,6 +43,8 @@
 
 #include "gstringbuffer.h"
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (gst_ring_buffer_debug);
 #define GST_CAT_DEFAULT gst_ring_buffer_debug
 
@@ -327,7 +329,7 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
   /* we have to differentiate between int and float formats */
   mimetype = gst_structure_get_name (structure);
 
-  if (!strncmp (mimetype, "audio/x-raw-int", 15)) {
+  if (g_str_equal (mimetype, "audio/x-raw-int")) {
     gint endianness;
     const FormatDef *def;
     gint j, bytes;
@@ -367,7 +369,7 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
         spec->silence_sample[i * bytes + j] = def->silence[j];
       }
     }
-  } else if (!strncmp (mimetype, "audio/x-raw-float", 17)) {
+  } else if (g_str_equal (mimetype, "audio/x-raw-float")) {
 
     spec->type = GST_BUFTYPE_FLOAT;
 
@@ -392,7 +394,7 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
     }
     /* float silence is all zeros.. */
     memset (spec->silence_sample, 0, 32);
-  } else if (!strncmp (mimetype, "audio/x-alaw", 12)) {
+  } else if (g_str_equal (mimetype, "audio/x-alaw")) {
     /* extract the needed information from the cap */
     if (!(gst_structure_get_int (structure, "rate", &spec->rate) &&
             gst_structure_get_int (structure, "channels", &spec->channels)))
@@ -404,7 +406,7 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
     spec->depth = 8;
     for (i = 0; i < spec->channels; i++)
       spec->silence_sample[i] = 0xd5;
-  } else if (!strncmp (mimetype, "audio/x-mulaw", 13)) {
+  } else if (g_str_equal (mimetype, "audio/x-mulaw")) {
     /* extract the needed information from the cap */
     if (!(gst_structure_get_int (structure, "rate", &spec->rate) &&
             gst_structure_get_int (structure, "channels", &spec->channels)))
@@ -416,7 +418,7 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
     spec->depth = 8;
     for (i = 0; i < spec->channels; i++)
       spec->silence_sample[i] = 0xff;
-  } else if (!strncmp (mimetype, "audio/x-iec958", 14)) {
+  } else if (g_str_equal (mimetype, "audio/x-iec958")) {
     /* extract the needed information from the cap */
     if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
       goto parse_error;
@@ -426,7 +428,7 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
     spec->width = 16;
     spec->depth = 16;
     spec->channels = 2;
-  } else if (!strncmp (mimetype, "audio/x-ac3", 11)) {
+  } else if (g_str_equal (mimetype, "audio/x-ac3")) {
     /* extract the needed information from the cap */
     if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
       goto parse_error;
@@ -436,6 +438,39 @@ gst_ring_buffer_parse_caps (GstRingBufferSpec * spec, GstCaps * caps)
     spec->width = 16;
     spec->depth = 16;
     spec->channels = 2;
+  } else if (g_str_equal (mimetype, "audio/x-eac3")) {
+    /* extract the needed information from the cap */
+    if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+      goto parse_error;
+
+    spec->type = GST_BUFTYPE_EAC3;
+    spec->format = GST_EAC3;
+    spec->width = 64;
+    spec->depth = 64;
+    spec->channels = 2;
+  } else if (g_str_equal (mimetype, "audio/x-dts")) {
+    /* extract the needed information from the cap */
+    if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+      goto parse_error;
+
+    spec->type = GST_BUFTYPE_DTS;
+    spec->format = GST_DTS;
+    spec->width = 16;
+    spec->depth = 16;
+    spec->channels = 2;
+  } else if (g_str_equal (mimetype, "audio/mpeg") &&
+      gst_structure_get_int (structure, "mpegaudioversion", &i) &&
+      (i == 1 || i == 2)) {
+    /* Now we know this is MPEG-1 or MPEG-2 (non AAC) */
+    /* extract the needed information from the cap */
+    if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+      goto parse_error;
+
+    spec->type = GST_BUFTYPE_MPEG;
+    spec->format = GST_MPEG;
+    spec->width = 16;
+    spec->depth = 16;
+    spec->channels = 2;
   } else {
     goto parse_error;
   }
@@ -1738,7 +1773,7 @@ not_started:
  *
  * Commit @in_samples samples pointed to by @data to the ringbuffer @buf. 
  *
- * @in_samples and @out_samples define the rate conversion to perform on the the
+ * @in_samples and @out_samples define the rate conversion to perform on the
  * samples in @data. For negative rates, @out_samples must be negative and
  * @in_samples positive.
  *
index 1384d38..b09863c 100644 (file)
@@ -88,12 +88,14 @@ typedef enum {
  * @GST_BUFTYPE_MU_LAW: samples in mulaw
  * @GST_BUFTYPE_A_LAW: samples in alaw
  * @GST_BUFTYPE_IMA_ADPCM: samples in ima adpcm
- * @GST_BUFTYPE_MPEG: samples in mpeg audio format
+ * @GST_BUFTYPE_MPEG: samples in mpeg audio (but not AAC) format
  * @GST_BUFTYPE_GSM: samples in gsm format
  * @GST_BUFTYPE_IEC958: samples in IEC958 frames (e.g. AC3)
  * @GST_BUFTYPE_AC3: samples in AC3 format
  * @GST_BUFTYPE_EAC3: samples in EAC3 format
  * @GST_BUFTYPE_DTS: samples in DTS format
+ * @GST_BUFTYPE_MPEG2_AAC: samples in MPEG-2 AAC format
+ * @GST_BUFTYPE_MPEG4_AAC: samples in MPEG-4 AAC format
  *
  * The format of the samples in the ringbuffer.
  */
@@ -109,9 +111,58 @@ typedef enum
   GST_BUFTYPE_IEC958,
   GST_BUFTYPE_AC3,
   GST_BUFTYPE_EAC3,
-  GST_BUFTYPE_DTS
+  GST_BUFTYPE_DTS,
+  GST_BUFTYPE_MPEG2_AAC,
+  GST_BUFTYPE_MPEG4_AAC,
 } GstBufferFormatType;
 
+/**
+ * GstBufferFormat:
+ * @GST_UNKNOWN: unspecified
+ * @GST_S8: integer signed 8 bit
+ * @GST_U8: integer unsigned 8 bit
+ * @GST_S16_LE: integer signed 16 bit little endian
+ * @GST_S16_BE: integer signed 16 bit big endian
+ * @GST_U16_LE: integer unsigned 16 bit little endian
+ * @GST_U16_BE: integer unsigned 16 bit big endian
+ * @GST_S24_LE: integer signed 24 bit little endian
+ * @GST_S24_BE: integer signed 24 bit big endian
+ * @GST_U24_LE: integer unsigned 24 bit little endian
+ * @GST_U24_BE: integer unsigned 24 bit big endian
+ * @GST_S32_LE: integer signed 32 bit little endian
+ * @GST_S32_BE: integer signed 32 bit big endian
+ * @GST_U32_LE: integer unsigned 32 bit little endian
+ * @GST_U32_BE: integer unsigned 32 bit big endian
+ * @GST_S24_3LE: integer signed 24 bit little endian packed in 3 bytes
+ * @GST_S24_3BE: integer signed 24 bit big endian packed in 3 bytes
+ * @GST_U24_3LE: integer unsigned 24 bit little endian packed in 3 bytes
+ * @GST_U24_3BE: integer unsigned 24 bit big endian packed in 3 bytes
+ * @GST_S20_3LE: integer signed 20 bit little endian packed in 3 bytes
+ * @GST_S20_3BE: integer signed 20 bit big endian packed in 3 bytes
+ * @GST_U20_3LE: integer unsigned 20 bit little endian packed in 3 bytes
+ * @GST_U20_3BE: integer unsigned 20 bit big endian packed in 3 bytes
+ * @GST_S18_3LE: integer signed 18 bit little endian packed in 3 bytes
+ * @GST_S18_3BE: integer signed 18 bit big endian packed in 3 bytes
+ * @GST_U18_3LE: integer unsigned 18 bit little endian packed in 3 bytes
+ * @GST_U18_3BE: integer unsigned 18 bit big endian packed in 3 bytes
+ * @GST_FLOAT32_LE: floating 32 bit little endian
+ * @GST_FLOAT32_BE: floating 32 bit big endian
+ * @GST_FLOAT64_LE: floating 64 bit little endian
+ * @GST_FLOAT64_BE: floating 64 bit big endian
+ * @GST_MU_LAW: mu-law
+ * @GST_A_LAW: a-law
+ * @GST_IMA_ADPCM: ima adpcm
+ * @GST_MPEG: mpeg audio (but not aac)
+ * @GST_GSM: gsm
+ * @GST_IEC958: IEC958 frames
+ * @GST_AC3: ac3
+ * @GST_EAC3: eac3
+ * @GST_DTS: dts
+ * @GST_MPEG2_AAC: mpeg-2 aac
+ * @GST_MPEG4_AAC: mpeg-4 aac
+ *
+ * The detailed format of the samples in the ringbuffer.
+ */
 typedef enum
 {
   GST_UNKNOWN,
@@ -161,7 +212,9 @@ typedef enum
   GST_IEC958,
   GST_AC3,
   GST_EAC3,
-  GST_DTS
+  GST_DTS,
+  GST_MPEG2_AAC,
+  GST_MPEG4_AAC,
 } GstBufferFormat;
 
 /**
index bd26f1c..6f6ea98 100644 (file)
@@ -292,6 +292,32 @@ gst_audio_get_channel_positions (GstStructure * str)
   return pos;
 }
 
+void priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info);
+
+void
+priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info)
+{
+  guint channels, i;
+
+  g_assert (info != NULL);
+
+  channels = GST_AUDIO_INFO_CHANNELS (info);
+
+  g_assert (channels > 0);
+
+  if (channels <= NUM_DEF_CHANS) {
+    /* just return some default channel layout if we have one */
+    for (i = 0; i < channels; ++i)
+      info->position[i] = default_positions[channels - 1][i];
+  } else {
+    /* for many many channels, the positions are always NONE */
+    for (i = 0; i < G_N_ELEMENTS (info->position); i++)
+      info->position[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
+  }
+
+  info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS;
+}
+
 /**
  * gst_audio_set_channel_positions:
  * @str: A #GstStructure to set channel positions on.
index 2d9685d..8bf92d7 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
-#ifndef __GST_AUDIO_MULTICHANNEL_H__
-#define __GST_AUDIO_MULTICHANNEL_H__
-
 #include <gst/audio/audio.h>
 #include <gst/audio/audio-enumtypes.h>
 
+#ifndef __GST_AUDIO_MULTICHANNEL_H__
+#define __GST_AUDIO_MULTICHANNEL_H__
+
 G_BEGIN_DECLS
 
 /**
@@ -42,6 +42,9 @@ G_BEGIN_DECLS
  * @GST_AUDIO_CHANNEL_POSITION_NONE: used for position-less channels, e.g.
  *     from a sound card that records 1024 channels; mutually exclusive with
  *     any other channel position
+ * @GST_AUDIO_CHANNEL_POSITION_INVALID: invalid position
+ *
+ * Audio channel positions.
  */
 typedef enum {
   GST_AUDIO_CHANNEL_POSITION_INVALID = -1,
@@ -74,6 +77,7 @@ typedef enum {
    * are defined or all positions are undefined, but can't mix'n'match  */
   GST_AUDIO_CHANNEL_POSITION_NONE,
 
+  /*< private >*/
   /* don't use - counter */
   GST_AUDIO_CHANNEL_POSITION_NUM
 } GstAudioChannelPosition;
@@ -100,7 +104,7 @@ void    gst_audio_set_caps_channel_positions_list
                                          gint          num_positions);
 
 /* Custom fixate function. Elements that implement some sort of
- * channel conversion algorhithm should use this function for
+ * channel conversion algorithm should use this function for
  * fixating on GstAudioChannelPosition properties. It will take
  * care of equal channel positioning (left/right). Caller g_free()s
  * the return value. The input properties may be (and are supposed
index 35987d3..c4da1ce 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" \
        "$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -113,8 +120,8 @@ am_libgstcdda_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo
 libgstcdda_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstcdda_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstcdda_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -130,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstcdda_@GST_MAJORMINOR@_la_SOURCES)
 DIST_SOURCES = $(libgstcdda_@GST_MAJORMINOR@_la_SOURCES)
@@ -212,6 +219,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -272,6 +280,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -281,9 +290,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -306,6 +318,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -378,10 +391,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -415,7 +431,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -514,7 +529,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstcdda-@GST_MAJORMINOR@.la: $(libgstcdda_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcdda_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstcdda-@GST_MAJORMINOR@.la: $(libgstcdda_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcdda_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstcdda_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstcdda_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstcdda_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcdda_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -528,34 +543,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo: gstcddabasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdda_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo -MD -MP -MF $(DEPDIR)/libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.Tpo -c -o libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo `test -f 'gstcddabasesrc.c' || echo '$(srcdir)/'`gstcddabasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.Tpo $(DEPDIR)/libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstcddabasesrc.c' object='libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstcddabasesrc.c' object='libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdda_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo `test -f 'gstcddabasesrc.c' || echo '$(srcdir)/'`gstcddabasesrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdda_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo `test -f 'gstcddabasesrc.c' || echo '$(srcdir)/'`gstcddabasesrc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -579,9 +590,7 @@ uninstall-libgstcdda_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstcdda_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcdda_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -682,10 +691,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index e753a56..06036db 100644 (file)
@@ -181,8 +181,8 @@ gst_cdda_base_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_cdda_base_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_cdda_base_src_src_template);
 
   /* our very own formats */
   track_format = gst_format_register ("track", "CD track");
index b4c6f8e..b754e43 100644 (file)
@@ -115,6 +115,17 @@ struct _GstCddaBaseSrc {
   gpointer              _gst_reserved2[GST_PADDING/2];
 };
 
+/**
+ * GstCddaBaseSrcClass:
+ * @pushsrc_class: the parent class
+ * @open: opening the device
+ * @close: closing the device
+ * @read_sector: reading a sector
+ * @get_default_device: getting the default device
+ * @probe_devices: probing possible devices
+ *
+ * Cdda source base class.
+ */
 struct _GstCddaBaseSrcClass {
   GstPushSrcClass pushsrc_class;
 
index 5eec9b5..3301da4 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -103,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)"
@@ -126,8 +133,8 @@ am_libgstfft_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo
 libgstfft_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstfft_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstfft_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -143,21 +150,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstfft_@GST_MAJORMINOR@_la_SOURCES)
 DIST_SOURCES = $(libgstfft_@GST_MAJORMINOR@_la_SOURCES)
@@ -227,6 +234,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -287,6 +295,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -296,9 +305,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -321,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -393,10 +406,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -430,7 +446,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -570,7 +585,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstfft-@GST_MAJORMINOR@.la: $(libgstfft_@GST_MAJORMINOR@_la_OBJECTS) $(libgstfft_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstfft-@GST_MAJORMINOR@.la: $(libgstfft_@GST_MAJORMINOR@_la_OBJECTS) $(libgstfft_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstfft_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstfft_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstfft_@GST_MAJORMINOR@_la_OBJECTS) $(libgstfft_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -596,130 +611,114 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstfft_@GST_MAJORMINOR@_la-gstfft.lo: gstfft.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstfft.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfft.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstfft.lo `test -f 'gstfft.c' || echo '$(srcdir)/'`gstfft.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfft.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfft.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstfft.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfft.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstfft.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfft.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfft.lo `test -f 'gstfft.c' || echo '$(srcdir)/'`gstfft.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfft.lo `test -f 'gstfft.c' || echo '$(srcdir)/'`gstfft.c
 
 libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo: gstffts16.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts16.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo `test -f 'gstffts16.c' || echo '$(srcdir)/'`gstffts16.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts16.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts16.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstffts16.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstffts16.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo `test -f 'gstffts16.c' || echo '$(srcdir)/'`gstffts16.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo `test -f 'gstffts16.c' || echo '$(srcdir)/'`gstffts16.c
 
 libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo: gstffts32.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo `test -f 'gstffts32.c' || echo '$(srcdir)/'`gstffts32.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts32.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstffts32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstffts32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo `test -f 'gstffts32.c' || echo '$(srcdir)/'`gstffts32.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo `test -f 'gstffts32.c' || echo '$(srcdir)/'`gstffts32.c
 
 libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo: gstfftf32.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo `test -f 'gstfftf32.c' || echo '$(srcdir)/'`gstfftf32.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf32.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstfftf32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstfftf32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo `test -f 'gstfftf32.c' || echo '$(srcdir)/'`gstfftf32.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo `test -f 'gstfftf32.c' || echo '$(srcdir)/'`gstfftf32.c
 
 libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo: gstfftf64.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf64.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo `test -f 'gstfftf64.c' || echo '$(srcdir)/'`gstfftf64.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf64.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf64.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstfftf64.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstfftf64.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo `test -f 'gstfftf64.c' || echo '$(srcdir)/'`gstfftf64.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo `test -f 'gstfftf64.c' || echo '$(srcdir)/'`gstfftf64.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo: kiss_fft_s16.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo `test -f 'kiss_fft_s16.c' || echo '$(srcdir)/'`kiss_fft_s16.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fft_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fft_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo `test -f 'kiss_fft_s16.c' || echo '$(srcdir)/'`kiss_fft_s16.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo `test -f 'kiss_fft_s16.c' || echo '$(srcdir)/'`kiss_fft_s16.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo: kiss_fft_s32.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo `test -f 'kiss_fft_s32.c' || echo '$(srcdir)/'`kiss_fft_s32.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fft_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fft_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo `test -f 'kiss_fft_s32.c' || echo '$(srcdir)/'`kiss_fft_s32.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo `test -f 'kiss_fft_s32.c' || echo '$(srcdir)/'`kiss_fft_s32.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo: kiss_fft_f32.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo `test -f 'kiss_fft_f32.c' || echo '$(srcdir)/'`kiss_fft_f32.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fft_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fft_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo `test -f 'kiss_fft_f32.c' || echo '$(srcdir)/'`kiss_fft_f32.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo `test -f 'kiss_fft_f32.c' || echo '$(srcdir)/'`kiss_fft_f32.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo: kiss_fft_f64.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo `test -f 'kiss_fft_f64.c' || echo '$(srcdir)/'`kiss_fft_f64.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fft_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fft_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo `test -f 'kiss_fft_f64.c' || echo '$(srcdir)/'`kiss_fft_f64.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo `test -f 'kiss_fft_f64.c' || echo '$(srcdir)/'`kiss_fft_f64.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo: kiss_fftr_s16.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo `test -f 'kiss_fftr_s16.c' || echo '$(srcdir)/'`kiss_fftr_s16.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fftr_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fftr_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo `test -f 'kiss_fftr_s16.c' || echo '$(srcdir)/'`kiss_fftr_s16.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo `test -f 'kiss_fftr_s16.c' || echo '$(srcdir)/'`kiss_fftr_s16.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo: kiss_fftr_s32.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo `test -f 'kiss_fftr_s32.c' || echo '$(srcdir)/'`kiss_fftr_s32.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fftr_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fftr_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo `test -f 'kiss_fftr_s32.c' || echo '$(srcdir)/'`kiss_fftr_s32.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo `test -f 'kiss_fftr_s32.c' || echo '$(srcdir)/'`kiss_fftr_s32.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo: kiss_fftr_f32.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo `test -f 'kiss_fftr_f32.c' || echo '$(srcdir)/'`kiss_fftr_f32.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fftr_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fftr_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo `test -f 'kiss_fftr_f32.c' || echo '$(srcdir)/'`kiss_fftr_f32.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo `test -f 'kiss_fftr_f32.c' || echo '$(srcdir)/'`kiss_fftr_f32.c
 
 libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo: kiss_fftr_f64.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo `test -f 'kiss_fftr_f64.c' || echo '$(srcdir)/'`kiss_fftr_f64.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='kiss_fftr_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='kiss_fftr_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo `test -f 'kiss_fftr_f64.c' || echo '$(srcdir)/'`kiss_fftr_f64.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo `test -f 'kiss_fftr_f64.c' || echo '$(srcdir)/'`kiss_fftr_f64.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -743,9 +742,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -763,9 +760,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstfft_@GST_MAJORMINOR@_includeHEADERS: $(libgstfft_@GST_MAJORMINOR@_include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstfft_@GST_MAJORMINOR@_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)"
@@ -783,9 +778,7 @@ uninstall-libgstfft_@GST_MAJORMINOR@_includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstfft_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstfft_@GST_MAJORMINOR@_includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -886,10 +879,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index fa5defe..9071b1c 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef __GST_FFT_H__
 #define __GST_FFT_H__
 
+G_BEGIN_DECLS
+
 /**
  * GstFFTWindow:
  * @GST_FFT_WINDOW_RECTANGULAR: Rectangular window
@@ -46,4 +48,6 @@ typedef enum
 
 gint gst_fft_next_fast_length (gint n) G_GNUC_CONST;
 
+G_END_DECLS
+
 #endif /* __GST_FFT_H__ */
index 4facb35..4f78080 100644 (file)
@@ -31,7 +31,7 @@
  *
  * #GstFFTF32 provides a FFT implementation and related functions for
  * 32 bit float samples. To use this call gst_fft_f32_new() for
- * allocating a #GstFFTF32 instance with the appropiate parameters and
+ * allocating a #GstFFTF32 instance with the appropriate parameters and
  * then call gst_fft_f32_fft() or gst_fft_f32_inverse_fft() to perform the
  * FFT or inverse FFT on a buffer of samples.
  *
@@ -186,11 +186,11 @@ gst_fft_f32_window (GstFFTF32 * self, gfloat * timedata, GstFFTWindow window)
       break;
     case GST_FFT_WINDOW_HAMMING:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_HANN:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_BARTLETT:
       for (i = 0; i < len; i++)
index 3b56b48..2d634f8 100644 (file)
@@ -25,6 +25,8 @@
 
 #include "gstfft.h"
 
+G_BEGIN_DECLS
+
 typedef struct _GstFFTF32 GstFFTF32;
 typedef struct _GstFFTF32Complex GstFFTF32Complex;
 
@@ -72,4 +74,6 @@ void gst_fft_f32_free (GstFFTF32 *self);
 
 void gst_fft_f32_window (GstFFTF32 *self, gfloat *timedata, GstFFTWindow window);
 
+G_END_DECLS
+
 #endif /* __GST_FFT_F32_H__ */
index 5291f62..cdf7d4c 100644 (file)
@@ -31,7 +31,7 @@
  *
  * #GstFFTF64 provides a FFT implementation and related functions for
  * 64 bit float samples. To use this call gst_fft_f64_new() for
- * allocating a #GstFFTF64 instance with the appropiate parameters and
+ * allocating a #GstFFTF64 instance with the appropriate parameters and
  * then call gst_fft_f64_fft() or gst_fft_f64_inverse_fft() to perform the
  * FFT or inverse FFT on a buffer of samples.
  *
@@ -186,11 +186,11 @@ gst_fft_f64_window (GstFFTF64 * self, gdouble * timedata, GstFFTWindow window)
       break;
     case GST_FFT_WINDOW_HAMMING:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_HANN:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_BARTLETT:
       for (i = 0; i < len; i++)
index 8ebbee4..66a830a 100644 (file)
@@ -25,6 +25,8 @@
 
 #include "gstfft.h"
 
+G_BEGIN_DECLS
+
 typedef struct _GstFFTF64 GstFFTF64;
 typedef struct _GstFFTF64Complex GstFFTF64Complex;
 
@@ -72,4 +74,6 @@ void gst_fft_f64_free (GstFFTF64 *self);
 
 void gst_fft_f64_window (GstFFTF64 *self, gdouble *timedata, GstFFTWindow window);
 
+G_END_DECLS
+
 #endif /* __GST_FFT_F64_H__ */
index 53135d8..a204aaa 100644 (file)
@@ -31,7 +31,7 @@
  *
  * #GstFFTS16 provides a FFT implementation and related functions for
  * signed 16 bit integer samples. To use this call gst_fft_s16_new() for
- * allocating a #GstFFTS16 instance with the appropiate parameters and
+ * allocating a #GstFFTS16 instance with the appropriate parameters and
  * then call gst_fft_s16_fft() or gst_fft_s16_inverse_fft() to perform the
  * FFT or inverse FFT on a buffer of samples.
  *
@@ -186,11 +186,11 @@ gst_fft_s16_window (GstFFTS16 * self, gint16 * timedata, GstFFTWindow window)
       break;
     case GST_FFT_WINDOW_HAMMING:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_HANN:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_BARTLETT:
       for (i = 0; i < len; i++)
index 9a752f1..cae969b 100644 (file)
@@ -25,6 +25,8 @@
 
 #include "gstfft.h"
 
+G_BEGIN_DECLS
+
 typedef struct _GstFFTS16 GstFFTS16;
 typedef struct _GstFFTS16Complex GstFFTS16Complex;
 
@@ -71,4 +73,7 @@ void gst_fft_s16_inverse_fft (GstFFTS16 *self, const GstFFTS16Complex *freqdata,
 void gst_fft_s16_free (GstFFTS16 *self);
 
 void gst_fft_s16_window (GstFFTS16 *self, gint16 *timedata, GstFFTWindow window);
+
+G_END_DECLS
+
 #endif /* __GST_FFT_S16_H__ */
index 2581318..6fc864b 100644 (file)
@@ -31,7 +31,7 @@
  *
  * #GstFFTS32 provides a FFT implementation and related functions for
  * signed 32 bit integer samples. To use this call gst_fft_s32_new() for
- * allocating a #GstFFTS32 instance with the appropiate parameters and
+ * allocating a #GstFFTS32 instance with the appropriate parameters and
  * then call gst_fft_s32_fft() or gst_fft_s32_inverse_fft() to perform the
  * FFT or inverse FFT on a buffer of samples.
  *
@@ -185,11 +185,11 @@ gst_fft_s32_window (GstFFTS32 * self, gint32 * timedata, GstFFTWindow window)
       break;
     case GST_FFT_WINDOW_HAMMING:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_HANN:
       for (i = 0; i < len; i++)
-        timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+        timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
       break;
     case GST_FFT_WINDOW_BARTLETT:
       for (i = 0; i < len; i++)
index fd3b279..281434b 100644 (file)
@@ -25,6 +25,8 @@
 
 #include "gstfft.h"
 
+G_BEGIN_DECLS
+
 typedef struct _GstFFTS32 GstFFTS32;
 typedef struct _GstFFTS32Complex GstFFTS32Complex;
 
@@ -72,4 +74,6 @@ void gst_fft_s32_free (GstFFTS32 *self);
 
 void gst_fft_s32_window (GstFFTS32 *self, gint32 *timedata, GstFFTWindow window);
 
+G_END_DECLS
+
 #endif /* __GST_FFT_S32_H__ */
index 62e0c85..b4229bb 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -80,11 +81,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -109,6 +110,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(floatcastincludedir)"
 HEADERS = $(floatcastinclude_HEADERS)
 ETAGS = etags
@@ -174,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -234,6 +242,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -243,9 +252,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -268,6 +280,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -340,10 +353,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -377,7 +393,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -456,9 +471,7 @@ uninstall-floatcastincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(floatcastinclude_HEADERS)'; test -n "$(floatcastincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(floatcastincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(floatcastincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(floatcastincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -559,10 +572,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h
new file mode 100644 (file)
index 0000000..b9248e6
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * glib-compat.c
+ * Functions copied from glib 2.10
+ *
+ * Copyright 2005 David Schleef <ds@schleef.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GLIB_COMPAT_PRIVATE_H__
+#define __GLIB_COMPAT_PRIVATE_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#if !GLIB_CHECK_VERSION(2,25,0)
+
+#if defined (_MSC_VER) && !defined(_WIN64)
+typedef struct _stat32 GStatBuf;
+#else
+typedef struct stat GStatBuf;
+#endif
+
+#endif
+
+#if GLIB_CHECK_VERSION(2,26,0)
+#define GLIB_HAS_GDATETIME
+#endif
+
+/* See bug #651514 */
+#if GLIB_CHECK_VERSION(2,29,5)
+#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \
+    g_atomic_pointer_compare_and_exchange ((a),(b),(c))
+#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \
+    g_atomic_int_compare_and_exchange ((a),(b),(c))
+#else
+#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \
+    g_atomic_pointer_compare_and_exchange ((volatile gpointer *)(a),(b),(c))
+#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \
+    g_atomic_int_compare_and_exchange ((volatile int *)(a),(b),(c))
+#endif
+
+/* See bug #651514 */
+#if GLIB_CHECK_VERSION(2,29,5)
+#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_add ((a),(b))
+#else
+#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_exchange_and_add ((a),(b))
+#endif
+
+/* copies */
+
+#if GLIB_CHECK_VERSION (2, 31, 0)
+#define g_mutex_new gst_g_mutex_new
+static inline GMutex *
+gst_g_mutex_new (void)
+{
+  GMutex *mutex = g_slice_new (GMutex);
+  g_mutex_init (mutex);
+  return mutex;
+}
+#define g_mutex_free gst_g_mutex_free
+static inline void
+gst_g_mutex_free (GMutex *mutex)
+{
+  g_mutex_clear (mutex);
+  g_slice_free (GMutex, mutex);
+}
+#define g_static_rec_mutex_init gst_g_static_rec_mutex_init
+static inline void
+gst_g_static_rec_mutex_init (GStaticRecMutex *mutex)
+{
+  static const GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT;
+
+  *mutex = init_mutex;
+}
+#define g_cond_new gst_g_cond_new
+static inline GCond *
+gst_g_cond_new (void)
+{
+  GCond *cond = g_slice_new (GCond);
+  g_cond_init (cond);
+  return cond;
+}
+#define g_cond_free gst_g_cond_free
+static inline void
+gst_g_cond_free (GCond *cond)
+{
+  g_cond_clear (cond);
+  g_slice_free (GCond, cond);
+}
+#define g_cond_timed_wait gst_g_cond_timed_wait
+static inline gboolean
+gst_g_cond_timed_wait (GCond *cond, GMutex *mutex, GTimeVal *abs_time)
+{
+  gint64 end_time;
+
+  if (abs_time == NULL) {
+    g_cond_wait (cond, mutex);
+    return TRUE;
+  }
+
+  end_time = abs_time->tv_sec;
+  end_time *= 1000000;
+  end_time += abs_time->tv_usec;
+
+  /* would be nice if we had clock_rtoffset, but that didn't seem to
+   * make it into the kernel yet...
+   */
+  /* if CLOCK_MONOTONIC is not defined then g_get_montonic_time() and
+   * g_get_real_time() are returning the same clock and we'd add ~0
+   */
+  end_time += g_get_monotonic_time () - g_get_real_time ();
+  return g_cond_wait_until (cond, mutex, end_time);
+}
+#endif /* GLIB_CHECK_VERSION (2, 31, 0) */
+
+/* adaptations */
+
+G_END_DECLS
+
+#endif
index 753f0bd..84ff57b 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -67,6 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -112,6 +113,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstinterfacesincludedir)" \
@@ -123,8 +130,6 @@ libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES =  \
 am_libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo \
        libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo \
-       libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo \
-       libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo \
        libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo \
        libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo \
        libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo \
@@ -144,8 +149,8 @@ nodist_libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS =  \
 libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) \
        $(nodist_libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstinterfaces_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
        --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -162,21 +167,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES) \
        $(nodist_libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES)
@@ -247,6 +252,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -307,6 +313,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -316,9 +323,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -341,6 +351,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -413,10 +424,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -450,7 +464,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -478,8 +491,6 @@ libgstinterfacesincludedir = \
 headers_interfaces = \
        colorbalance.h          \
        colorbalancechannel.h   \
-       cameracontrol.h         \
-       cameracontrolchannel.h  \
        mixer.h                 \
        mixeroptions.h          \
        mixertrack.h            \
@@ -515,8 +526,6 @@ nodist_libgstinterfacesinclude_HEADERS = \
 libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES = \
        colorbalance.c          \
        colorbalancechannel.c   \
-       cameracontrol.c         \
-       cameracontrolchannel.c  \
        mixer.c                 \
        mixeroptions.c          \
        mixertrack.c            \
@@ -589,6 +598,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -629,7 +639,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstinterfaces-@GST_MAJORMINOR@.la: $(libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) $(libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstinterfaces-@GST_MAJORMINOR@.la: $(libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) $(libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstinterfaces_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) $(libgstinterfaces_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -638,8 +648,6 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Plo@am__quote@
@@ -659,162 +667,128 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo: colorbalance.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo `test -f 'colorbalance.c' || echo '$(srcdir)/'`colorbalance.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='colorbalance.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='colorbalance.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo `test -f 'colorbalance.c' || echo '$(srcdir)/'`colorbalance.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo `test -f 'colorbalance.c' || echo '$(srcdir)/'`colorbalance.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo: colorbalancechannel.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='colorbalancechannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='colorbalancechannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
-
-libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo: cameracontrol.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo `test -f 'cameracontrol.c' || echo '$(srcdir)/'`cameracontrol.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='cameracontrol.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo `test -f 'cameracontrol.c' || echo '$(srcdir)/'`cameracontrol.c
-
-libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo: cameracontrolchannel.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo `test -f 'cameracontrolchannel.c' || echo '$(srcdir)/'`cameracontrolchannel.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='cameracontrolchannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo `test -f 'cameracontrolchannel.c' || echo '$(srcdir)/'`cameracontrolchannel.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo: mixer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixer.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixer.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mixer.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mixer.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo: mixeroptions.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mixeroptions.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mixeroptions.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo: mixertrack.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mixertrack.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mixertrack.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo: navigation.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-navigation.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-navigation.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-navigation.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='navigation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='navigation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo: propertyprobe.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo `test -f 'propertyprobe.c' || echo '$(srcdir)/'`propertyprobe.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='propertyprobe.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='propertyprobe.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo `test -f 'propertyprobe.c' || echo '$(srcdir)/'`propertyprobe.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo `test -f 'propertyprobe.c' || echo '$(srcdir)/'`propertyprobe.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo: streamvolume.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='streamvolume.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='streamvolume.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo: tuner.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tuner.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tuner.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tuner.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tuner.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tuner.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo: tunernorm.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tunernorm.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tunernorm.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo: tunerchannel.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tunerchannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tunerchannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo: videoorientation.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo `test -f 'videoorientation.c' || echo '$(srcdir)/'`videoorientation.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='videoorientation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='videoorientation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo `test -f 'videoorientation.c' || echo '$(srcdir)/'`videoorientation.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo `test -f 'videoorientation.c' || echo '$(srcdir)/'`videoorientation.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo: xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo `test -f 'xoverlay.c' || echo '$(srcdir)/'`xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='xoverlay.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xoverlay.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo `test -f 'xoverlay.c' || echo '$(srcdir)/'`xoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo `test -f 'xoverlay.c' || echo '$(srcdir)/'`xoverlay.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo: interfaces-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='interfaces-marshal.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='interfaces-marshal.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
 
 libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo: interfaces-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='interfaces-enumtypes.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='interfaces-enumtypes.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -838,9 +812,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -858,9 +830,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstinterfacesincludeHEADERS: $(libgstinterfacesinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstinterfacesincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstinterfacesincludedir)"
@@ -878,9 +848,7 @@ uninstall-libgstinterfacesincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstinterfacesincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstinterfacesincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstinterfacesincludedir)'; $(am__uninstall_files_from_dir)
 install-nodist_libgstinterfacesincludeHEADERS: $(nodist_libgstinterfacesinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstinterfacesincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstinterfacesincludedir)"
@@ -898,9 +866,7 @@ uninstall-nodist_libgstinterfacesincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nodist_libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstinterfacesincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstinterfacesincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstinterfacesincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1003,10 +969,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 56dc444..73ba697 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * GStreamer Camera Control
+ * GStreamer Camera Control Interface
  *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
  *
  * Contact: Jeongmo Yang <jm80.yang@samsung.com>
  *
  *
  */
 
-/* ===========================================================================================
+/*============================================================================================
 EDIT HISTORY FOR MODULE
 
-       This section contains comments describing changes made to the module.
-       Notice that changes are listed in reverse chronological order.
+This section contains comments describing changes made to the module.
+Notice that changes are listed in reverse chronological order.
 
-when           who                                                     what, where, why
----------      ------------------------        ------------------------------------------------------
-12/09/08       jm80.yang@samsung.com           Created
+when            who                             what, where, why
+---------       ------------------------        ----------------------------------------------
+12/09/08        jm80.yang@samsung.com           Created
 
-=========================================================================================== */
+============================================================================================*/
 
 
 #ifdef HAVE_CONFIG_H
@@ -46,27 +46,24 @@ when                who                                                     what, where, why
  * @short_description: Interface for camera control
  */
 
-enum
-{
+enum {
        CONTROL_VALUE_CHANGED,
        CONTROL_LAST_SIGNAL
 };
 
-static void gst_camera_control_class_init( GstCameraControlClass *klass );
+static void gst_camera_control_class_init(GstCameraControlClass *klass);
 
 static guint gst_camera_control_signals[CONTROL_LAST_SIGNAL] = { 0 };
 
-GType
-gst_camera_control_get_type( void )
+GType gst_camera_control_get_type(void)
 {
        static GType gst_camera_control_type = 0;
 
-       if( !gst_camera_control_type )
-       {
+       if (!gst_camera_control_type) {
                static const GTypeInfo gst_camera_control_info =
                {
-                       sizeof( GstCameraControlClass ),
-                       (GBaseInitFunc) gst_camera_control_class_init,
+                       sizeof(GstCameraControlClass),
+                       (GBaseInitFunc)gst_camera_control_class_init,
                        NULL,
                        NULL,
                        NULL,
@@ -76,101 +73,98 @@ gst_camera_control_get_type( void )
                        NULL,
                };
 
-               gst_camera_control_type = g_type_register_static( G_TYPE_INTERFACE, "GstCameraControl", &gst_camera_control_info, 0 );
-               g_type_interface_add_prerequisite( gst_camera_control_type, GST_TYPE_IMPLEMENTS_INTERFACE );
+               gst_camera_control_type = g_type_register_static(G_TYPE_INTERFACE,
+                                                                "GstCameraControl",
+                                                                &gst_camera_control_info,
+                                                                0);
+               g_type_interface_add_prerequisite(gst_camera_control_type, GST_TYPE_IMPLEMENTS_INTERFACE);
        }
 
        return gst_camera_control_type;
 }
 
-static void
-gst_camera_control_class_init( GstCameraControlClass *klass )
+static void gst_camera_control_class_init(GstCameraControlClass *klass)
 {
        static gboolean initialized = FALSE;
 
-       if( !initialized )
-       {
+       if (!initialized) {
                gst_camera_control_signals[CONTROL_VALUE_CHANGED] =
-                       g_signal_new ( "control-value-changed",
-                                      GST_TYPE_CAMERA_CONTROL, G_SIGNAL_RUN_LAST,
-                                      G_STRUCT_OFFSET( GstCameraControlClass, value_changed ),
-                                      NULL, NULL,
-                                      gst_interfaces_marshal_VOID__OBJECT_INT,
-                                      G_TYPE_NONE, 2, GST_TYPE_CAMERA_CONTROL_CHANNEL, G_TYPE_INT);
+                       g_signal_new("control-value-changed",
+                                    GST_TYPE_CAMERA_CONTROL, G_SIGNAL_RUN_LAST,
+                                    G_STRUCT_OFFSET(GstCameraControlClass, value_changed),
+                                    NULL, NULL,
+                                    gst_interfaces_marshal_VOID__OBJECT_INT,
+                                    G_TYPE_NONE, 2, GST_TYPE_CAMERA_CONTROL_CHANNEL, G_TYPE_INT);
 
                initialized = TRUE;
        }
 
-       // TODO : 
-       klass->camera_control_type      = 0;
+       // TODO :
+       klass->camera_control_type = 0;
 
        /* defauld virtual functions */
-       klass->list_channels            = NULL;
-       klass->set_exposure                     = NULL;
-       klass->get_exposure                     = NULL;
-       klass->set_capture_mode         = NULL;
-       klass->get_capture_mode         = NULL;
-       klass->set_strobe                       = NULL;
-       klass->get_strobe                       = NULL;
-       klass->set_detect                       = NULL;
-       klass->get_detect                       = NULL;
-       klass->set_value                        = NULL;
-       klass->get_value                        = NULL;
-       klass->set_zoom                         = NULL;
-       klass->get_zoom                         = NULL;
-       klass->set_focus                        = NULL;
-       klass->get_focus                        = NULL;
-       klass->start_auto_focus         = NULL;
-       klass->stop_auto_focus          = NULL;
-       klass->set_focus_level          = NULL;
-       klass->get_focus_level          = NULL; 
-       klass->set_auto_focus_area      = NULL;
-       klass->get_auto_focus_area      = NULL;
-       klass->set_wdr                          = NULL;
-       klass->get_wdr                          = NULL; 
-       klass->set_ahs                          = NULL;
-       klass->get_ahs                          = NULL;
-       klass->set_part_color           = NULL;
-       klass->get_part_color           = NULL;
-       klass->get_exif_info        = NULL;
-       klass->set_capture_command      = NULL;
-}
-
-const GList*
-gst_camera_control_list_channels( GstCameraControl *control )
-{
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
-
-       if( klass->list_channels )
-       {
-               return klass->list_channels( control );
+       klass->list_channels = NULL;
+       klass->set_exposure = NULL;
+       klass->get_exposure = NULL;
+       klass->set_capture_mode = NULL;
+       klass->get_capture_mode = NULL;
+       klass->set_strobe = NULL;
+       klass->get_strobe = NULL;
+       klass->set_detect = NULL;
+       klass->get_detect = NULL;
+       klass->set_value = NULL;
+       klass->get_value = NULL;
+       klass->set_zoom  = NULL;
+       klass->get_zoom  = NULL;
+       klass->set_focus = NULL;
+       klass->get_focus = NULL;
+       klass->start_auto_focus = NULL;
+       klass->stop_auto_focus = NULL;
+       klass->set_focus_level = NULL;
+       klass->get_focus_level = NULL;
+       klass->set_auto_focus_area = NULL;
+       klass->get_auto_focus_area = NULL;
+       klass->set_wdr = NULL;
+       klass->get_wdr = NULL;
+       klass->set_ahs = NULL;
+       klass->get_ahs = NULL;
+       klass->set_part_color = NULL;
+       klass->get_part_color = NULL;
+       klass->get_exif_info = NULL;
+       klass->set_capture_command = NULL;
+       klass->start_face_zoom = NULL;
+       klass->stop_face_zoom = NULL;
+}
+
+const GList* gst_camera_control_list_channels(GstCameraControl *control)
+{
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+
+       if (klass->list_channels) {
+               return klass->list_channels(control);
        }
 
        return NULL;
 }
 
 
-gboolean
-gst_camera_control_set_value( GstCameraControl *control, GstCameraControlChannel *control_channel )
+gboolean gst_camera_control_set_value(GstCameraControl *control, GstCameraControlChannel *control_channel)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_value )
-       {
-               return klass->set_value( control, control_channel );
+       if (klass->set_value) {
+               return klass->set_value(control, control_channel);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_value( GstCameraControl *control, GstCameraControlChannel *control_channel )
+gboolean gst_camera_control_get_value(GstCameraControl *control, GstCameraControlChannel *control_channel)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_value )
-       {
-               return klass->get_value( control, control_channel );
+       if (klass->get_value) {
+               return klass->get_value(control, control_channel);
        }
 
        return FALSE;
@@ -178,349 +172,295 @@ gst_camera_control_get_value( GstCameraControl *control, GstCameraControlChannel
 
 
 
-gboolean
-gst_camera_control_set_exposure( GstCameraControl *control, gint type, gint value1, gint value2 )
+gboolean gst_camera_control_set_exposure(GstCameraControl *control, gint type, gint value1, gint value2)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_exposure )
-       {
-               return klass->set_exposure( control, type, value1, value2 );
+       if (klass->set_exposure) {
+               return klass->set_exposure(control, type, value1, value2);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_exposure( GstCameraControl *control, gint type, gint* value1, gint* value2 )
+gboolean gst_camera_control_get_exposure(GstCameraControl *control, gint type, gint *value1, gint *value2)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_exposure )
-       {
-               return klass->get_exposure( control, type, value1, value2 );
+       if (klass->get_exposure) {
+               return klass->get_exposure(control, type, value1, value2);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_capture_mode( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_capture_mode(GstCameraControl *control, gint type, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_capture_mode )
-       {
-               return klass->set_capture_mode( control, type, value );
+       if (klass->set_capture_mode) {
+               return klass->set_capture_mode(control, type, value);
        }
 
-       return FALSE;   
+       return FALSE;
 }
 
-gboolean
-gst_camera_control_get_capture_mode( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_capture_mode(GstCameraControl *control, gint type, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_capture_mode )
-       {
-               return klass->get_capture_mode( control, type, value );
+       if (klass->get_capture_mode) {
+               return klass->get_capture_mode(control, type, value);
        }
 
-       return FALSE;   
+       return FALSE;
 }
 
-gboolean
-gst_camera_control_set_strobe( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_strobe(GstCameraControl *control, gint type, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_strobe )
-       {
-               return klass->set_strobe( control, type, value );
+       if (klass->set_strobe) {
+               return klass->set_strobe(control, type, value);
        }
 
-       return FALSE;           
+       return FALSE;
 }
 
-gboolean
-gst_camera_control_get_strobe( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_strobe(GstCameraControl *control, gint type, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_strobe )
-       {
-               return klass->get_strobe( control, type, value );
+       if (klass->get_strobe) {
+               return klass->get_strobe(control, type, value);
        }
 
-       return FALSE;           
+       return FALSE;
 }
 
-gboolean
-gst_camera_control_set_detect( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_detect(GstCameraControl *control, gint type, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_detect )
-       {
-               return klass->set_detect( control, type, value );
+       if (klass->set_detect) {
+               return klass->set_detect(control, type, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_detect( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_detect(GstCameraControl *control, gint type, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_detect )
-       {
-               return klass->get_detect( control, type, value );
+       if (klass->get_detect) {
+               return klass->get_detect(control, type, value);
        }
 
-       //for prevent MISSING_RETURN :+: yoserb.yi 2009-06-25
-       
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_zoom( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_zoom(GstCameraControl *control, gint type, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_zoom )
-       {
-               return klass->set_zoom( control, type, value );
+       if (klass->set_zoom) {
+               return klass->set_zoom(control, type, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_zoom( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_zoom(GstCameraControl *control, gint type, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_zoom )
-       {
-               return klass->get_zoom( control, type, value );
+       if (klass->get_zoom) {
+               return klass->get_zoom(control, type, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_focus( GstCameraControl *control, gint mode, gint range )
+gboolean gst_camera_control_set_focus(GstCameraControl *control, gint mode, gint range)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_focus )
-       {
-               return klass->set_focus( control, mode, range );
+       if (klass->set_focus) {
+               return klass->set_focus(control, mode, range);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_focus( GstCameraControl *control, gint *mode, gint *range )
+gboolean gst_camera_control_get_focus(GstCameraControl *control, gint *mode, gint *range)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_focus )
-       {
-               return klass->get_focus( control, mode, range );
+       if (klass->get_focus) {
+               return klass->get_focus(control, mode, range);
        }
 
        return FALSE;
 }
 
-gboolean       
-gst_camera_control_start_auto_focus( GstCameraControl *control )
+gboolean gst_camera_control_start_auto_focus(GstCameraControl *control)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->start_auto_focus )
-       {
-               return klass->start_auto_focus( control );
+       if (klass->start_auto_focus) {
+               return klass->start_auto_focus(control);
        }
 
        return FALSE;
 }
 
-gboolean       
-gst_camera_control_stop_auto_focus( GstCameraControl *control )
+gboolean gst_camera_control_stop_auto_focus(GstCameraControl *control)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->stop_auto_focus )
-       {
-               return klass->stop_auto_focus( control );
+       if (klass->stop_auto_focus) {
+               return klass->stop_auto_focus(control);
        }
 
        return FALSE;
 }
 
-gboolean       
-gst_camera_control_set_focus_level( GstCameraControl *control, gint manual_level)
+gboolean gst_camera_control_set_focus_level(GstCameraControl *control, gint manual_level)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_focus_level )
-       {
-               return klass->set_focus_level( control, manual_level );
+       if (klass->set_focus_level) {
+               return klass->set_focus_level(control, manual_level);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_focus_level( GstCameraControl *control, gint *manual_level)
+gboolean gst_camera_control_get_focus_level(GstCameraControl *control, gint *manual_level)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_focus_level )
-       {
-               return klass->get_focus_level( control, manual_level );
+       if (klass->get_focus_level) {
+               return klass->get_focus_level(control, manual_level);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_auto_focus_area( GstCameraControl *control, GstCameraControlRectType rect )
+gboolean gst_camera_control_set_auto_focus_area(GstCameraControl *control, GstCameraControlRectType rect)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_auto_focus_area )
-       {
-               return klass->set_auto_focus_area( control, rect );
+       if (klass->set_auto_focus_area) {
+               return klass->set_auto_focus_area(control, rect);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_auto_focus_area( GstCameraControl *control, GstCameraControlRectType* rect )
+gboolean gst_camera_control_get_auto_focus_area(GstCameraControl *control, GstCameraControlRectType *rect)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_auto_focus_area )
-       {
-               return klass->get_auto_focus_area( control, rect );
+       if (klass->get_auto_focus_area) {
+               return klass->get_auto_focus_area(control, rect);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_wdr( GstCameraControl *control, gint value)
+gboolean gst_camera_control_set_wdr(GstCameraControl *control, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_wdr )
-       {
-               return klass->set_wdr( control, value );
+       if (klass->set_wdr) {
+               return klass->set_wdr(control, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_wdr( GstCameraControl *control, gint *value)
+gboolean gst_camera_control_get_wdr(GstCameraControl *control, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_wdr )
-       {
-               return klass->get_wdr( control, value );
+       if (klass->get_wdr) {
+               return klass->get_wdr(control, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_ahs( GstCameraControl *control, gint value)
+gboolean gst_camera_control_set_ahs(GstCameraControl *control, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_ahs )
-       {
-               return klass->set_ahs( control, value );
+       if (klass->set_ahs) {
+               return klass->set_ahs(control, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_ahs( GstCameraControl *control, gint *value)
+gboolean gst_camera_control_get_ahs(GstCameraControl *control, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_ahs )
-       {
-               return klass->get_ahs( control, value );
+       if (klass->get_ahs) {
+               return klass->get_ahs(control, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_set_part_color( GstCameraControl *control, gint type, gint value)
+gboolean gst_camera_control_set_part_color(GstCameraControl *control, gint type, gint value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_part_color )
-       {
-               return klass->set_part_color( control, type, value );
+       if (klass->set_part_color) {
+               return klass->set_part_color(control, type, value);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_part_color( GstCameraControl *control, gint type, gint *value)
+gboolean gst_camera_control_get_part_color(GstCameraControl *control, gint type, gint *value)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_part_color )
-       {
-               return klass->get_part_color( control, type, value );
+       if (klass->get_part_color) {
+               return klass->get_part_color(control, type, value);
        }
 
        return FALSE;
 }
 
 gboolean
-gst_camera_control_get_exif_info     ( GstCameraControl* control, GstCameraControlExifInfo* info)
+gst_camera_control_get_exif_info(GstCameraControl *control, GstCameraControlExifInfo *info)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_exif_info )
-       {
-               return klass->get_exif_info( control, info );
+       if (klass->get_exif_info) {
+               return klass->get_exif_info(control, info);
        }
 
        return FALSE;
 }
 
 
-gboolean
-gst_camera_control_get_basic_dev_info     ( GstCameraControl* control, gint dev_id, GstCameraControlCapsInfoType* info)
+gboolean gst_camera_control_get_basic_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_basic_dev_info )
-       {
-               return klass->get_basic_dev_info( control, dev_id, info );
+       if (klass->get_basic_dev_info) {
+               return klass->get_basic_dev_info(control, dev_id, info);
        }
 
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_misc_dev_info     ( GstCameraControl* control, gint dev_id, GstCameraControlCtrlListInfoType* info)
+gboolean gst_camera_control_get_misc_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info)
 {
        GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
 
@@ -532,37 +472,52 @@ gst_camera_control_get_misc_dev_info     ( GstCameraControl* control, gint dev_i
        return FALSE;
 }
 
-gboolean
-gst_camera_control_get_extra_dev_info     ( GstCameraControl* control, gint dev_id, GstCameraControlExtraInfoType* info)
+gboolean gst_camera_control_get_extra_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->get_extra_dev_info )
-       {
-               return klass->get_extra_dev_info( control, dev_id, info );
+       if (klass->get_extra_dev_info) {
+               return klass->get_extra_dev_info(control, dev_id, info);
        }
 
        return FALSE;
 }
 
-void
-gst_camera_control_set_capture_command( GstCameraControl* control, GstCameraControlCaptureCommand cmd )
+void gst_camera_control_set_capture_command(GstCameraControl *control, GstCameraControlCaptureCommand cmd)
 {
-       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
 
-       if( klass->set_capture_command )
-       {
-               klass->set_capture_command( control, cmd );
+       if (klass->set_capture_command) {
+               klass->set_capture_command(control, cmd);
        }
 
        return;
 }
 
-void
-gst_camera_control_value_changed( GstCameraControl *control, GstCameraControlChannel *control_channel, gint value )
+gboolean gst_camera_control_start_face_zoom(GstCameraControl *control, gint x, gint y, gint zoom_level)
 {
-       g_signal_emit( G_OBJECT( control ), gst_camera_control_signals[CONTROL_VALUE_CHANGED], 0, control_channel, value );
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+
+       if (klass->start_face_zoom) {
+               return klass->start_face_zoom(control, x, y, zoom_level);
+       }
 
-       g_signal_emit_by_name( G_OBJECT( control_channel ), "control-value-changed", value );
+       return FALSE;
 }
 
+gboolean gst_camera_control_stop_face_zoom(GstCameraControl *control)
+{
+       GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+
+       if (klass->stop_face_zoom) {
+               return klass->stop_face_zoom(control);
+       }
+
+       return FALSE;
+}
+
+void gst_camera_control_value_changed(GstCameraControl *control, GstCameraControlChannel *control_channel, gint value)
+{
+       g_signal_emit(G_OBJECT(control), gst_camera_control_signals[CONTROL_VALUE_CHANGED], 0, control_channel, value);
+       g_signal_emit_by_name(G_OBJECT(control_channel), "control-value-changed", value);
+}
index 0b4400b..f5ec544 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * GStreamer Camera Control
+ * GStreamer Camera Control Interface
  *
  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
  *
@@ -172,6 +172,7 @@ typedef enum
 #define MAX_NUM_AVAILABLE_FPS   16
 #define MAX_NUM_CTRL_LIST_INFO  64
 #define MAX_NUM_CTRL_MENU       64
+#define MAX_NUM_DETECTED_FACES  16
 #define MAX_SZ_CTRL_NAME_STRING 32
 #define MAX_SZ_DEV_NAME_STRING  32
 
@@ -179,25 +180,25 @@ typedef enum
  *  @brief For timeperframe as fraction type
  *  Elapse time consumed by one frame, reverse of FPS
  */
-typedef struct {
-    gint num;
-    gint den;
-}GstCameraControlFracType;
+typedef struct _GstCameraControlFracType {
+       gint num;
+       gint den;
+} GstCameraControlFracType;
 
 /*! @struct GstCameraControlRectType
- *  @brief For touch auto focusing area
+ *  @brief For touch auto focusing area and face detection area
  */
-typedef struct {
+typedef struct _GstCameraControlRectType {
        gint x;
        gint y;
        gint width;
        gint height;
-}GstCameraControlRectType;
+} GstCameraControlRectType;
 
 /*! @struct GstCameraControlResolutionType
  *  @brief For querying supported resolutions
  */
-typedef struct {
+typedef struct _GstCameraControlResolutionType {
     gint w;
     gint h;
 
@@ -210,7 +211,7 @@ typedef struct {
  *  @brief Time per frame or frame per second will be expressed by this structure
  *  Time per frame or frame per second will be expressed by this structure
  */
-typedef struct {
+typedef struct _GstCameraControlFraction {
     int numerator;             /**< Upper number of fraction*/
     int denominator;           /**< Lower number of fraction*/
 } GstCameraControlFraction;
@@ -218,7 +219,7 @@ typedef struct {
 /*! @struct GstCameraControlFmtDescType
  *  @brief For querying supported format type
  */
-typedef struct {
+typedef struct _GstCameraControlFmtDescType {
     /* fourcc name of each pixelformat */
     guint fcc;
     gint fcc_use;
@@ -231,7 +232,7 @@ typedef struct {
 /*! @struct GstCameraControlCapsInfoType
  *  @brief For querying image input capabilities
  */
-typedef struct {
+typedef struct _GstCameraControlCapsInfoType {
     char dev_name[MAX_SZ_DEV_NAME_STRING];
     int input_idx;
     gint num_fmt_desc;
@@ -255,6 +256,23 @@ typedef struct {
     GstCameraControlFraction fps[MAX_NUM_AVAILABLE_FPS];
 } GstCameraControlCapsInfoType;
 
+/*! @struct GstCameraControlFaceInfo
+ *  @brief For face information
+ */
+typedef struct _GstCameraControlFaceInfo {
+       int id;
+       int score;
+       GstCameraControlRectType rect;
+} GstCameraControlFaceInfo;
+
+/*! @struct GstCameraControlFaceDetectInfo
+ *  @brief For face detect information
+ */
+typedef struct _GstCameraControlFaceDetectInfo {
+       int num_of_faces;
+       GstCameraControlFaceInfo face_info[MAX_NUM_DETECTED_FACES];
+} GstCameraControlFaceDetectInfo;
+
 /////////////////////////////
 //  For Querying controls  //
 /////////////////////////////
@@ -269,15 +287,15 @@ enum {
 /*! @struct GstCameraControlCtrlMenuType
  *  @brief For querying menu of specified controls
  */
-typedef struct {
+typedef struct _GstCameraControlCtrlMenuType {
     gint menu_index;
     gchar menu_name[MAX_SZ_CTRL_NAME_STRING];
-}GstCameraControlCtrlMenuType;
+} GstCameraControlCtrlMenuType;
 
 /*! @struct GstCameraControlCtrlInfoType
  *  @brief For querying controls detail
  */
-typedef struct {
+typedef struct _GstCameraControlCtrlInfoType {
     gint avsys_ctrl_id;
     gint v4l2_ctrl_id;
     gint ctrl_type;
@@ -293,7 +311,7 @@ typedef struct {
 /*! @struct GstCameraControlCtrlListInfoType
  *  @brief For querying controls
  */
-typedef struct {
+typedef struct _GstCameraControlCtrlListInfoType {
     gint num_ctrl_list_info;
     GstCameraControlCtrlInfoType ctrl_info[MAX_NUM_CTRL_LIST_INFO];
 } GstCameraControlCtrlListInfoType;
@@ -310,7 +328,7 @@ typedef struct {
 #define GST_CAMERA_STROBE_CAP_PERMANENT         0x0080 /* keep turned on until turning off */
 #define GST_CAMERA_STROBE_CAP_EXTERNAL          0x0100 /* use external strobe */
 
-typedef struct {
+typedef struct _GstCameraControlExtraInfoType {
     guint strobe_caps;                                   /**< Use above caps field */
     guint detection_caps;                                /**< Just boolean */
     guint reserved[4];
@@ -323,33 +341,31 @@ typedef struct {
 /**
  * Enumerations for Camera control Part color.
  */
-typedef struct _GstCameraControlExifInfo
-{
-    /* Dynamic value */
-    guint32 exposure_time_numerator;       //Exposure time, given in seconds
-    guint32 exposure_time_denominator;
-    gint shutter_speed_numerator;                //Shutter speed, given in APEX(Additive System Photographic Exposure)
-    gint shutter_speed_denominator;
-    gint brigtness_numerator;                    //Value of brightness, before firing flash, given in APEX value
-    gint brightness_denominator;
-    guint16 iso;                     //Sensitivity value of sensor
-    guint16 flash;                   //Whether flash is fired(1) or not(0)
-    gint metering_mode;                          //metering mode in EXIF 2.2
-    gint exif_image_width;                       //Size of image
-    gint exif_image_height;                      //
-    gint exposure_bias_in_APEX;                  //Exposure bias in APEX standard
-    gint software_used;                          //Firmware S/W version
-
-
-    /* Fixed value */
-    gint component_configuration;                //color components arrangement (YCbCr = 1230)
-    gint colorspace;                             //colorspace information (sRGB=1)
-    gint focal_len_numerator;                    //Lens focal length (f = 4.5mm)
-    gint focal_len_denominator;
-    gint aperture_f_num_numerator;               //Aperture value (f_num = 2.8)
-    gint aperture_f_num_denominator;
-    gint aperture_in_APEX;                       //Aperture value in APEX standard
-    gint max_lens_aperture_in_APEX;              //Max aperture value in APEX standard
+typedef struct _GstCameraControlExifInfo {
+       /* Dynamic value */
+       guint32 exposure_time_numerator;    /* Exposure time, given in seconds */
+       guint32 exposure_time_denominator;
+       gint shutter_speed_numerator;       /* Shutter speed, given in APEX(Additive System Photographic Exposure) */
+       gint shutter_speed_denominator;
+       gint brigtness_numerator;           /* Value of brightness, before firing flash, given in APEX value */
+       gint brightness_denominator;
+       guint16 iso;                        /* Sensitivity value of sensor */
+       guint16 flash;                      /* Whether flash is fired(1) or not(0) */
+       gint metering_mode;                 /* metering mode in EXIF 2.2 */
+       gint exif_image_width;              /* Size of image */
+       gint exif_image_height;
+       gint exposure_bias_in_APEX;         /* Exposure bias in APEX standard */
+       gint software_used;                 /* Firmware S/W version */
+
+       /* Fixed value */
+       gint component_configuration;       /* color components arrangement */
+       gint colorspace;                    /* colorspace information */
+       gint focal_len_numerator;           /* Lens focal length */
+       gint focal_len_denominator;
+       gint aperture_f_num_numerator;      /* Aperture value */
+       gint aperture_f_num_denominator;
+       gint aperture_in_APEX;              /* Aperture value in APEX standard */
+       gint max_lens_aperture_in_APEX;     /* Max aperture value in APEX standard */
 } GstCameraControlExifInfo;
 
 
@@ -358,84 +374,88 @@ typedef struct _GstCameraControlClass {
        GstCameraControlType camera_control_type;
 
        /* virtual functions */
-       const GList*(* list_channels)           ( GstCameraControl* control );
-
-       gboolean        (* set_value)                   ( GstCameraControl* control, GstCameraControlChannel* control_channel );
-       gboolean        (* get_value)                   ( GstCameraControl* control, GstCameraControlChannel* control_channel );
-       gboolean        (* set_exposure)                ( GstCameraControl* control, gint type, gint value1, gint value2 );
-       gboolean        (* get_exposure)                ( GstCameraControl* control, gint type, gint* value1, gint* value2 );
-       gboolean        (* set_capture_mode)    ( GstCameraControl* control, gint type, gint value );
-       gboolean        (* get_capture_mode)    ( GstCameraControl* control, gint type, gint* value );  
-       gboolean        (* set_strobe)                  ( GstCameraControl* control, gint type, gint value );
-       gboolean        (* get_strobe)                  ( GstCameraControl* control, gint type, gint *value );
-       gboolean        (* set_detect)                  ( GstCameraControl* control, gint type, gint value );
-       gboolean        (* get_detect)                  ( GstCameraControl* control, gint type, gint* value );  
-       gboolean        (* set_zoom)                    ( GstCameraControl* control, gint type, gint value );
-       gboolean        (* get_zoom)                    ( GstCameraControl* control, gint type, gint* value );
-       gboolean        (* set_focus)                   ( GstCameraControl* control, gint mode, gint range );
-       gboolean        (* get_focus)                   ( GstCameraControl* control, gint* mode, gint* range );
-       gboolean        (* start_auto_focus)    ( GstCameraControl* control);
-       gboolean        (* stop_auto_focus)             ( GstCameraControl* control);
-       gboolean        (* set_focus_level)             ( GstCameraControl* control, gint manual_level);
-       gboolean        (* get_focus_level)             ( GstCameraControl* control, gint* manual_level);
-       gboolean        (* set_auto_focus_area) ( GstCameraControl* control, GstCameraControlRectType rect );
-       gboolean        (* get_auto_focus_area) ( GstCameraControl* control, GstCameraControlRectType* rect );
-       gboolean        (* set_wdr)                             ( GstCameraControl* control, gint value);
-       gboolean        (* get_wdr)                             ( GstCameraControl* control, gint *value);
-       gboolean        (* set_ahs)                             ( GstCameraControl* control, gint value);
-       gboolean        (* get_ahs)                             ( GstCameraControl* control, gint *value);
-       gboolean        (* set_part_color)              ( GstCameraControl* control, gint type, gint value);
-       gboolean        (* get_part_color)              ( GstCameraControl* control, gint type, gint* value);
-       gboolean        (* get_exif_info)               ( GstCameraControl* control, GstCameraControlExifInfo* info);
-       gboolean        (* get_basic_dev_info)          ( GstCameraControl* control, gint dev_id, GstCameraControlCapsInfoType* info);
-       gboolean        (* get_misc_dev_info)           ( GstCameraControl* control, gint dev_id, GstCameraControlCtrlListInfoType* info);
-       gboolean        (* get_extra_dev_info)          ( GstCameraControl* control, gint dev_id, GstCameraControlExtraInfoType* info);
-       void            (* set_capture_command)         ( GstCameraControl* control, GstCameraControlCaptureCommand cmd );
+       const GList*(*list_channels)                   (GstCameraControl *control);
+
+       gboolean        (*set_value)                   (GstCameraControl *control, GstCameraControlChannel *control_channel);
+       gboolean        (*get_value)                   (GstCameraControl *control, GstCameraControlChannel *control_channel);
+       gboolean        (*set_exposure)                (GstCameraControl *control, gint type, gint value1, gint value2);
+       gboolean        (*get_exposure)                (GstCameraControl *control, gint type, gint *value1, gint *value2);
+       gboolean        (*set_capture_mode)            (GstCameraControl *control, gint type, gint value);
+       gboolean        (*get_capture_mode)            (GstCameraControl *control, gint type, gint *value);
+       gboolean        (*set_strobe)                  (GstCameraControl *control, gint type, gint value);
+       gboolean        (*get_strobe)                  (GstCameraControl *control, gint type, gint *value);
+       gboolean        (*set_detect)                  (GstCameraControl *control, gint type, gint value);
+       gboolean        (*get_detect)                  (GstCameraControl *control, gint type, gint *value);
+       gboolean        (*set_zoom)                    (GstCameraControl *control, gint type, gint value);
+       gboolean        (*get_zoom)                    (GstCameraControl *control, gint type, gint *value);
+       gboolean        (*set_focus)                   (GstCameraControl *control, gint mode, gint range);
+       gboolean        (*get_focus)                   (GstCameraControl *control, gint *mode, gint *range);
+       gboolean        (*start_auto_focus)            (GstCameraControl *control);
+       gboolean        (*stop_auto_focus)             (GstCameraControl *control);
+       gboolean        (*set_focus_level)             (GstCameraControl *control, gint manual_level);
+       gboolean        (*get_focus_level)             (GstCameraControl *control, gint *manual_level);
+       gboolean        (*set_auto_focus_area)         (GstCameraControl *control, GstCameraControlRectType rect);
+       gboolean        (*get_auto_focus_area)         (GstCameraControl *control, GstCameraControlRectType *rect);
+       gboolean        (*set_wdr)                     (GstCameraControl *control, gint value);
+       gboolean        (*get_wdr)                     (GstCameraControl *control, gint *value);
+       gboolean        (*set_ahs)                     (GstCameraControl *control, gint value);
+       gboolean        (*get_ahs)                     (GstCameraControl *control, gint *value);
+       gboolean        (*set_part_color)              (GstCameraControl *control, gint type, gint value);
+       gboolean        (*get_part_color)              (GstCameraControl *control, gint type, gint *value);
+       gboolean        (*get_exif_info)               (GstCameraControl *control, GstCameraControlExifInfo *info);
+       gboolean        (*get_basic_dev_info)          (GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info);
+       gboolean        (*get_misc_dev_info)           (GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info);
+       gboolean        (*get_extra_dev_info)          (GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info);
+       void            (*set_capture_command)         (GstCameraControl *control, GstCameraControlCaptureCommand cmd);
+       gboolean        (*start_face_zoom)             (GstCameraControl *control, gint x, gint y, gint zoom_level);
+       gboolean        (*stop_face_zoom)              (GstCameraControl *control);
 
        /* signals */
-       void (* value_changed)                          ( GstCameraControl* control, GstCameraControlChannel* channel, gint value );
+       void (* value_changed)                          (GstCameraControl *control, GstCameraControlChannel *channel, gint value);
 } GstCameraControlClass;
 
-GType   gst_camera_control_get_type      (void);
+GType gst_camera_control_get_type(void);
 
 /* virtual class function wrappers */
-const GList*   gst_camera_control_list_channels        ( GstCameraControl* control );
-
-gboolean       gst_camera_control_set_value            ( GstCameraControl* control, GstCameraControlChannel* control_channel );
-gboolean       gst_camera_control_get_value            ( GstCameraControl* control, GstCameraControlChannel* control_channel );
-gboolean       gst_camera_control_set_exposure         ( GstCameraControl* control, gint type, gint value1, gint value2 );
-gboolean       gst_camera_control_get_exposure         ( GstCameraControl* control, gint type, gint* value1, gint* value2 );
-gboolean       gst_camera_control_set_capture_mode     ( GstCameraControl* control, gint type, gint value );
-gboolean       gst_camera_control_get_capture_mode     ( GstCameraControl* control, gint type, gint* value );
-gboolean       gst_camera_control_set_strobe           ( GstCameraControl* control, gint type, gint value );
-gboolean       gst_camera_control_get_strobe           ( GstCameraControl* control, gint type, gint *value );
-gboolean       gst_camera_control_set_detect           ( GstCameraControl* control, gint type, gint value );
-gboolean       gst_camera_control_get_detect           ( GstCameraControl* control, gint type, gint* value );
-gboolean       gst_camera_control_set_zoom                     ( GstCameraControl* control, gint type, gint value );
-gboolean       gst_camera_control_get_zoom                     ( GstCameraControl* control, gint type, gint* value );
-gboolean       gst_camera_control_set_focus            ( GstCameraControl* control, gint mode, gint range );
-gboolean       gst_camera_control_get_focus            ( GstCameraControl* control, gint* mode, gint* range );
-gboolean       gst_camera_control_start_auto_focus     ( GstCameraControl* control);
-gboolean       gst_camera_control_stop_auto_focus      ( GstCameraControl* control);
-gboolean       gst_camera_control_set_focus_level      ( GstCameraControl* control, gint manual_level );
-gboolean       gst_camera_control_get_focus_level      ( GstCameraControl* control, gint* manual_level );
-gboolean       gst_camera_control_set_auto_focus_area  ( GstCameraControl* control, GstCameraControlRectType rect );
-gboolean       gst_camera_control_get_auto_focus_area  ( GstCameraControl* control, GstCameraControlRectType* rect );
-gboolean       gst_camera_control_set_wdr                      ( GstCameraControl* control, gint value);
-gboolean       gst_camera_control_get_wdr                      ( GstCameraControl* control, gint* value);
-gboolean       gst_camera_control_set_ahs                      ( GstCameraControl* control, gint value);
-gboolean       gst_camera_control_get_ahs                      ( GstCameraControl* control, gint* value);
-gboolean       gst_camera_control_set_part_color       ( GstCameraControl* control, gint type, gint value);
-gboolean       gst_camera_control_get_part_color       ( GstCameraControl* control, gint type, gint* value);
-gboolean       gst_camera_control_get_exif_info        ( GstCameraControl* control, GstCameraControlExifInfo* info);
-gboolean       gst_camera_control_get_basic_dev_info   ( GstCameraControl* control, gint dev_id, GstCameraControlCapsInfoType* info);
-gboolean       gst_camera_control_get_misc_dev_info    ( GstCameraControl* control, gint dev_id, GstCameraControlCtrlListInfoType* info);
-gboolean       gst_camera_control_get_extra_dev_info   ( GstCameraControl* control, gint dev_id, GstCameraControlExtraInfoType* info);
-void           gst_camera_control_set_capture_command  ( GstCameraControl* control, GstCameraControlCaptureCommand cmd );
+const GList*   gst_camera_control_list_channels        (GstCameraControl *control);
+
+gboolean       gst_camera_control_set_value            (GstCameraControl *control, GstCameraControlChannel *control_channel);
+gboolean       gst_camera_control_get_value            (GstCameraControl *control, GstCameraControlChannel *control_channel);
+gboolean       gst_camera_control_set_exposure         (GstCameraControl *control, gint type, gint value1, gint value2);
+gboolean       gst_camera_control_get_exposure         (GstCameraControl *control, gint type, gint *value1, gint *value2);
+gboolean       gst_camera_control_set_capture_mode     (GstCameraControl *control, gint type, gint value);
+gboolean       gst_camera_control_get_capture_mode     (GstCameraControl *control, gint type, gint *value);
+gboolean       gst_camera_control_set_strobe           (GstCameraControl *control, gint type, gint value);
+gboolean       gst_camera_control_get_strobe           (GstCameraControl *control, gint type, gint *value);
+gboolean       gst_camera_control_set_detect           (GstCameraControl *control, gint type, gint value);
+gboolean       gst_camera_control_get_detect           (GstCameraControl *control, gint type, gint *value);
+gboolean       gst_camera_control_set_zoom             (GstCameraControl *control, gint type, gint value);
+gboolean       gst_camera_control_get_zoom             (GstCameraControl *control, gint type, gint *value);
+gboolean       gst_camera_control_set_focus            (GstCameraControl *control, gint mode, gint range);
+gboolean       gst_camera_control_get_focus            (GstCameraControl *control, gint *mode, gint *range);
+gboolean       gst_camera_control_start_auto_focus     (GstCameraControl *control);
+gboolean       gst_camera_control_stop_auto_focus      (GstCameraControl *control);
+gboolean       gst_camera_control_set_focus_level      (GstCameraControl *control, gint manual_level);
+gboolean       gst_camera_control_get_focus_level      (GstCameraControl *control, gint *manual_level);
+gboolean       gst_camera_control_set_auto_focus_area  (GstCameraControl *control, GstCameraControlRectType rect);
+gboolean       gst_camera_control_get_auto_focus_area  (GstCameraControl *control, GstCameraControlRectType *rect);
+gboolean       gst_camera_control_set_wdr              (GstCameraControl *control, gint value);
+gboolean       gst_camera_control_get_wdr              (GstCameraControl *control, gint *value);
+gboolean       gst_camera_control_set_ahs              (GstCameraControl *control, gint value);
+gboolean       gst_camera_control_get_ahs              (GstCameraControl *control, gint *value);
+gboolean       gst_camera_control_set_part_color       (GstCameraControl *control, gint type, gint value);
+gboolean       gst_camera_control_get_part_color       (GstCameraControl *control, gint type, gint *value);
+gboolean       gst_camera_control_get_exif_info        (GstCameraControl *control, GstCameraControlExifInfo *info);
+gboolean       gst_camera_control_get_basic_dev_info   (GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info);
+gboolean       gst_camera_control_get_misc_dev_info    (GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info);
+gboolean       gst_camera_control_get_extra_dev_info   (GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info);
+void           gst_camera_control_set_capture_command  (GstCameraControl *control, GstCameraControlCaptureCommand cmd);
+gboolean       gst_camera_control_start_face_zoom      (GstCameraControl *control, gint x, gint y, gint zoom_level);
+gboolean       gst_camera_control_stop_face_zoom       (GstCameraControl *control);
 
 
 /* trigger signal */
-void           gst_camera_control_value_changed        ( GstCameraControl* control, GstCameraControlChannel* control_channel, gint value );
+void           gst_camera_control_value_changed        (GstCameraControl *control, GstCameraControlChannel *control_channel, gint value);
 
 G_END_DECLS
 
index 92e632d..415210e 100644 (file)
@@ -1,4 +1,4 @@
-/* GStreamer Camera Control
+/* GStreamer Camera Control Channel Interface
  * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
  *
  * cameracontrolchannel.c: cameracontrol channel object design
 
 #include "cameracontrolchannel.h"
 
-enum
-{
-  /* FILL ME */
-  SIGNAL_VALUE_CHANGED,
-  LAST_SIGNAL
+enum {
+       /* FILL ME */
+       SIGNAL_VALUE_CHANGED,
+       LAST_SIGNAL
 };
 
-static void gst_camera_control_channel_class_init( GstCameraControlChannelClass* klass );
-static void gst_camera_control_channel_init( GstCameraControlChannel* control_channel );
-static void gst_camera_control_channel_dispose( GObject* object );
+static void gst_camera_control_channel_class_init(GstCameraControlChannelClass* klass);
+static void gst_camera_control_channel_init(GstCameraControlChannel* control_channel);
+static void gst_camera_control_channel_dispose(GObject* object);
 
-static GObjectClassparent_class = NULL;
+static GObjectClass *parent_class = NULL;
 static guint signals[LAST_SIGNAL] = { 0 };
 
-GType
-gst_camera_control_channel_get_type (void)
+GType gst_camera_control_channel_get_type(void)
 {
-  static GType gst_camera_control_channel_type = 0;
-
-  if (!gst_camera_control_channel_type) {
-    static const GTypeInfo camera_control_channel_info = {
-      sizeof (GstCameraControlChannelClass),
-      NULL,
-      NULL,
-      (GClassInitFunc) gst_camera_control_channel_class_init,
-      NULL,
-      NULL,
-      sizeof (GstCameraControlChannel),
-      0,
-      (GInstanceInitFunc) gst_camera_control_channel_init,
-      NULL
-    };
-
-    gst_camera_control_channel_type =
-        g_type_register_static (G_TYPE_OBJECT,
-        "GstCameraControlChannel", &camera_control_channel_info, 0);
-  }
-
-  return gst_camera_control_channel_type;
+       static GType gst_camera_control_channel_type = 0;
+
+       if (!gst_camera_control_channel_type) {
+               static const GTypeInfo camera_control_channel_info = {
+                       sizeof (GstCameraControlChannelClass),
+                       NULL,
+                       NULL,
+                       (GClassInitFunc) gst_camera_control_channel_class_init,
+                       NULL,
+                       NULL,
+                       sizeof (GstCameraControlChannel),
+                       0,
+                       (GInstanceInitFunc) gst_camera_control_channel_init,
+                       NULL
+               };
+
+               gst_camera_control_channel_type = \
+                       g_type_register_static(G_TYPE_OBJECT,
+                                              "GstCameraControlChannel",
+                                              &camera_control_channel_info,
+                                              0);
+       }
+
+       return gst_camera_control_channel_type;
 }
 
-static void
-gst_camera_control_channel_class_init( GstCameraControlChannelClass* klass )
+static void gst_camera_control_channel_class_init(GstCameraControlChannelClass* klass)
 {
-  GObjectClass *object_klass = (GObjectClass*) klass;
-
-  parent_class = g_type_class_peek_parent (klass);
-
-  signals[SIGNAL_VALUE_CHANGED] =
-      g_signal_new ("control-value-changed", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST,
-      G_STRUCT_OFFSET (GstCameraControlChannelClass,
-          value_changed),
-      NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
-
-  object_klass->dispose = gst_camera_control_channel_dispose;
+       GObjectClass *object_klass = (GObjectClass*) klass;
+
+       parent_class = g_type_class_peek_parent (klass);
+
+       signals[SIGNAL_VALUE_CHANGED] = \
+               g_signal_new("control-value-changed",
+                            G_TYPE_FROM_CLASS (klass),
+                            G_SIGNAL_RUN_LAST,
+                            G_STRUCT_OFFSET (GstCameraControlChannelClass, value_changed),
+                            NULL,
+                            NULL,
+                            g_cclosure_marshal_VOID__INT,
+                            G_TYPE_NONE,
+                            1,
+                            G_TYPE_INT);
+
+       object_klass->dispose = gst_camera_control_channel_dispose;
 }
 
-static void
-gst_camera_control_channel_init( GstCameraControlChannel* control_channel )
+static void gst_camera_control_channel_init(GstCameraControlChannel* control_channel)
 {
-  control_channel->label = NULL;
-  control_channel->min_value = control_channel->max_value = 0;
+       control_channel->label = NULL;
+       control_channel->min_value = control_channel->max_value = 0;
 }
 
-static void
-gst_camera_control_channel_dispose( GObject* object )
+static void gst_camera_control_channel_dispose(GObject* object)
 {
-  GstCameraControlChannel *control_channel = GST_CAMERA_CONTROL_CHANNEL (object);
+       GstCameraControlChannel *control_channel = GST_CAMERA_CONTROL_CHANNEL(object);
 
-  if (control_channel->label)
-    g_free (control_channel->label);
+       if (control_channel->label) {
+               g_free (control_channel->label);
+       }
 
-  control_channel->label = NULL;
+       control_channel->label = NULL;
 
-  if (parent_class->dispose)
-    parent_class->dispose (object);
+       if (parent_class->dispose) {
+               parent_class->dispose (object);
+       }
 }
index 633f175..417debd 100644 (file)
@@ -1,4 +1,4 @@
-/* GStreamer Camera Control
+/* GStreamer Camera Control Channel Interface
  * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
  *
  * cameracontrolchannel.h: individual channel object
@@ -40,24 +40,22 @@ G_BEGIN_DECLS
   (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_CAMERA_CONTROL_CHANNEL))
 
 typedef struct _GstCameraControlChannel {
-  GObject parent;
-
-  gchar  *label;
-  gint    min_value,
-          max_value;
+       GObject parent;
+       gchar *label;
+       gint min_value;
+       gint max_value;
 } GstCameraControlChannel;
 
 typedef struct _GstCameraControlChannelClass {
-  GObjectClass parent;
+       GObjectClass parent;
 
-  /* signals */
-  void (* value_changed) (GstCameraControlChannel *control_channel,
-                          gint                    value);
+       /* signals */
+       void (*value_changed)(GstCameraControlChannel *control_channel, gint value);
 
-  gpointer _gst_reserved[GST_PADDING];
+       gpointer _gst_reserved[GST_PADDING];
 } GstCameraControlChannelClass;
 
-GType   gst_camera_control_channel_get_type (void);
+GType gst_camera_control_channel_get_type(void);
 
 G_END_DECLS
 
index 319c1b9..0bf52a9 100644 (file)
@@ -124,7 +124,11 @@ gst_color_balance_class_init (GstColorBalanceClass * klass)
 const GList *
 gst_color_balance_list_channels (GstColorBalance * balance)
 {
-  GstColorBalanceClass *klass = GST_COLOR_BALANCE_GET_CLASS (balance);
+  GstColorBalanceClass *klass;
+
+  g_return_val_if_fail (GST_IS_COLOR_BALANCE (balance), NULL);
+
+  klass = GST_COLOR_BALANCE_GET_CLASS (balance);
 
   if (klass->list_channels) {
     return klass->list_channels (balance);
@@ -142,8 +146,8 @@ gst_color_balance_list_channels (GstColorBalance * balance)
  * Sets the current value of the channel to the passed value, which must
  * be between min_value and max_value.
  * 
- * See Also: The #GstColorBalanceChannel::min_value and
- *         #GstColorBalanceChannel::max_value members of the
+ * See Also: The #GstColorBalanceChannel.min_value and
+ *         #GstColorBalanceChannel.max_value members of the
  *         #GstColorBalanceChannel object.
  */
 void
@@ -165,8 +169,8 @@ gst_color_balance_set_value (GstColorBalance * balance,
  * Retrieve the current value of the indicated channel, between min_value
  * and max_value.
  * 
- * See Also: The #GstColorBalanceChannel::min_value and
- *         #GstColorBalanceChannel::max_value members of the
+ * See Also: The #GstColorBalanceChannel.min_value and
+ *         #GstColorBalanceChannel.max_value members of the
  *         #GstColorBalanceChannel object.
  * 
  * Returns: The current value of the channel.
@@ -175,7 +179,11 @@ gint
 gst_color_balance_get_value (GstColorBalance * balance,
     GstColorBalanceChannel * channel)
 {
-  GstColorBalanceClass *klass = GST_COLOR_BALANCE_GET_CLASS (balance);
+  GstColorBalanceClass *klass;
+
+  g_return_val_if_fail (GST_IS_COLOR_BALANCE (balance), 0);
+
+  klass = GST_COLOR_BALANCE_GET_CLASS (balance);
 
   if (klass->get_value) {
     return klass->get_value (balance, channel);
@@ -197,7 +205,12 @@ gst_color_balance_get_value (GstColorBalance * balance,
 GstColorBalanceType
 gst_color_balance_get_balance_type (GstColorBalance * balance)
 {
-  GstColorBalanceClass *klass = GST_COLOR_BALANCE_GET_CLASS (balance);
+  GstColorBalanceClass *klass;
+
+  g_return_val_if_fail (GST_IS_COLOR_BALANCE (balance),
+      GST_COLOR_BALANCE_SOFTWARE);
+
+  klass = GST_COLOR_BALANCE_GET_CLASS (balance);
 
   return klass->balance_type;
 }
@@ -217,6 +230,9 @@ void
 gst_color_balance_value_changed (GstColorBalance * balance,
     GstColorBalanceChannel * channel, gint value)
 {
+
+  g_return_if_fail (GST_IS_COLOR_BALANCE (balance));
+
   g_signal_emit (G_OBJECT (balance),
       gst_color_balance_signals[VALUE_CHANGED], 0, channel, value);
 
index 2be7db6..62771b5 100644 (file)
@@ -66,6 +66,17 @@ typedef enum
   GST_COLOR_BALANCE_SOFTWARE
 } GstColorBalanceType;
 
+/**
+ * GstColorBalanceClass:
+ * @klass: the parent interface
+ * @balance_type: implementation type
+ * @list_channels: list handled channels
+ * @set_value: set a channel value
+ * @get_value: get a channel value
+ * @value_changed: default handler for value changed notification
+ *
+ * Color-balance interface.
+ */
 struct _GstColorBalanceClass {
   GTypeInterface klass;
 
@@ -85,6 +96,7 @@ struct _GstColorBalanceClass {
                           GstColorBalanceChannel *channel,
                           gint                    value);
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
index f279f38..22a2a7f 100644 (file)
@@ -57,7 +57,13 @@ struct _GstColorBalanceChannel {
   gint    max_value;
 };
 
-
+/**
+ * GstColorBalanceChannelClass:
+ * @parent: the parent interface
+ * @value_changed: default handler for value changed notification
+ *
+ * Color-balance channel class.
+ */
 struct _GstColorBalanceChannelClass {
   GObjectClass parent;
 
@@ -65,6 +71,7 @@ struct _GstColorBalanceChannelClass {
   void (* value_changed) (GstColorBalanceChannel *channel,
                           gint                    value);
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
index 8117d20..0c6abf0 100644 (file)
@@ -544,7 +544,7 @@ gst_mixer_option_changed (GstMixer * mixer,
  * options of a given options object has changed.
  *
  * The new options are not contained in the message on purpose. Applications
- * should call gst_mixer_option_get_values() on @opts to make @opts update
+ * should call gst_mixer_options_get_values() on @opts to make @opts update
  * its internal state and obtain the new list of values.
  *
  * This function only works for GstElements that are implementing the
index ae3e830..71c8f75 100644 (file)
@@ -47,6 +47,13 @@ G_BEGIN_DECLS
 typedef struct _GstMixer GstMixer;
 typedef struct _GstMixerClass GstMixerClass;
 
+/**
+ * GstMixerType:
+ * @GST_MIXER_HARDWARE: mixing is implemented with dedicated hardware.
+ * @GST_MIXER_SOFTWARE: mixing is implemented via software processing.
+ *
+ * Mixer classification.
+ */
 typedef enum
 {
   GST_MIXER_HARDWARE,
index 2724da5..9b65bb1 100644 (file)
@@ -49,22 +49,25 @@ typedef struct _GstMixerOptionsClass GstMixerOptionsClass;
 
 /**
  * GstMixerOptions:
- * @parent: Parent object
  * @values: List of option strings. Do not access this member directly,
  *     always use gst_mixer_options_get_values() instead.
+ *
+ * Mixer control object.
  */
 struct _GstMixerOptions {
   GstMixerTrack parent;
 
+  /*< public >*/
   /* list of strings (do not access directly) (FIXME 0.11: make private) */
   GList        *values;
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
 /**
  * GstMixerOptionsClass:
- * @parent: Parent class
+ * @parent: the parent interface
  * @get_values: Optional implementation of gst_mixer_options_get_values().
  *    (Since: 0.10.18)
  */
index 7203ce8..c8edbe8 100644 (file)
@@ -53,7 +53,7 @@
  * mouse moving over a clickable region, or the set of available angles changing.
  * </para><para>
  * The GstNavigation message functions provide functions for creating and parsing
- * custom bus messages for signalling GstNavigation changes.
+ * custom bus messages for signaling GstNavigation changes.
  * </para>
  * </listitem>
  * </itemizedlist>
@@ -486,7 +486,7 @@ gst_navigation_query_parse_angles (GstQuery * query, guint * cur_angle,
  * Check a bus message to see if it is a #GstNavigation event, and return
  * the #GstNavigationMessageType identifying the type of the message if so.
  *
- * Returns: The type of the #GstNavigationMessage, or
+ * Returns: The type of the #GstMessage, or
  * #GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
  * notification.
  *
index cf7f7b9..b4eaca5 100644 (file)
@@ -39,12 +39,20 @@ G_BEGIN_DECLS
 typedef struct _GstNavigation GstNavigation;
 typedef struct _GstNavigationInterface GstNavigationInterface;
 
+/**
+ * GstNavigationInterface:
+ * @g_iface: the parent interface
+ * @send_event: sending a navigation event
+ *
+ * Color-balance interface.
+ */
 struct _GstNavigationInterface {
   GTypeInterface g_iface;
 
   /* virtual functions */
   void (*send_event) (GstNavigation *navigation, GstStructure *structure);
-  
+
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -109,7 +117,7 @@ typedef enum {
   GST_NAVIGATION_COMMAND_MENU5    = 5,
   GST_NAVIGATION_COMMAND_MENU6    = 6,
   GST_NAVIGATION_COMMAND_MENU7    = 7,
-  
+
   GST_NAVIGATION_COMMAND_LEFT     = 20,
   GST_NAVIGATION_COMMAND_RIGHT    = 21,
   GST_NAVIGATION_COMMAND_UP       = 22,
@@ -130,6 +138,14 @@ typedef enum {
 #define GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    GST_NAVIGATION_COMMAND_MENU7
 
 /* Queries */
+/**
+ * GstNavigationQueryType:
+ * @GST_NAVIGATION_QUERY_INVALID: invalid query
+ * @GST_NAVIGATION_QUERY_COMMANDS: command query
+ * @GST_NAVIGATION_QUERY_ANGLES: viewing angle query
+ *
+ * Tyoes of navigation interface queries.
+ */
 typedef enum
 {
   GST_NAVIGATION_QUERY_INVALID     = 0,
@@ -245,9 +261,9 @@ gboolean gst_navigation_event_parse_command (GstEvent *event,
 /* interface virtual function wrappers */
 void gst_navigation_send_event (GstNavigation *navigation,
         GstStructure *structure);
-void gst_navigation_send_key_event (GstNavigation *navigation, 
+void gst_navigation_send_key_event (GstNavigation *navigation,
         const char *event, const char *key);
-void gst_navigation_send_mouse_event (GstNavigation *navigation, 
+void gst_navigation_send_mouse_event (GstNavigation *navigation,
         const char *event, int button, double x, double y);
 void gst_navigation_send_command (GstNavigation *navigation,
         GstNavigationCommand command);
index 64d0d39..c287544 100644 (file)
@@ -105,8 +105,8 @@ gst_property_probe_iface_init (GstPropertyProbeInterface * iface)
  *
  * Get a list of properties for which probing is supported.
  *
- * Returns: the list of properties for which probing is supported
- * by this element.
+ * Returns: the list of #GParamSpec * pointers representing 
+ * properties for which probing is supported by this element.
  */
 const GList *
 gst_property_probe_get_properties (GstPropertyProbe * probe)
index 32a824c..3a082ed 100644 (file)
@@ -27,11 +27,11 @@ G_BEGIN_DECLS
 #define GST_TYPE_STREAM_VOLUME \
   (gst_stream_volume_get_type ())
 #define GST_STREAM_VOLUME(obj) \
-  (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume))
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume))
 #define GST_STREAM_VOLUME_INTERFACE(iface) \
   (G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_STREAM_VOLUME, GstStreamVolumeInterface))
 #define GST_IS_STREAM_VOLUME(obj) \
-  (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME))
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME))
 #define GST_IS_STREAM_VOLUME_INTERFACE(iface) \
   (G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_STREAM_VOLUME))
 #define GST_STREAM_VOLUME_GET_INTERFACE(inst) \
@@ -53,7 +53,7 @@ struct _GstStreamVolumeInterface {
  * @GST_STREAM_VOLUME_FORMAT_CUBIC: Cubic volume scale
  * @GST_STREAM_VOLUME_FORMAT_DB: Logarithmic volume scale (dB, amplitude not power)
  *
- * Different representations of a stream volume. gst_stream_volume_convert()
+ * Different representations of a stream volume. gst_stream_volume_convert_volume()
  * allows to convert between the different representations.
  *
  * Formulas to convert from a linear to a cubic or dB volume are
index e7ca24e..c728135 100644 (file)
@@ -45,6 +45,25 @@ G_BEGIN_DECLS
 typedef struct _GstTuner GstTuner;
 typedef struct _GstTunerClass GstTunerClass;
 
+/**
+ * GstTunerClass:
+ * @klass: the parent interface
+ * @list_channels: list available channels
+ * @set_channel: set to a channel
+ * @get_channel: return the current channel
+ * @list_norms: list available norms
+ * @set_norm: set a norm
+ * @get_norm: return the current norm
+ * @set_frequency: set the frequency
+ * @get_frequency: return the current frequency
+ * @signal_strength: get the signal strength
+ * @channel_changed: default handler for channel changed notification
+ * @norm_changed: default handler for norm changed notification
+ * @frequency_changed: default handler for frequency changed notification
+ * @signal_changed: default handler for signal-strength changed notification
+ *
+ * Tuner interface.
+ */
 struct _GstTunerClass {
   GTypeInterface klass;
 
@@ -80,6 +99,7 @@ struct _GstTunerClass {
                              GstTunerChannel *channel,
                              gint             signal);
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
index e7bd655..77c9e75 100644 (file)
  *  // ignore anything but 'prepare-xwindow-id' element messages
  *  if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT)
  *    return GST_BUS_PASS;
- *  
+ *
  *  if (!gst_structure_has_name (message-&gt;structure, "prepare-xwindow-id"))
  *    return GST_BUS_PASS;
- *  
+ *
  *  win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0);
- *  
+ *
  *  XSetWindowBackgroundPixmap (disp, win, None);
- *  
+ *
  *  XMapRaised (disp, win);
- *  
+ *
  *  XSync (disp, FALSE);
- *   
+ *
  *  gst_x_overlay_set_window_handle (GST_X_OVERLAY (GST_MESSAGE_SRC (message)),
  *      win);
- *   
+ *
  *  gst_message_unref (message);
- *   
+ *
  *  return GST_BUS_DROP;
  * }
  * ...
  * <title>GstXOverlay and Gtk+</title>
  * <para>
  * |[
+ * #include &lt;gst/interfaces/xoverlay.h&gt;
  * #include &lt;gtk/gtk.h&gt;
  * #ifdef GDK_WINDOWING_X11
  * #include &lt;gdk/gdkx.h&gt;  // for GDK_WINDOW_XID
  *    return GST_BUS_PASS;
  *  if (!gst_structure_has_name (message-&gt;structure, "prepare-xwindow-id"))
  *    return GST_BUS_PASS;
- *  
+ *
  *  if (video_window_xid != 0) {
  *    GstXOverlay *xoverlay;
- *    
+ *
  *    // GST_MESSAGE_SRC (message) will be the video sink element
  *    xoverlay = GST_X_OVERLAY (GST_MESSAGE_SRC (message));
  *    gst_x_overlay_set_window_handle (xoverlay, video_window_xid);
  *  } else {
  *    g_warning ("Should have obtained video_window_xid by now!");
  *  }
- *  
+ *
  *  gst_message_unref (message);
  *  return GST_BUS_DROP;
  * }
  *   if (!gdk_window_ensure_native (widget->window))
  *     g_error ("Couldn't create native window needed for GstXOverlay!");
  * #endif
- * 
+ *
  * #ifdef GDK_WINDOWING_X11
- *   video_window_xid = GDK_WINDOW_XID (video_window->window);
+ *   video_window_xid = GDK_WINDOW_XID (gtk_widget_get_window (video_window));
  * #endif
  * }
  * ...
  *   ...
  *   // show the GUI
  *   gtk_widget_show_all (app_window);
- * 
+ *
  *   // realize window now so that the video window gets created and we can
  *   // obtain its XID before the pipeline is started up and the videosink
  *   // asks for the XID of the window to render onto
- *   gtk_widget_realize (window);
- * 
+ *   gtk_widget_realize (video_window);
+ *
  *   // we should have the XID now
  *   g_assert (video_window_xid != 0);
  *   ...
  * #include &lt;glib.h&gt;
  * #include &lt;gst/gst.h&gt;
  * #include &lt;gst/interfaces/xoverlay.h&gt;
- * 
+ *
  * #include &lt;QApplication&gt;
  * #include &lt;QTimer&gt;
  * #include &lt;QWidget&gt;
- * 
+ *
  * int main(int argc, char *argv[])
  * {
  *   if (!g_thread_supported ())
  *     g_thread_init (NULL);
- * 
+ *
  *   gst_init (&argc, &argv);
  *   QApplication app(argc, argv);
  *   app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit ()));
- * 
+ *
  *   // prepare the pipeline
- * 
+ *
  *   GstElement *pipeline = gst_pipeline_new ("xvoverlay");
  *   GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
  *   GstElement *sink = gst_element_factory_make ("xvimagesink", NULL);
  *   gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL);
  *   gst_element_link (src, sink);
- *   
+ *
  *   // prepare the ui
- * 
+ *
  *   QWidget window;
  *   window.resize(320, 240);
  *   window.show();
- *   
+ *
  *   WId xwinid = window.winId();
  *   gst_x_overlay_set_window_handle (GST_X_OVERLAY (sink), xwinid);
- * 
+ *
  *   // run the pipeline
- * 
+ *
  *   GstStateChangeReturn sret = gst_element_set_state (pipeline,
  *       GST_STATE_PLAYING);
  *   if (sret == GST_STATE_CHANGE_FAILURE) {
  *     // Exit application
  *     QTimer::singleShot(0, QApplication::activeWindow(), SLOT(quit()));
  *   }
- * 
+ *
  *   int ret = app.exec();
- *   
+ *
  *   window.hide();
  *   gst_element_set_state (pipeline, GST_STATE_NULL);
  *   gst_object_unref (pipeline);
- * 
+ *
  *   return ret;
  * }
  * ]|
@@ -333,12 +334,12 @@ gst_x_overlay_base_init (gpointer g_class)
 
 /**
  * gst_x_overlay_set_xwindow_id:
- * @overlay: a #GstXOverlay to set the XWindow on.
- * @xwindow_id: a #XID referencing the XWindow.
+ * @overlay: a #GstXOverlay to set the window on.
+ * @xwindow_id: a XID referencing the XWindow.
  *
  * This will call the video overlay's set_xwindow_id method. You should
  * use this method to tell to a XOverlay to display video output to a
- * specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
+ * specific XWindow. Passing 0 as the @xwindow_id will tell the overlay to
  * stop using that window and create an internal one.
  *
  * Deprecated: Use gst_x_overlay_set_window_handle() instead.
@@ -358,13 +359,13 @@ gst_x_overlay_set_xwindow_id (GstXOverlay * overlay, gulong xwindow_id)
 
 /**
  * gst_x_overlay_set_window_handle:
- * @overlay: a #GstXOverlay to set the XWindow on.
- * @xwindow_id: a #XID referencing the XWindow.
+ * @overlay: a #GstXOverlay to set the window on.
+ * @handle: a handle referencing the window.
  *
  * This will call the video overlay's set_window_handle method. You
  * should use this method to tell to a XOverlay to display video output to a
- * specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
- * stop using that window and create an internal one.
+ * specific window (e.g. an XWindow on X11). Passing 0 as the  @handle will
+ * tell the overlay to stop using that window and create an internal one.
  *
  * Since: 0.10.31
  */
@@ -399,7 +400,7 @@ gst_x_overlay_set_window_handle (GstXOverlay * overlay, guintptr handle)
 /**
  * gst_x_overlay_got_xwindow_id:
  * @overlay: a #GstXOverlay which got a XWindow.
- * @xwindow_id: a #XID referencing the XWindow.
+ * @xwindow_id: a XID referencing the XWindow.
  *
  * This will post a "have-xwindow-id" element message on the bus.
  *
@@ -452,7 +453,7 @@ gst_x_overlay_got_window_handle (GstXOverlay * overlay, guintptr handle)
  * @overlay: a #GstXOverlay which does not yet have an XWindow.
  *
  * This will post a "prepare-xwindow-id" element message on the bus
- * to give applications an opportunity to call 
+ * to give applications an opportunity to call
  * gst_x_overlay_set_xwindow_id() before a plugin creates its own
  * window.
  *
@@ -501,7 +502,7 @@ gst_x_overlay_expose (GstXOverlay * overlay)
  * @handle_events: a #gboolean indicating if events should be handled or not.
  *
  * Tell an overlay that it should handle events from the window system. These
- * events are forwared upstream as navigation events. In some window system,
+ * events are forwarded upstream as navigation events. In some window system,
  * events are not propagated in the window hierarchy if a client is listening
  * for them. This method allows you to disable events handling completely
  * from the XOverlay.
index 055f510..6ac355c 100644 (file)
@@ -52,10 +52,11 @@ typedef struct _GstXOverlayClass GstXOverlayClass;
 /**
  * GstXOverlayClass:
  * @klass: parent interface type.
- * @set_xwindow_id: virtual method to configure the XWindow id
+ * @set_xwindow_id: (deprecated) virtual method to configure the XWindow handle
  * @expose: virtual method to handle expose events
  * @handle_events: virtual method to handle events
  * @set_render_rectangle: virtual method to set the render rectangle (since 0.10.29)
+ * @set_window_handle: virtual method to configure the window handle
  *
  * #GstXOverlay interface
  */
@@ -67,14 +68,16 @@ struct _GstXOverlayClass {
   void (* set_xwindow_id)      (GstXOverlay *overlay,
                                 gulong       xwindow_id);
 #else
+#ifndef __GTK_DOC_IGNORE__
   void (* set_xwindow_id_disabled) (GstXOverlay *overlay,
                                 gulong       xwindow_id);
+#endif
 #endif /* not GST_DISABLE_DEPRECATED */
 
   void (* expose)              (GstXOverlay *overlay);
-  
+
   void (* handle_events)       (GstXOverlay *overlay,
-                                gboolean     handle_events);  
+                                gboolean     handle_events);
 
   void (* set_render_rectangle) (GstXOverlay *overlay,
                                  gint x, gint y,
@@ -90,7 +93,7 @@ GType   gst_x_overlay_get_type          (void);
 
 /* virtual class function wrappers */
 #ifndef GST_DISABLE_DEPRECATED
-void gst_x_overlay_set_xwindow_id      (GstXOverlay *overlay, 
+void gst_x_overlay_set_xwindow_id      (GstXOverlay *overlay,
                                         gulong xwindow_id);
 #endif
 
@@ -103,7 +106,7 @@ void gst_x_overlay_expose              (GstXOverlay *overlay);
 void gst_x_overlay_handle_events       (GstXOverlay *overlay,
                                         gboolean     handle_events);
 
-void gst_x_overlay_set_window_handle   (GstXOverlay *overlay, 
+void gst_x_overlay_set_window_handle   (GstXOverlay *overlay,
                                         guintptr handle);
 
 /* public methods to dispatch bus messages */
index 8f4891a..80684ff 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -103,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstnetbufferincludedir)"
@@ -114,8 +121,8 @@ am_libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo
 libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstnetbuffer_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
        --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -132,21 +139,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstnetbuffer_@GST_MAJORMINOR@_la_SOURCES)
 DIST_SOURCES = $(libgstnetbuffer_@GST_MAJORMINOR@_la_SOURCES)
@@ -215,6 +222,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -275,6 +283,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -284,9 +293,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -309,6 +321,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -381,10 +394,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -418,7 +434,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -523,7 +538,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstnetbuffer-@GST_MAJORMINOR@.la: $(libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstnetbuffer-@GST_MAJORMINOR@.la: $(libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstnetbuffer_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstnetbuffer_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -537,34 +552,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo: gstnetbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo -MD -MP -MF $(DEPDIR)/libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.Tpo -c -o libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo `test -f 'gstnetbuffer.c' || echo '$(srcdir)/'`gstnetbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.Tpo $(DEPDIR)/libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstnetbuffer.c' object='libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstnetbuffer.c' object='libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo `test -f 'gstnetbuffer.c' || echo '$(srcdir)/'`gstnetbuffer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo `test -f 'gstnetbuffer.c' || echo '$(srcdir)/'`gstnetbuffer.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -588,9 +599,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -608,9 +617,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstnetbufferincludeHEADERS: $(libgstnetbufferinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstnetbufferincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstnetbufferincludedir)"
@@ -628,9 +635,7 @@ uninstall-libgstnetbufferincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstnetbufferinclude_HEADERS)'; test -n "$(libgstnetbufferincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstnetbufferincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstnetbufferincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstnetbufferincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -731,10 +736,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 6328a76..9998dc8 100644 (file)
@@ -288,7 +288,7 @@ gst_netaddress_get_address_bytes (const GstNetAddress * naddr,
  * Set just the address bytes stored in @naddr into @address.
  *
  * Note that @port must be expressed in network byte order, use g_htons() to
- * convert it to network byte order order. IP4 address bytes must also be
+ * convert it to network byte order. IP4 address bytes must also be
  * stored in network byte order.
  *
  * Returns: number of bytes actually copied
index fab6523..1ed49ab 100644 (file)
@@ -45,9 +45,7 @@ noinst_HEADERS = \
        pbutils-private.h
 EXTRA_DIST = pbutils-marshal.list
 
-libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = \
-  $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
-  $(GST_LIBS)
+libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS)
 libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstpbutils_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
@@ -83,7 +81,6 @@ GstPbutils-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_MAJ
                $(gir_cincludes) \
                -I$(top_srcdir)/gst-libs \
                -I$(top_builddir)/gst-libs \
-               --add-include-path=$(srcdir)/../video \
                --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
                --library=libgstpbutils-@GST_MAJORMINOR@.la \
                --library-path=`$(PKG_CONFIG) --variable=libdir gstreamer-@GST_MAJORMINOR@` \
@@ -91,7 +88,6 @@ GstPbutils-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_MAJ
                --include=Gst-@GST_MAJORMINOR@ \
                --libtool="$(top_builddir)/libtool" \
                --pkg gstreamer-@GST_MAJORMINOR@ \
-               --pkg gstreamer-video-@GST_MAJORMINOR@ \
                --pkg-export gstreamer-pbutils-@GST_MAJORMINOR@ \
                --add-init-section="gst_init(NULL,NULL);" \
                --output $@ \
@@ -111,7 +107,6 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
        $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
                $(INTROSPECTION_COMPILER) \
                --includedir=$(srcdir) \
-               --includedir=$(srcdir)/../video \
                --includedir=$(builddir) \
                --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
                $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
index 5035427..3c716c0 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -69,6 +69,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -114,13 +115,19 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)" \
        "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
+libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES =  \
        $(am__DEPENDENCIES_1)
 am_libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo \
@@ -139,8 +146,8 @@ nodist_libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS =  \
 libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) \
        $(nodist_libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstpbutils_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
        --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -156,21 +163,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstpbutils_@GST_MAJORMINOR@_la_SOURCES) \
        $(nodist_libgstpbutils_@GST_MAJORMINOR@_la_SOURCES)
@@ -242,6 +249,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -302,6 +310,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -311,9 +320,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -336,6 +348,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -408,10 +421,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -445,7 +461,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -514,10 +529,7 @@ noinst_HEADERS = \
        pbutils-private.h
 
 EXTRA_DIST = pbutils-marshal.list
-libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = \
-  $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
-  $(GST_LIBS)
-
+libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS)
 libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstpbutils_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 BUILT_SOURCES = \
@@ -577,6 +589,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -619,7 +632,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstpbutils-@GST_MAJORMINOR@.la: $(libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) $(libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstpbutils-@GST_MAJORMINOR@.la: $(libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) $(libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstpbutils_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) $(libgstpbutils_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -644,122 +657,107 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo: gstpluginsbaseversion.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo `test -f 'gstpluginsbaseversion.c' || echo '$(srcdir)/'`gstpluginsbaseversion.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstpluginsbaseversion.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstpluginsbaseversion.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo `test -f 'gstpluginsbaseversion.c' || echo '$(srcdir)/'`gstpluginsbaseversion.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo `test -f 'gstpluginsbaseversion.c' || echo '$(srcdir)/'`gstpluginsbaseversion.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo: pbutils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo `test -f 'pbutils.c' || echo '$(srcdir)/'`pbutils.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pbutils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pbutils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo `test -f 'pbutils.c' || echo '$(srcdir)/'`pbutils.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo `test -f 'pbutils.c' || echo '$(srcdir)/'`pbutils.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo: codec-utils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo `test -f 'codec-utils.c' || echo '$(srcdir)/'`codec-utils.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='codec-utils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='codec-utils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo `test -f 'codec-utils.c' || echo '$(srcdir)/'`codec-utils.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo `test -f 'codec-utils.c' || echo '$(srcdir)/'`codec-utils.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo: descriptions.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-descriptions.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo `test -f 'descriptions.c' || echo '$(srcdir)/'`descriptions.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-descriptions.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-descriptions.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='descriptions.c' object='libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='descriptions.c' object='libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo `test -f 'descriptions.c' || echo '$(srcdir)/'`descriptions.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo `test -f 'descriptions.c' || echo '$(srcdir)/'`descriptions.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo: encoding-profile.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo `test -f 'encoding-profile.c' || echo '$(srcdir)/'`encoding-profile.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='encoding-profile.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='encoding-profile.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo `test -f 'encoding-profile.c' || echo '$(srcdir)/'`encoding-profile.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo `test -f 'encoding-profile.c' || echo '$(srcdir)/'`encoding-profile.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo: encoding-target.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo `test -f 'encoding-target.c' || echo '$(srcdir)/'`encoding-target.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='encoding-target.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='encoding-target.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo `test -f 'encoding-target.c' || echo '$(srcdir)/'`encoding-target.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo `test -f 'encoding-target.c' || echo '$(srcdir)/'`encoding-target.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo: install-plugins.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo `test -f 'install-plugins.c' || echo '$(srcdir)/'`install-plugins.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='install-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='install-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo `test -f 'install-plugins.c' || echo '$(srcdir)/'`install-plugins.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo `test -f 'install-plugins.c' || echo '$(srcdir)/'`install-plugins.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo: missing-plugins.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo `test -f 'missing-plugins.c' || echo '$(srcdir)/'`missing-plugins.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='missing-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='missing-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo `test -f 'missing-plugins.c' || echo '$(srcdir)/'`missing-plugins.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo `test -f 'missing-plugins.c' || echo '$(srcdir)/'`missing-plugins.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo: gstdiscoverer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstdiscoverer.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstdiscoverer.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo: gstdiscoverer-types.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstdiscoverer-types.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstdiscoverer-types.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo: pbutils-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pbutils-enumtypes.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pbutils-enumtypes.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.c
 
 libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo: pbutils-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo `test -f 'pbutils-marshal.c' || echo '$(srcdir)/'`pbutils-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pbutils-marshal.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pbutils-marshal.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo `test -f 'pbutils-marshal.c' || echo '$(srcdir)/'`pbutils-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo `test -f 'pbutils-marshal.c' || echo '$(srcdir)/'`pbutils-marshal.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -783,9 +781,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -803,9 +799,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstpbutils_@GST_MAJORMINOR@includeHEADERS: $(libgstpbutils_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)"
@@ -823,9 +817,7 @@ uninstall-libgstpbutils_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstpbutils_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 install-nodist_libgstpbutils_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstpbutils_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)"
@@ -843,9 +835,7 @@ uninstall-nodist_libgstpbutils_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nodist_libgstpbutils_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -948,10 +938,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1113,7 +1108,6 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
 @HAVE_INTROSPECTION_TRUE@              $(gir_cincludes) \
 @HAVE_INTROSPECTION_TRUE@              -I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@              -I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@              --add-include-path=$(srcdir)/../video \
 @HAVE_INTROSPECTION_TRUE@              --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
 @HAVE_INTROSPECTION_TRUE@              --library=libgstpbutils-@GST_MAJORMINOR@.la \
 @HAVE_INTROSPECTION_TRUE@              --library-path=`$(PKG_CONFIG) --variable=libdir gstreamer-@GST_MAJORMINOR@` \
@@ -1121,7 +1115,6 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
 @HAVE_INTROSPECTION_TRUE@              --include=Gst-@GST_MAJORMINOR@ \
 @HAVE_INTROSPECTION_TRUE@              --libtool="$(top_builddir)/libtool" \
 @HAVE_INTROSPECTION_TRUE@              --pkg gstreamer-@GST_MAJORMINOR@ \
-@HAVE_INTROSPECTION_TRUE@              --pkg gstreamer-video-@GST_MAJORMINOR@ \
 @HAVE_INTROSPECTION_TRUE@              --pkg-export gstreamer-pbutils-@GST_MAJORMINOR@ \
 @HAVE_INTROSPECTION_TRUE@              --add-init-section="gst_init(NULL,NULL);" \
 @HAVE_INTROSPECTION_TRUE@              --output $@ \
@@ -1132,7 +1125,6 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
 @HAVE_INTROSPECTION_TRUE@      $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @HAVE_INTROSPECTION_TRUE@              $(INTROSPECTION_COMPILER) \
 @HAVE_INTROSPECTION_TRUE@              --includedir=$(srcdir) \
-@HAVE_INTROSPECTION_TRUE@              --includedir=$(srcdir)/../video \
 @HAVE_INTROSPECTION_TRUE@              --includedir=$(builddir) \
 @HAVE_INTROSPECTION_TRUE@              --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
 @HAVE_INTROSPECTION_TRUE@              $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
index f885fe1..282e03e 100644 (file)
@@ -37,6 +37,8 @@
 
 #include "pbutils.h"
 
+#include <string.h>
+
 #define GST_SIMPLE_CAPS_HAS_NAME(caps,name) \
     gst_structure_has_name(gst_caps_get_structure((caps),0),(name))
 
@@ -72,7 +74,7 @@ guint
 gst_codec_utils_aac_get_sample_rate_from_index (guint sr_idx)
 {
   static const guint aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100,
-    32000, 24000, 22050, 16000, 12000, 11025, 8000
+    32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350
   };
 
   if (G_LIKELY (sr_idx < G_N_ELEMENTS (aac_sample_rates)))
@@ -527,6 +529,58 @@ gst_codec_utils_h264_get_level (const guint8 * sps, guint len)
 }
 
 /**
+ * gst_codec_utils_h264_get_level_idc:
+ * @level: A level string from caps
+ *
+ * Transform a level string from the caps into the level_idc
+ *
+ * Returns: the level_idc or 0 if the level is unknown
+ *
+ * Since: 0.10.36
+ */
+guint8
+gst_codec_utils_h264_get_level_idc (const gchar * level)
+{
+  g_return_val_if_fail (level != NULL, 0);
+
+  if (!strcmp (level, "1"))
+    return 10;
+  else if (!strcmp (level, "1b"))
+    return 9;
+  else if (!strcmp (level, "1.1"))
+    return 11;
+  else if (!strcmp (level, "1.2"))
+    return 12;
+  else if (!strcmp (level, "1.3"))
+    return 13;
+  else if (!strcmp (level, "2"))
+    return 20;
+  else if (!strcmp (level, "2.1"))
+    return 21;
+  else if (!strcmp (level, "2.2"))
+    return 22;
+  else if (!strcmp (level, "3"))
+    return 30;
+  else if (!strcmp (level, "3.1"))
+    return 31;
+  else if (!strcmp (level, "3.2"))
+    return 32;
+  else if (!strcmp (level, "4"))
+    return 40;
+  else if (!strcmp (level, "4.1"))
+    return 41;
+  else if (!strcmp (level, "4.2"))
+    return 42;
+  else if (!strcmp (level, "5"))
+    return 50;
+  else if (!strcmp (level, "5.1"))
+    return 51;
+
+  GST_WARNING ("Invalid level %s", level);
+  return 0;
+}
+
+/**
  * gst_codec_utils_h264_caps_set_level_and_profile:
  * @caps: the #GstCaps to which the level and profile are to be added
  * @sps: Pointer to the sequence parameter set for the stream.
@@ -658,13 +712,16 @@ gst_codec_utils_mpeg4video_get_profile (const guint8 * vis_obj_seq, guint len)
 const gchar *
 gst_codec_utils_mpeg4video_get_level (const guint8 * vis_obj_seq, guint len)
 {
-  /* The profile/level codes are from 14496-2, table G-1, and the Wireshark
-   * sources: epan/dissectors/packet-mp4ves.c
+  /* The profile/level codes are from 14496-2, table G-1, the Wireshark
+   * sources: epan/dissectors/packet-mp4ves.c and the Xvid Sources:
+   * src/xvid.h.
+   * Levels 4a and 5 for SP were added in Amendment 2, level 6 in Amendment 4
+   * (see Xvid sources vfw/config.c)
    *
    * Each profile has a different maximum level it defines. Some of them still
    * need special case handling, because not all levels start from 1, and the
    * Simple profile defines an intermediate level as well. */
-  static const int level_max[] = { 3, 2, 2, 4, 2, 1, 2, 2, 2, 4, 3, 4, 2, 3, 4,
+  static const int level_max[] = { 6, 2, 2, 4, 2, 1, 2, 2, 2, 4, 3, 4, 2, 3, 4,
     5
   };
   int profile_id, level_id;
@@ -707,7 +764,7 @@ gst_codec_utils_mpeg4video_get_level (const guint8 * vis_obj_seq, guint len)
       break;
 
     case 0xf:
-      if (level_id == 7 && level_id > 0xd)
+      if (level_id == 6 || level_id == 7 || level_id > 0xd)
         return NULL;
       break;
   }
@@ -718,6 +775,12 @@ gst_codec_utils_mpeg4video_get_level (const guint8 * vis_obj_seq, guint len)
   else if (profile_id == 0 && level_id == 9)
     /* Simple Profile / Level 0b */
     return "0b";
+  else if (profile_id == 0 && level_id == 4)
+    /* Simple Profile / Level 4a */
+    return "4a";
+  else if (profile_id == 0xf && level_id > 7)
+    /* Fine Granularity Scalable Profile */
+    return digit_to_string (level_id - 8);
   else if (level_id <= level_max[profile_id])
     /* Levels for all other cases */
     return digit_to_string (level_id);
index ae5a68b..7c2febf 100644 (file)
@@ -44,6 +44,8 @@ const gchar * gst_codec_utils_h264_get_profile (const guint8 * sps, guint len);
 
 const gchar * gst_codec_utils_h264_get_level   (const guint8 * sps, guint len);
 
+guint8        gst_codec_utils_h264_get_level_idc (const gchar * level);
+
 gboolean      gst_codec_utils_h264_caps_set_level_and_profile (GstCaps      * caps,
                                                                const guint8 * sps,
                                                                guint          len);
index c32e3d9..63f5aa6 100644 (file)
@@ -152,7 +152,7 @@ static const FormatInfo formats[] = {
   {"video/sp5x", "Sunplus JPEG 5.x", 0},
   {"video/vivo", "Vivo", 0},
   {"video/x-3ivx", "3ivx", 0},
-  {"video/x-4xm", "4X Techologies Video", 0},
+  {"video/x-4xm", "4X Technologies Video", 0},
   {"video/x-apple-video", "Apple video", 0},
   {"video/x-aasc", "Autodesk Animator", 0},
   {"video/x-camtasia", "TechSmith Camtasia", 0},
@@ -231,6 +231,7 @@ static const FormatInfo formats[] = {
   {"image/x-quicktime", "QuickTime Image Format (QTIF)", 0},
   {"image/x-sun-raster", "Sun Raster Format (RAS)", 0},
   {"image/x-tga", "TGA", 0},
+  {"image/vnd.wap.wbmp", "Wireless Bitmap", 0},
 
   /* subtitle formats with static descriptions */
   {"application/x-ass", "ASS", 0},
index eaa7507..e5e7a7e 100644 (file)
@@ -531,7 +531,7 @@ gst_encoding_video_profile_set_pass (GstEncodingVideoProfile * prof, guint pass)
  * @prof: a #GstEncodingVideoProfile
  * @variableframerate: a boolean
  *
- * If set to %TRUE, then the incoming streamm will be allowed to have non-constant
+ * If set to %TRUE, then the incoming stream will be allowed to have non-constant
  * framerate. If set to %FALSE (default value), then the incoming stream will
  * be normalized by dropping/duplicating frames in order to produce a
  * constance framerate.
@@ -964,3 +964,73 @@ gst_encoding_profile_deserialize_valfunc (GValue * value, const gchar * s)
 
   return FALSE;
 }
+
+/**
+ * gst_encoding_profile_from_discoverer:
+ * @info: (transfer none): The #GstDiscovererInfo to read from
+ *
+ * Creates a #GstEncodingProfile matching the formats from the given
+ * #GstEncodingProfile. Streams other than audio or video (eg,
+ * subtitles), are currently ignored.
+ *
+ * Returns: (transfer full): The new #GstEncodingProfile or %NULL.
+ *
+ * Since: 0.10.36
+ */
+GstEncodingProfile *
+gst_encoding_profile_from_discoverer (GstDiscovererInfo * info)
+{
+  GstEncodingContainerProfile *profile;
+  GstDiscovererStreamInfo *sinfo;
+  GList *streams, *stream;
+  GstCaps *caps = NULL;
+
+  if (!info || gst_discoverer_info_get_result (info) != GST_DISCOVERER_OK)
+    return NULL;
+
+  sinfo = gst_discoverer_info_get_stream_info (info);
+  if (!sinfo)
+    return NULL;
+
+  caps = gst_discoverer_stream_info_get_caps (sinfo);
+  GST_LOG ("Container: %" GST_PTR_FORMAT "\n", caps);
+  profile =
+      gst_encoding_container_profile_new ("auto-generated",
+      "Automatically generated from GstDiscovererInfo", caps, NULL);
+  gst_caps_unref (caps);
+  if (!profile) {
+    GST_ERROR ("Failed to create container profile from caps %" GST_PTR_FORMAT,
+        caps);
+    return NULL;
+  }
+
+  streams =
+      gst_discoverer_container_info_get_streams (GST_DISCOVERER_CONTAINER_INFO
+      (sinfo));
+  for (stream = streams; stream; stream = stream->next) {
+    GstEncodingProfile *sprofile = NULL;
+    sinfo = (GstDiscovererStreamInfo *) stream->data;
+    caps = gst_discoverer_stream_info_get_caps (sinfo);
+    GST_LOG ("Stream: %" GST_PTR_FORMAT "\n", caps);
+    if (GST_IS_DISCOVERER_AUDIO_INFO (sinfo)) {
+      sprofile =
+          (GstEncodingProfile *) gst_encoding_audio_profile_new (caps, NULL,
+          NULL, 0);
+    } else if (GST_IS_DISCOVERER_VIDEO_INFO (sinfo)) {
+      sprofile =
+          (GstEncodingProfile *) gst_encoding_video_profile_new (caps, NULL,
+          NULL, 0);
+    } else {
+      /* subtitles or other ? ignore for now */
+    }
+    if (sprofile)
+      gst_encoding_container_profile_add_profile (profile, sprofile);
+    else
+      GST_ERROR ("Failed to create stream profile from caps %" GST_PTR_FORMAT,
+          caps);
+    gst_caps_unref (caps);
+  }
+  gst_discoverer_stream_info_list_free (streams);
+
+  return (GstEncodingProfile *) profile;
+}
index 86becca..826db52 100644 (file)
@@ -26,6 +26,7 @@
 G_BEGIN_DECLS
 
 #include <gst/pbutils/pbutils-enumtypes.h>
+#include <gst/pbutils/gstdiscoverer.h>
 
 /**
  * GstEncodingProfile:
@@ -182,6 +183,9 @@ void     gst_encoding_video_profile_set_pass              (GstEncodingVideoProfi
                                                           guint pass);
 void     gst_encoding_video_profile_set_variableframerate (GstEncodingVideoProfile *prof,
                                                           gboolean variableframerate);
+
+GstEncodingProfile * gst_encoding_profile_from_discoverer (GstDiscovererInfo *info);
+
 G_END_DECLS
 
 #endif /* __GST_PROFILE_H__ */
index 29e67d0..f3002b7 100644 (file)
@@ -642,10 +642,14 @@ parse_encoding_profile (GKeyFile * in, gchar * parentprofilename,
             *) sprof, variableframerate);
     gst_encoding_video_profile_set_pass ((GstEncodingVideoProfile *) sprof,
         pass);
+    gst_encoding_profile_set_name (sprof, pname);
+    gst_encoding_profile_set_description (sprof, description);
   } else if (!g_strcmp0 (proftype, "audio")) {
     sprof =
         (GstEncodingProfile *) gst_encoding_audio_profile_new (formatcaps,
         preset, restrictioncaps, presence);
+    gst_encoding_profile_set_name (sprof, pname);
+    gst_encoding_profile_set_description (sprof, description);
   } else
     GST_ERROR ("Unknown profile format '%s'", proftype);
 
index 70c049d..48d3d80 100644 (file)
@@ -36,7 +36,7 @@ G_BEGIN_DECLS
  * GST_ENCODING_CATEGORY_DEVICE:
  *
  * #GstEncodingTarget category for device-specific targets.
- * The name of the target will usually be the contructor and model of the device,
+ * The name of the target will usually be the constructor and model of the device,
  * and that target will contain #GstEncodingProfiles suitable for that device.
  */
 #define GST_ENCODING_CATEGORY_DEVICE           "device"
index 2edf8e9..0cb9a1b 100644 (file)
@@ -39,6 +39,9 @@ static GstDiscovererAudioInfo
 static GstDiscovererVideoInfo
     * gst_discoverer_video_info_copy_int (GstDiscovererVideoInfo * ptr);
 
+static GstDiscovererSubtitleInfo
+    * gst_discoverer_subtitle_info_copy_int (GstDiscovererSubtitleInfo * ptr);
+
 /* Per-stream information */
 
 G_DEFINE_TYPE (GstDiscovererStreamInfo, gst_discoverer_stream_info,
@@ -110,6 +113,11 @@ gst_discoverer_info_copy_int (GstDiscovererStreamInfo * info,
     ret = (GstDiscovererStreamInfo *)
         gst_discoverer_video_info_copy_int ((GstDiscovererVideoInfo *) info);
 
+  } else if (ltyp == GST_TYPE_DISCOVERER_SUBTITLE_INFO) {
+    ret = (GstDiscovererStreamInfo *)
+        gst_discoverer_subtitle_info_copy_int ((GstDiscovererSubtitleInfo *)
+        info);
+
   } else
     ret = gst_discoverer_stream_info_new ();
 
@@ -199,15 +207,23 @@ G_DEFINE_TYPE (GstDiscovererAudioInfo, gst_discoverer_audio_info,
     GST_TYPE_DISCOVERER_STREAM_INFO);
 
 static void
+gst_discoverer_audio_info_finalize (GstDiscovererAudioInfo * info)
+{
+  g_free (info->language);
+  gst_discoverer_stream_info_finalize ((GstDiscovererStreamInfo *) info);
+}
+
+static void
 gst_discoverer_audio_info_class_init (GstDiscovererAudioInfoClass * klass)
 {
-  /* Nothing to initialize */
+  klass->finalize =
+      (GstMiniObjectFinalizeFunction) gst_discoverer_audio_info_finalize;
 }
 
 static void
 gst_discoverer_audio_info_init (GstDiscovererAudioInfo * info)
 {
-  /* Nothing to initialize */
+  info->language = NULL;
 }
 
 static GstDiscovererAudioInfo *
@@ -229,6 +245,50 @@ gst_discoverer_audio_info_copy_int (GstDiscovererAudioInfo * ptr)
   ret->depth = ptr->depth;
   ret->bitrate = ptr->bitrate;
   ret->max_bitrate = ptr->max_bitrate;
+  ret->language = g_strdup (ptr->language);
+
+  return ret;
+}
+
+/* Subtitle information */
+G_DEFINE_TYPE (GstDiscovererSubtitleInfo, gst_discoverer_subtitle_info,
+    GST_TYPE_DISCOVERER_STREAM_INFO);
+
+static void
+gst_discoverer_subtitle_info_init (GstDiscovererSubtitleInfo * info)
+{
+  info->language = NULL;
+}
+
+static void
+gst_discoverer_subtitle_info_finalize (GstDiscovererSubtitleInfo * info)
+{
+  g_free (info->language);
+  gst_discoverer_stream_info_finalize ((GstDiscovererStreamInfo *) info);
+}
+
+static void
+gst_discoverer_subtitle_info_class_init (GstMiniObjectClass * klass)
+{
+  klass->finalize =
+      (GstMiniObjectFinalizeFunction) gst_discoverer_subtitle_info_finalize;
+}
+
+static GstDiscovererSubtitleInfo *
+gst_discoverer_subtitle_info_new (void)
+{
+  return (GstDiscovererSubtitleInfo *)
+      gst_mini_object_new (GST_TYPE_DISCOVERER_SUBTITLE_INFO);
+}
+
+static GstDiscovererSubtitleInfo *
+gst_discoverer_subtitle_info_copy_int (GstDiscovererSubtitleInfo * ptr)
+{
+  GstDiscovererSubtitleInfo *ret;
+
+  ret = gst_discoverer_subtitle_info_new ();
+
+  ret->language = g_strdup (ptr->language);
 
   return ret;
 }
@@ -314,11 +374,13 @@ GstDiscovererInfo *
 gst_discoverer_info_copy (GstDiscovererInfo * ptr)
 {
   GstDiscovererInfo *ret;
-  GHashTable *stream_map = g_hash_table_new (g_direct_hash, NULL);
+  GHashTable *stream_map;
   GList *tmp;
 
   g_return_val_if_fail (ptr != NULL, NULL);
 
+  stream_map = g_hash_table_new (g_direct_hash, NULL);
+
   ret = gst_discoverer_info_new ();
 
   ret->uri = g_strdup (ptr->uri);
@@ -440,6 +502,25 @@ gst_discoverer_info_get_video_streams (GstDiscovererInfo * info)
 }
 
 /**
+ * gst_discoverer_info_get_subtitle_streams:
+ * @info: a #GstDiscovererInfo
+ *
+ * Finds all the #GstDiscovererSubtitleInfo contained in @info
+ *
+ * Returns: (transfer full) (element-type Gst.DiscovererStreamInfo): A #GList of
+ * matching #GstDiscovererStreamInfo. The caller should free it with
+ * gst_discoverer_stream_info_list_free().
+ *
+ * Since: 0.10.36
+ */
+GList *
+gst_discoverer_info_get_subtitle_streams (GstDiscovererInfo * info)
+{
+  return gst_discoverer_info_get_streams (info,
+      GST_TYPE_DISCOVERER_SUBTITLE_INFO);
+}
+
+/**
  * gst_discoverer_info_get_container_streams:
  * @info: a #GstDiscovererInfo
  *
@@ -481,6 +562,8 @@ gst_discoverer_stream_info_get_stream_type_nick (GstDiscovererStreamInfo * info)
     else
       return "video";
   }
+  if (GST_IS_DISCOVERER_SUBTITLE_INFO (info))
+    return "subtitles";
   return "unknown";
 }
 
@@ -679,6 +762,17 @@ AUDIO_INFO_ACCESSOR_CODE (bitrate, guint, 0);
 
 AUDIO_INFO_ACCESSOR_CODE (max_bitrate, guint, 0);
 
+/**
+ * gst_discoverer_audio_info_get_language:
+ * @info: a #GstDiscovererAudioInfo
+ *
+ * Returns: the language of the stream, or NULL if unknown.
+ *
+ * Since: 0.10.36
+ */
+
+AUDIO_INFO_ACCESSOR_CODE (language, const gchar *, NULL);
+
 /* GstDiscovererVideoInfo */
 
 #define VIDEO_INFO_ACCESSOR_CODE(fieldname, type, failval)             \
@@ -818,6 +912,24 @@ gst_discoverer_video_info_is_image (const GstDiscovererVideoInfo * info)
   return info->is_image;
 }
 
+/* GstDiscovererSubtitleInfo */
+
+#define SUBTITLE_INFO_ACCESSOR_CODE(fieldname, type, failval)                     \
+  GENERIC_ACCESSOR_CODE(gst_discoverer_subtitle_info, GstDiscovererSubtitleInfo*, \
+                       GST_TYPE_DISCOVERER_SUBTITLE_INFO,                        \
+                       fieldname, type, failval)
+
+/**
+ * gst_discoverer_subtitle_info_get_language:
+ * @info: a #GstDiscovererSubtitleInfo
+ *
+ * Returns: the language of the stream, or NULL if unknown.
+ *
+ * Since: 0.10.36
+ */
+
+SUBTITLE_INFO_ACCESSOR_CODE (language, const gchar *, NULL);
+
 /* GstDiscovererInfo */
 
 #define DISCOVERER_INFO_ACCESSOR_CODE(fieldname, type, failval)                \
@@ -910,7 +1022,7 @@ DISCOVERER_INFO_ACCESSOR_CODE (duration, GstClockTime, GST_CLOCK_TIME_NONE);
  * gst_discoverer_info_get_seekable:
  * @info: a #GstDiscovererInfo
  *
- * Returns: the wheter the URI is seekable.
+ * Returns: the whether the URI is seekable.
  *
  * Since: 0.10.32
  */
@@ -934,7 +1046,7 @@ DISCOVERER_INFO_ACCESSOR_CODE (misc, const GstStructure *, NULL);
  * gst_discoverer_info_get_tags:
  * @info: a #GstDiscovererInfo
  *
- * Returns: (transfer none): all tags contained in the %URI. If you wish to use
+ * Returns: (transfer none): all tags contained in the URI. If you wish to use
  * the tags after the life-time of @info, you will need to copy them.
  *
  * Since: 0.10.31
index 58d3e52..ba02cdb 100644 (file)
 #include "config.h"
 #endif
 
-#include <gst/video/video.h>
 #include "pbutils.h"
 #include "pbutils-marshal.h"
 #include "pbutils-private.h"
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (discoverer_debug);
 #define GST_CAT_DEFAULT discoverer_debug
 
@@ -437,6 +438,24 @@ _event_probe (GstPad * pad, GstEvent * event, PrivateStream * ps)
   return TRUE;
 }
 
+static GstStaticCaps subtitle_caps = GST_STATIC_CAPS ("text/plain; "
+    "text/x-pango-markup; subpicture/x-pgs; subpicture/x-dvb; "
+    "application/x-subtitle-unknown; application/x-ssa; application/x-ass; "
+    "subtitle/x-kate; application/x-kate; video/x-dvd-subpicture");
+
+static gboolean
+is_subtitle_caps (const GstCaps * caps)
+{
+  GstCaps *subs_caps;
+  gboolean ret;
+
+  subs_caps = gst_static_caps_get (&subtitle_caps);
+  ret = gst_caps_can_intersect (caps, subs_caps);
+  gst_caps_unref (subs_caps);
+
+  return ret;
+}
+
 static void
 uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
     GstDiscoverer * dc)
@@ -444,14 +463,6 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
   PrivateStream *ps;
   GstPad *sinkpad = NULL;
   GstCaps *caps;
-  static GstCaps *subs_caps = NULL;
-
-  if (!subs_caps) {
-    subs_caps = gst_caps_from_string ("text/plain; text/x-pango-markup; "
-        "subpicture/x-pgs; subpicture/x-dvb; application/x-subtitle-unknown; "
-        "application/x-ssa; application/x-ass; subtitle/x-kate; "
-        "video/x-dvd-subpicture; ");
-  }
 
   GST_DEBUG_OBJECT (dc, "pad %s:%s", GST_DEBUG_PAD_NAME (pad));
 
@@ -470,8 +481,8 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
 
   caps = gst_pad_get_caps_reffed (pad);
 
-  if (gst_caps_can_intersect (caps, subs_caps)) {
-    /* Subtitle streams are sparse and don't provide any information - don't
+  if (is_subtitle_caps (caps)) {
+    /* Subtitle streams are sparse and may not provide any information - don't
      * wait for data to preroll */
     g_object_set (ps->sink, "async", FALSE, NULL);
   }
@@ -591,11 +602,28 @@ collect_stream_information (GstDiscoverer * dc, PrivateStream * ps, guint idx)
     gst_caps_unref (caps);
   }
   if (ps->tags)
-    gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_STRUCTURE, ps->tags, NULL);
+    gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, ps->tags, NULL);
 
   return st;
 }
 
+/* takes ownership of new_tags, may replace *taglist with a new one */
+static void
+gst_discoverer_merge_and_replace_tags (GstTagList ** taglist,
+    GstTagList * new_tags)
+{
+  if (new_tags == NULL)
+    return;
+
+  if (*taglist == NULL) {
+    *taglist = new_tags;
+    return;
+  }
+
+  gst_tag_list_insert (*taglist, new_tags, GST_TAG_MERGE_REPLACE);
+  gst_tag_list_free (new_tags);
+}
+
 /* Parses a set of caps and tags in st and populates a GstDiscovererStreamInfo
  * structure (parent, if !NULL, otherwise it allocates one)
  */
@@ -604,16 +632,16 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
     GstDiscovererStreamInfo * parent)
 {
   GstCaps *caps;
-  GstStructure *caps_st, *tags_st;
+  GstStructure *caps_st;
+  GstTagList *tags_st;
   const gchar *name;
   int tmp, tmp2;
   guint utmp;
-  gboolean btmp;
 
   if (!st || !gst_structure_id_has_field (st, _CAPS_QUARK)) {
     GST_WARNING ("Couldn't find caps !");
     if (parent)
-      return parent;
+      return gst_discoverer_stream_info_ref (parent);
     else
       return (GstDiscovererStreamInfo *)
           gst_mini_object_new (GST_TYPE_DISCOVERER_STREAM_INFO);
@@ -627,11 +655,11 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
     GstDiscovererAudioInfo *info;
 
     if (parent)
-      info = (GstDiscovererAudioInfo *) parent;
+      info = (GstDiscovererAudioInfo *) gst_discoverer_stream_info_ref (parent);
     else {
       info = (GstDiscovererAudioInfo *)
           gst_mini_object_new (GST_TYPE_DISCOVERER_AUDIO_INFO);
-      info->parent.caps = caps;
+      info->parent.caps = gst_caps_ref (caps);
     }
 
     if (gst_structure_get_int (caps_st, "rate", &tmp))
@@ -644,8 +672,7 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
       info->depth = (guint) tmp;
 
     if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
-      gst_structure_id_get (st, _TAGS_QUARK,
-          GST_TYPE_STRUCTURE, &tags_st, NULL);
+      gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
       if (gst_structure_get_uint (tags_st, GST_TAG_BITRATE, &utmp) ||
           gst_structure_get_uint (tags_st, GST_TAG_NOMINAL_BITRATE, &utmp))
         info->bitrate = utmp;
@@ -654,28 +681,34 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
         info->max_bitrate = utmp;
 
       /* FIXME: Is it worth it to remove the tags we've parsed? */
-      info->parent.tags = gst_tag_list_merge (info->parent.tags,
-          (GstTagList *) tags_st, GST_TAG_MERGE_REPLACE);
+      gst_discoverer_merge_and_replace_tags (&info->parent.tags, tags_st);
+    }
 
-      gst_structure_free (tags_st);
+    if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
+      gchar *language;
+      if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
+              GST_TAG_LANGUAGE_CODE, &language)) {
+        info->language = language;
+      }
     }
 
+    gst_caps_unref (caps);
     return (GstDiscovererStreamInfo *) info;
 
   } else if (g_str_has_prefix (name, "video/") ||
       g_str_has_prefix (name, "image/")) {
     GstDiscovererVideoInfo *info;
-    GstVideoFormat format;
 
     if (parent)
-      info = (GstDiscovererVideoInfo *) parent;
+      info = (GstDiscovererVideoInfo *) gst_discoverer_stream_info_ref (parent);
     else {
       info = (GstDiscovererVideoInfo *)
           gst_mini_object_new (GST_TYPE_DISCOVERER_VIDEO_INFO);
-      info->parent.caps = caps;
+      info->parent.caps = gst_caps_ref (caps);
     }
 
-    if (gst_video_format_parse_caps (caps, &format, &tmp, &tmp2)) {
+    if (gst_structure_get_int (caps_st, "width", &tmp) &&
+        gst_structure_get_int (caps_st, "height", &tmp2)) {
       info->width = (guint) tmp;
       info->height = (guint) tmp2;
     }
@@ -683,22 +716,24 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
     if (gst_structure_get_int (caps_st, "depth", &tmp))
       info->depth = (guint) tmp;
 
-    if (gst_video_parse_caps_pixel_aspect_ratio (caps, &tmp, &tmp2)) {
+    if (gst_structure_get_fraction (caps_st, "pixel-aspect-ratio", &tmp, &tmp2)) {
       info->par_num = tmp;
       info->par_denom = tmp2;
+    } else {
+      info->par_num = 1;
+      info->par_denom = 1;
     }
 
-    if (gst_video_parse_caps_framerate (caps, &tmp, &tmp2)) {
+    if (gst_structure_get_fraction (caps_st, "framerate", &tmp, &tmp2)) {
       info->framerate_num = tmp;
       info->framerate_denom = tmp2;
     }
 
-    if (gst_video_format_parse_caps_interlaced (caps, &btmp))
-      info->interlaced = btmp;
+    if (!gst_structure_get_boolean (caps_st, "interlaced", &info->interlaced))
+      info->interlaced = FALSE;
 
     if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
-      gst_structure_id_get (st, _TAGS_QUARK,
-          GST_TYPE_STRUCTURE, &tags_st, NULL);
+      gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
       if (gst_structure_get_uint (tags_st, GST_TAG_BITRATE, &utmp) ||
           gst_structure_get_uint (tags_st, GST_TAG_NOMINAL_BITRATE, &utmp))
         info->bitrate = utmp;
@@ -707,11 +742,47 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
         info->max_bitrate = utmp;
 
       /* FIXME: Is it worth it to remove the tags we've parsed? */
-      info->parent.tags = gst_tag_list_merge (info->parent.tags,
-          (GstTagList *) tags_st, GST_TAG_MERGE_REPLACE);
-      gst_structure_free (tags_st);
+      gst_discoverer_merge_and_replace_tags (&info->parent.tags,
+          (GstTagList *) tags_st);
     }
 
+    gst_caps_unref (caps);
+    return (GstDiscovererStreamInfo *) info;
+
+  } else if (is_subtitle_caps (caps)) {
+    GstDiscovererSubtitleInfo *info;
+
+    if (parent)
+      info =
+          (GstDiscovererSubtitleInfo *) gst_discoverer_stream_info_ref (parent);
+    else {
+      info = (GstDiscovererSubtitleInfo *)
+          gst_mini_object_new (GST_TYPE_DISCOVERER_SUBTITLE_INFO);
+      info->parent.caps = gst_caps_ref (caps);
+    }
+
+    if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
+      const gchar *language;
+
+      gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
+
+      language = gst_structure_get_string (caps_st, GST_TAG_LANGUAGE_CODE);
+      if (language)
+        info->language = g_strdup (language);
+
+      /* FIXME: Is it worth it to remove the tags we've parsed? */
+      gst_discoverer_merge_and_replace_tags (&info->parent.tags, tags_st);
+    }
+
+    if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
+      gchar *language;
+      if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
+              GST_TAG_LANGUAGE_CODE, &language)) {
+        info->language = language;
+      }
+    }
+
+    gst_caps_unref (caps);
     return (GstDiscovererStreamInfo *) info;
 
   } else {
@@ -719,20 +790,19 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
     GstDiscovererStreamInfo *info;
 
     if (parent)
-      info = parent;
+      info = gst_discoverer_stream_info_ref (parent);
     else {
       info = (GstDiscovererStreamInfo *)
           gst_mini_object_new (GST_TYPE_DISCOVERER_STREAM_INFO);
-      info->caps = caps;
+      info->caps = gst_caps_ref (caps);
     }
 
     if (gst_structure_id_get (st, _TAGS_QUARK,
-            GST_TYPE_STRUCTURE, &tags_st, NULL)) {
-      info->tags = gst_tag_list_merge (info->tags, (GstTagList *) tags_st,
-          GST_TAG_MERGE_REPLACE);
-      gst_structure_free (tags_st);
+            GST_TYPE_TAG_LIST, &tags_st, NULL)) {
+      gst_discoverer_merge_and_replace_tags (&info->tags, tags_st);
     }
 
+    gst_caps_unref (caps);
     return info;
   }
 
@@ -756,8 +826,10 @@ find_stream_for_node (GstDiscoverer * dc, const GstStructure * topology)
   gst_structure_id_get (topology, _TOPOLOGY_PAD_QUARK,
       GST_TYPE_PAD, &pad, NULL);
 
-  if (!dc->priv->streams)
+  if (!dc->priv->streams) {
+    gst_object_unref (pad);
     return NULL;
+  }
 
   for (i = 0, tmp = dc->priv->streams; tmp; tmp = tmp->next, i++) {
     ps = (PrivateStream *) tmp->data;
@@ -778,9 +850,9 @@ find_stream_for_node (GstDiscoverer * dc, const GstStructure * topology)
 }
 
 static gboolean
-child_is_raw_stream (GstCaps * parent, GstCaps * child)
+child_is_raw_stream (const GstCaps * parent, const GstCaps * child)
 {
-  GstStructure *st1, *st2;
+  const GstStructure *st1, *st2;
   const gchar *name1, *name2;
 
   st1 = gst_caps_get_structure (parent, 0);
@@ -797,6 +869,9 @@ child_is_raw_stream (GstCaps * parent, GstCaps * child)
     return TRUE;
   }
 
+  if (is_subtitle_caps (parent))
+    return TRUE;
+
   return FALSE;
 }
 
@@ -846,30 +921,29 @@ parse_stream_topology (GstDiscoverer * dc, const GstStructure * topology,
           /* We sometimes get an extra sub-stream from the parser. If this is
            * the case, we just replace the parent caps with this stream's caps
            * since they might contain more information */
-          gst_caps_unref (parent->caps);
-          parent->caps = caps;
+          gst_caps_replace (&parent->caps, caps);
 
           parse_stream_topology (dc, st, parent);
           add_to_list = FALSE;
-
         } else if (child_is_raw_stream (parent->caps, caps)) {
           /* This is the "raw" stream corresponding to the parent. This
            * contains more information than the parent, tags etc. */
           parse_stream_topology (dc, st, parent);
           add_to_list = FALSE;
-          gst_caps_unref (caps);
-
         } else {
           GstDiscovererStreamInfo *next = parse_stream_topology (dc, st, NULL);
           res->next = next;
           next->previous = res;
         }
+        gst_caps_unref (caps);
       }
     }
 
     if (add_to_list) {
       dc->priv->current_info->stream_list =
           g_list_append (dc->priv->current_info->stream_list, res);
+    } else {
+      gst_discoverer_stream_info_unref (res);
     }
 
   } else if (GST_VALUE_HOLDS_LIST (nval)) {
@@ -893,7 +967,7 @@ parse_stream_topology (GstDiscoverer * dc, const GstStructure * topology,
       GstTagList *tmp;
 
       gst_structure_id_get (topology, _TAGS_QUARK,
-          GST_TYPE_STRUCTURE, &tags, NULL);
+          GST_TYPE_TAG_LIST, &tags, NULL);
 
       GST_DEBUG ("Merge tags %" GST_PTR_FORMAT, tags);
 
@@ -952,6 +1026,31 @@ discoverer_collect (GstDiscoverer * dc)
           GST_DEBUG ("Got duration %" GST_TIME_FORMAT, GST_TIME_ARGS (dur));
           dc->priv->current_info->duration = (guint64) dur;
         }
+      } else {
+        GstStateChangeReturn sret;
+
+        /* Some parsers may not even return a rough estimate right away, e.g.
+         * because they've only processed a single frame so far, so if we
+         * didn't get a duration the first time, spin a bit and try again.
+         * Ugly, but still better than making parsers or other elements return
+         * completely bogus values. We need some API extensions to solve this
+         * better. */
+        GST_INFO ("No duration yet, try a bit harder..");
+        sret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
+        if (sret != GST_STATE_CHANGE_FAILURE) {
+          int i;
+
+          for (i = 0; i < 2; ++i) {
+            g_usleep (G_USEC_PER_SEC / 20);
+            if (gst_element_query_duration (pipeline, &format, &dur) &&
+                format == GST_FORMAT_TIME && dur > 0) {
+              GST_DEBUG ("Got duration %" GST_TIME_FORMAT, GST_TIME_ARGS (dur));
+              dc->priv->current_info->duration = (guint64) dur;
+              break;
+            }
+          }
+          gst_element_set_state (pipeline, GST_STATE_PAUSED);
+        }
       }
 
       if (dc->priv->seeking_query) {
@@ -977,7 +1076,7 @@ discoverer_collect (GstDiscoverer * dc)
      * caps named image/<foo> (th exception being MJPEG video which is also
      * type image/jpeg), and should consist of precisely one stream (actually
      * initially there are 2, the image and raw stream, but we squash these
-     * while parsing the stream topology). At some ponit, if we find that these
+     * while parsing the stream topology). At some point, if we find that these
      * conditions are not sufficient, we can count the number of decoders and
      * parsers in the chain, and if there's more than one decoder, or any
      * parser at all, we should not mark this as an image.
@@ -989,8 +1088,8 @@ discoverer_collect (GstDiscoverer * dc)
           gst_caps_get_structure (dc->priv->current_info->stream_info->caps, 0);
 
       if (g_str_has_prefix (gst_structure_get_name (st), "image/"))
-        ((GstDiscovererVideoInfo *) dc->priv->current_info->
-            stream_info)->is_image = TRUE;
+        ((GstDiscovererVideoInfo *) dc->priv->current_info->stream_info)->
+            is_image = TRUE;
     }
   }
 
@@ -1023,9 +1122,9 @@ handle_current_async (GstDiscoverer * dc)
 {
   GSource *source;
   static GSourceCallbackFuncs cb_funcs = {
-    .ref = _void_g_object_ref,
-    .unref = g_object_unref,
-    .get = get_async_cb,
+    _void_g_object_ref,
+    g_object_unref,
+    get_async_cb,
   };
 
   /* Attach a timeout to the main context */
@@ -1086,8 +1185,12 @@ handle_message (GstDiscoverer * dc, GstMessage * msg)
         GST_DEBUG_OBJECT (GST_MESSAGE_SRC (msg),
             "Setting result to MISSING_PLUGINS");
         dc->priv->current_info->result = GST_DISCOVERER_MISSING_PLUGINS;
+        if (dc->priv->current_info->misc)
+          gst_structure_free (dc->priv->current_info->misc);
         dc->priv->current_info->misc = gst_structure_copy (msg->structure);
       } else if (sttype == _STREAM_TOPOLOGY_QUARK) {
+        if (dc->priv->current_topology)
+          gst_structure_free (dc->priv->current_topology);
         dc->priv->current_topology = gst_structure_copy (msg->structure);
       }
     }
@@ -1138,7 +1241,6 @@ handle_current_sync (GstDiscoverer * dc)
       done = handle_message (dc, msg);
       gst_message_unref (msg);
     }
-
   } while (!done && (g_timer_elapsed (timer, NULL) < deadline));
 
   /* return result */
@@ -1410,7 +1512,7 @@ gst_discoverer_stop (GstDiscoverer * discoverer)
  * A copy of @uri will be made internally, so the caller can safely g_free()
  * afterwards.
  *
- * Returns: %TRUE if the @uri was succesfully appended to the list of pending
+ * Returns: %TRUE if the @uri was successfully appended to the list of pending
  * uris, else %FALSE
  *
  * Since: 0.10.31
@@ -1441,7 +1543,7 @@ gst_discoverer_discover_uri_async (GstDiscoverer * discoverer,
  * gst_discoverer_discover_uri:
  * @discoverer: A #GstDiscoverer
  * @uri: The URI to run on.
- * @err: If an error occurred, this field will be filled in.
+ * @err: (out) (allow-none): If an error occurred, this field will be filled in.
  *
  * Synchronously discovers the given @uri.
  *
@@ -1477,10 +1579,12 @@ gst_discoverer_discover_uri (GstDiscoverer * discoverer, const gchar * uri,
   discoverer_collect (discoverer);
 
   /* Get results */
-  if (discoverer->priv->current_error)
-    *err = g_error_copy (discoverer->priv->current_error);
-  else
-    *err = NULL;
+  if (err) {
+    if (discoverer->priv->current_error)
+      *err = g_error_copy (discoverer->priv->current_error);
+    else
+      *err = NULL;
+  }
   if (res != GST_DISCOVERER_OK) {
     GST_DEBUG ("Setting result to %d (was %d)", res,
         discoverer->priv->current_info->result);
index 671dbaa..450b766 100644 (file)
@@ -110,6 +110,7 @@ guint gst_discoverer_audio_info_get_sample_rate(const GstDiscovererAudioInfo* in
 guint gst_discoverer_audio_info_get_depth(const GstDiscovererAudioInfo* info);
 guint gst_discoverer_audio_info_get_bitrate(const GstDiscovererAudioInfo* info);
 guint gst_discoverer_audio_info_get_max_bitrate(const GstDiscovererAudioInfo* info);
+const gchar * gst_discoverer_audio_info_get_language(const GstDiscovererAudioInfo* info);
 
 /**
  * GstDiscovererVideoInfo:
@@ -141,6 +142,26 @@ guint           gst_discoverer_video_info_get_max_bitrate(const GstDiscovererVid
 gboolean        gst_discoverer_video_info_is_image(const GstDiscovererVideoInfo* info);
 
 /**
+ * GstDiscovererSubtitleInfo:
+ *
+ * #GstDiscovererStreamInfo specific to subtitle streams (this includes text and
+ * image based ones).
+ *
+ * Since: 0.10.36
+ */
+#define GST_TYPE_DISCOVERER_SUBTITLE_INFO \
+  (gst_discoverer_subtitle_info_get_type ())
+#define GST_DISCOVERER_SUBTITLE_INFO(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DISCOVERER_SUBTITLE_INFO, GstDiscovererSubtitleInfo))
+#define GST_IS_DISCOVERER_SUBTITLE_INFO(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DISCOVERER_SUBTITLE_INFO))
+typedef struct _GstDiscovererSubtitleInfo GstDiscovererSubtitleInfo;
+typedef GstMiniObjectClass GstDiscovererSubtitleInfoClass;
+GType gst_discoverer_subtitle_info_get_type (void);
+
+const gchar *   gst_discoverer_subtitle_info_get_language(const GstDiscovererSubtitleInfo* info);
+
+/**
  * GstDiscovererResult:
  * @GST_DISCOVERER_OK: The discovery was successful
  * @GST_DISCOVERER_URI_INVALID: the URI is invalid
@@ -199,6 +220,7 @@ GList *                   gst_discoverer_info_get_streams (GstDiscovererInfo *in
                                                           GType streamtype);
 GList *                   gst_discoverer_info_get_audio_streams (GstDiscovererInfo *info);
 GList *                   gst_discoverer_info_get_video_streams (GstDiscovererInfo *info);
+GList *                   gst_discoverer_info_get_subtitle_streams (GstDiscovererInfo *info);
 GList *                   gst_discoverer_info_get_container_streams (GstDiscovererInfo *info);
 
 void                      gst_discoverer_stream_info_list_free (GList *infos);
@@ -236,7 +258,7 @@ struct _GstDiscoverer {
 struct _GstDiscovererClass {
   GObjectClass parentclass;
 
-  /*< signals >*/
+  /* signals */
   void        (*finished)        (GstDiscoverer *discoverer);
   void        (*starting)        (GstDiscoverer *discoverer);
   void        (*discovered)      (GstDiscoverer *discoverer,
index 997a0b8..82645c1 100644 (file)
@@ -26,7 +26,7 @@
  * if you need to check at runtime what version of the gst-plugins-base
  * libraries are being used / you are currently linked against.
  *
- * The version macros get defined by including <gst/pbutils/pbutils.h>.
+ * The version macros get defined by including &lt;gst/pbutils/pbutils.h&gt;.
  */
 
 #include "gstpluginsbaseversion.h"
index e57d8ac..f3ec2c0 100644 (file)
@@ -58,7 +58,7 @@ G_BEGIN_DECLS
  *
  * Result codes returned by gst_install_plugins_async() and
  * gst_install_plugins_sync(), and also the result code passed to the
- * #GstInstallPluginsResultFunc specified with gst_install_plugin_async().
+ * #GstInstallPluginsResultFunc specified with gst_install_plugins_async().
  *
  * These codes indicate success or failure of starting an external installer
  * program and to what extent the requested plugins could be installed.
index 5031df0..2efaa17 100644 (file)
@@ -44,6 +44,8 @@ struct _GstDiscovererAudioInfo {
 
   guint bitrate;
   guint max_bitrate;
+
+  gchar *language;
 };
 
 struct _GstDiscovererVideoInfo {
@@ -64,6 +66,12 @@ struct _GstDiscovererVideoInfo {
   gboolean is_image;
 };
 
+struct _GstDiscovererSubtitleInfo {
+  GstDiscovererStreamInfo parent;
+
+  gchar *language;
+};
+
 struct _GstDiscovererInfo {
   GstMiniObject parent;
 
index 9793749..b358c13 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -103,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)"
@@ -117,8 +124,8 @@ am_libgstriff_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstriff_@GST_MAJORMINOR@_la-riff-read.lo
 libgstriff_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstriff_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstriff_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -134,21 +141,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstriff_@GST_MAJORMINOR@_la_SOURCES)
 DIST_SOURCES = $(libgstriff_@GST_MAJORMINOR@_la_SOURCES)
@@ -217,6 +224,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -277,6 +285,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -286,9 +295,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -311,6 +323,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -383,10 +396,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -420,7 +436,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -537,7 +552,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstriff-@GST_MAJORMINOR@.la: $(libgstriff_@GST_MAJORMINOR@_la_OBJECTS) $(libgstriff_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstriff-@GST_MAJORMINOR@.la: $(libgstriff_@GST_MAJORMINOR@_la_OBJECTS) $(libgstriff_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstriff_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstriff_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstriff_@GST_MAJORMINOR@_la_OBJECTS) $(libgstriff_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -553,50 +568,44 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstriff_@GST_MAJORMINOR@_la-riff.lo: riff.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstriff_@GST_MAJORMINOR@_la-riff.lo -MD -MP -MF $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff.Tpo -c -o libgstriff_@GST_MAJORMINOR@_la-riff.lo `test -f 'riff.c' || echo '$(srcdir)/'`riff.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff.Tpo $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='riff.c' object='libgstriff_@GST_MAJORMINOR@_la-riff.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='riff.c' object='libgstriff_@GST_MAJORMINOR@_la-riff.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff.lo `test -f 'riff.c' || echo '$(srcdir)/'`riff.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff.lo `test -f 'riff.c' || echo '$(srcdir)/'`riff.c
 
 libgstriff_@GST_MAJORMINOR@_la-riff-media.lo: riff-media.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstriff_@GST_MAJORMINOR@_la-riff-media.lo -MD -MP -MF $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-media.Tpo -c -o libgstriff_@GST_MAJORMINOR@_la-riff-media.lo `test -f 'riff-media.c' || echo '$(srcdir)/'`riff-media.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-media.Tpo $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-media.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='riff-media.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-media.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='riff-media.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-media.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-media.lo `test -f 'riff-media.c' || echo '$(srcdir)/'`riff-media.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-media.lo `test -f 'riff-media.c' || echo '$(srcdir)/'`riff-media.c
 
 libgstriff_@GST_MAJORMINOR@_la-riff-read.lo: riff-read.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstriff_@GST_MAJORMINOR@_la-riff-read.lo -MD -MP -MF $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-read.Tpo -c -o libgstriff_@GST_MAJORMINOR@_la-riff-read.lo `test -f 'riff-read.c' || echo '$(srcdir)/'`riff-read.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-read.Tpo $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-read.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='riff-read.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-read.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='riff-read.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-read.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-read.lo `test -f 'riff-read.c' || echo '$(srcdir)/'`riff-read.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-read.lo `test -f 'riff-read.c' || echo '$(srcdir)/'`riff-read.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -620,9 +629,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -640,9 +647,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstriff_@GST_MAJORMINOR@includeHEADERS: $(libgstriff_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstriff_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)"
@@ -660,9 +665,7 @@ uninstall-libgstriff_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstriff_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstriff_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -763,10 +766,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 8771d2e..1d7b760 100644 (file)
@@ -46,6 +46,8 @@ G_BEGIN_DECLS
 #define GST_RIFF_TAG_JUNQ GST_MAKE_FOURCC ('J','U','N','Q')
 #define GST_RIFF_TAG_idx1 GST_MAKE_FOURCC ('i','d','x','1')
 #define GST_RIFF_TAG_dmlh GST_MAKE_FOURCC ('d','m','l','h')
+#define GST_RIFF_TAG_ID32 GST_MAKE_FOURCC ('I','D','3','2')
+#define GST_RIFF_TAG_IDVX GST_MAKE_FOURCC ('I','D','V','X')
 /* WAV stuff */
 #define GST_RIFF_TAG_fmt  GST_MAKE_FOURCC ('f','m','t',' ')
 #define GST_RIFF_TAG_data GST_MAKE_FOURCC ('d','a','t','a')
@@ -424,6 +426,7 @@ typedef struct _gst_riff_strf_auds {       /* == WaveHeader (?) */
 #define GST_RIFF_WAVE_FORMAT_LH_CODEC       (0x1100)
 #define GST_RIFF_WAVE_FORMAT_NORRIS         (0x1400)
 #define GST_RIFF_WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS (0x1500)
+#define GST_RIFF_WAVE_FORMAT_AAC_PR         (0x1601)  /* Microsoft Playready */
 #define GST_RIFF_WAVE_FORMAT_A52            (0x2000)
 #define GST_RIFF_WAVE_FORMAT_DTS            (0x2001)
 #define GST_RIFF_WAVE_FORMAT_SONIC          (0x2048)
index 40b2bf6..bc7ac84 100644 (file)
@@ -1380,6 +1380,7 @@ gst_riff_create_audio_caps (guint16 codec_id,
     case GST_RIFF_WAVE_FORMAT_AAC:
     case GST_RIFF_WAVE_FORMAT_AAC_AC:
     case GST_RIFF_WAVE_FORMAT_AAC_pm:
+    case GST_RIFF_WAVE_FORMAT_AAC_PR:
     {
       channels_max = 8;
       caps = gst_caps_new_simple ("audio/mpeg",
index e5983be..314c19f 100644 (file)
@@ -527,7 +527,7 @@ too_small:
  *        codec initialization data).
  *
  * Parses a interleaved (also known as "complex")  stream´s strf
- * structure plus optionally some extradata from input data. This 
+ * structure plus optionally some extradata from input data. This
  * function takes ownership of @buf.
  *
  * Returns: TRUE if parsing succeeded, otherwise FALSE.
@@ -608,7 +608,6 @@ gst_riff_parse_info (GstElement * element,
   GstTagList *taglist;
 
   g_return_if_fail (_taglist != NULL);
-  g_return_if_fail (buf != NULL);
 
   if (!buf) {
     *_taglist = NULL;
index bcdb56a..b83d9c7 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -103,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstrtpincludedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -118,8 +125,8 @@ am_libgstrtp_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo
 libgstrtp_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstrtp_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstrtp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -135,21 +142,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstrtp_@GST_MAJORMINOR@_la_SOURCES)
 DIST_SOURCES = $(libgstrtp_@GST_MAJORMINOR@_la_SOURCES)
@@ -218,6 +225,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -278,6 +286,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -287,9 +296,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -312,6 +324,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -384,10 +397,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -421,7 +437,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -538,7 +553,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstrtp-@GST_MAJORMINOR@.la: $(libgstrtp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstrtp-@GST_MAJORMINOR@.la: $(libgstrtp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstrtp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstrtp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstrtp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -557,74 +572,65 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo: gstrtpbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo `test -f 'gstrtpbuffer.c' || echo '$(srcdir)/'`gstrtpbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo `test -f 'gstrtpbuffer.c' || echo '$(srcdir)/'`gstrtpbuffer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo `test -f 'gstrtpbuffer.c' || echo '$(srcdir)/'`gstrtpbuffer.c
 
 libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo: gstrtcpbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo `test -f 'gstrtcpbuffer.c' || echo '$(srcdir)/'`gstrtcpbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtcpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtcpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo `test -f 'gstrtcpbuffer.c' || echo '$(srcdir)/'`gstrtcpbuffer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo `test -f 'gstrtcpbuffer.c' || echo '$(srcdir)/'`gstrtcpbuffer.c
 
 libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo: gstrtppayloads.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtppayloads.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtppayloads.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.c
 
 libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo: gstbasertpaudiopayload.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo `test -f 'gstbasertpaudiopayload.c' || echo '$(srcdir)/'`gstbasertpaudiopayload.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstbasertpaudiopayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstbasertpaudiopayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo `test -f 'gstbasertpaudiopayload.c' || echo '$(srcdir)/'`gstbasertpaudiopayload.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo `test -f 'gstbasertpaudiopayload.c' || echo '$(srcdir)/'`gstbasertpaudiopayload.c
 
 libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo: gstbasertppayload.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo `test -f 'gstbasertppayload.c' || echo '$(srcdir)/'`gstbasertppayload.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstbasertppayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstbasertppayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo `test -f 'gstbasertppayload.c' || echo '$(srcdir)/'`gstbasertppayload.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo `test -f 'gstbasertppayload.c' || echo '$(srcdir)/'`gstbasertppayload.c
 
 libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo: gstbasertpdepayload.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo `test -f 'gstbasertpdepayload.c' || echo '$(srcdir)/'`gstbasertpdepayload.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstbasertpdepayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstbasertpdepayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo `test -f 'gstbasertpdepayload.c' || echo '$(srcdir)/'`gstbasertpdepayload.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo `test -f 'gstbasertpdepayload.c' || echo '$(srcdir)/'`gstbasertpdepayload.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -648,9 +654,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -668,9 +672,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstrtpincludeHEADERS: $(libgstrtpinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstrtpincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstrtpincludedir)"
@@ -688,9 +690,7 @@ uninstall-libgstrtpincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstrtpinclude_HEADERS)'; test -n "$(libgstrtpincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstrtpincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstrtpincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstrtpincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -791,10 +791,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index d8ba21b..c8d0b57 100644 (file)
  * SECTION:gstbasertpaudiopayload
  * @short_description: Base class for audio RTP payloader
  *
- * <refsect2>
- * <para>
  * Provides a base class for audio RTP payloaders for frame or sample based
  * audio codecs (constant bitrate)
- * </para>
- * <para>
+ *
  * This class derives from GstBaseRTPPayload. It can be used for payloading
  * audio codecs. It will only work with constant bitrate codecs. It supports
  * both frame based and sample based codecs. It takes care of packing up the
@@ -38,7 +35,8 @@
  * equal to min-ptime (if set). If min-ptime is not set, any residual data is
  * sent in a last RTP packet. In the case of frame based codecs, the resulting
  * RTP packets always contain full frames.
- * </para>
+ *
+ * <refsect2>
  * <title>Usage</title>
  * <para>
  * To use this base class, your child element needs to call either
@@ -841,7 +839,7 @@ gst_base_rtp_audio_payload_handle_buffer (GstBaseRTPPayload *
         GstClockTime diff;
         guint64 bytes;
         /* we're only going to apply a positive gap, otherwise we let the marker
-         * bit do its thing. simply convert to bytes and add the the current
+         * bit do its thing. simply convert to bytes and add the current
          * offset */
         diff = timestamp - priv->last_timestamp;
         bytes = priv->time_to_bytes (payload, diff);
index 3fdb488..13b9366 100644 (file)
@@ -61,10 +61,17 @@ struct _GstBaseRTPAudioPayload
   gpointer _gst_reserved[GST_PADDING];
 };
 
+/**
+ * GstBaseRTPAudioPayloadClass:
+ * @parent_class: the parent class
+ *
+ * Base class for audio RTP payloader.
+ */
 struct _GstBaseRTPAudioPayloadClass
 {
   GstBaseRTPPayloadClass parent_class;
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
index 978a262..9c33413 100644 (file)
@@ -1,5 +1,5 @@
 /* GStreamer
- * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org> 
+ * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org>
  * Copyright (C) <2005> Nokia Corporation <kai.vehmanen@nokia.com>
  *
  * This library is free software; you can redistribute it and/or
  * SECTION:gstbasertpdepayload
  * @short_description: Base class for RTP depayloader
  *
- * <refsect2>
- * <para>
  * Provides a base class for RTP depayloaders
- * </para>
- * </refsect2>
  */
 
 #include "gstbasertpdepayload.h"
index 000c116..d0326a4 100644 (file)
@@ -1,5 +1,5 @@
 /* GStreamer
- * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org> 
+ * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -92,6 +92,18 @@ struct _GstBaseRTPDepayload
   gpointer _gst_reserved[GST_PADDING-1];
 };
 
+/**
+ * GstBaseRTPDepayloadClass:
+ * @parent_class: the parent class
+ * @set_caps: configure the depayloader
+ * @add_to_queue: (deprecated)
+ * @process: process incoming rtp packets
+ * @set_gst_timestamp: convert from RTP timestamp to GST timestamp
+ * @packet_lost: signal the depayloader about packet loss
+ * @handle_event: custom event handling
+ *
+ * Base class for audio RTP payloader.
+ */
 struct _GstBaseRTPDepayloadClass
 {
   GstElementClass parent_class;
index 060e4e0..d7f1aa3 100644 (file)
  * SECTION:gstbasertppayload
  * @short_description: Base class for RTP payloader
  *
- * <refsect2>
- * <para>
  * Provides a base class for RTP payloaders
- * </para>
- * </refsect2>
  */
 
 #ifdef HAVE_CONFIG_H
-#  include "config.h"
+#include "config.h"
 #endif
 
 #include <string.h>
@@ -48,6 +44,9 @@ struct _GstBaseRTPPayloadPrivate
   gboolean perfect_rtptime;
   gint notified_first_timestamp;
 
+  guint64 base_offset;
+  gint64 base_rtime;
+
   gint64 prop_max_ptime;
   gint64 caps_max_ptime;
 };
@@ -295,6 +294,8 @@ gst_basertppayload_init (GstBaseRTPPayload * basertppayload, gpointer g_class)
   basertppayload->min_ptime = DEFAULT_MIN_PTIME;
   basertppayload->priv->perfect_rtptime = DEFAULT_PERFECT_RTPTIME;
   basertppayload->abidata.ABI.ptime_multiple = DEFAULT_PTIME_MULTIPLE;
+  basertppayload->priv->base_offset = GST_BUFFER_OFFSET_NONE;
+  basertppayload->priv->base_rtime = GST_BUFFER_OFFSET_NONE;
 
   basertppayload->media = NULL;
   basertppayload->encoding_name = NULL;
@@ -418,6 +419,8 @@ gst_basertppayload_event (GstPad * pad, GstEvent * event)
       gst_segment_set_newsegment_full (segment, update, rate, arate, fmt, start,
           stop, position);
 
+      basertppayload->priv->base_offset = GST_BUFFER_OFFSET_NONE;
+
       GST_DEBUG_OBJECT (basertppayload,
           "configured NEWSEGMENT update %d, rate %lf, applied rate %lf, "
           "format %d, "
@@ -779,9 +782,11 @@ gst_basertppayload_prepare_push (GstBaseRTPPayload * payload,
   }
 
   /* convert to RTP time */
-  if (priv->perfect_rtptime && data.offset != GST_BUFFER_OFFSET_NONE) {
+  if (priv->perfect_rtptime && data.offset != GST_BUFFER_OFFSET_NONE &&
+      priv->base_offset != GST_BUFFER_OFFSET_NONE) {
     /* if we have an offset, use that for making an RTP timestamp */
-    data.rtptime = payload->ts_base + data.offset;
+    data.rtptime = payload->ts_base + priv->base_rtime +
+        data.offset - priv->base_offset;
     GST_LOG_OBJECT (payload,
         "Using offset %" G_GUINT64_FORMAT " for RTP timestamp", data.offset);
   } else if (GST_CLOCK_TIME_IS_VALID (data.timestamp)) {
@@ -800,6 +805,8 @@ gst_basertppayload_prepare_push (GstBaseRTPPayload * payload,
           GST_TIME_ARGS (rtime));
       rtime =
           gst_util_uint64_scale_int (rtime, payload->clock_rate, GST_SECOND);
+      priv->base_offset = data.offset;
+      priv->base_rtime = rtime;
     }
     /* add running_time in clock-rate units to the base timestamp */
     data.rtptime = payload->ts_base + rtime;
@@ -1049,6 +1056,7 @@ gst_basertppayload_change_state (GstElement * element,
         basertppayload->ts_base = basertppayload->ts_offset;
       basertppayload->timestamp = basertppayload->ts_base;
       g_atomic_int_set (&basertppayload->priv->notified_first_timestamp, 1);
+      priv->base_offset = GST_BUFFER_OFFSET_NONE;
       break;
     default:
       break;
index 9707be0..86a5721 100644 (file)
@@ -120,6 +120,16 @@ struct _GstBaseRTPPayload
   } abidata;
 };
 
+/**
+ * GstBaseRTPPayloadClass:
+ * @parent_class: the parent class
+ * @set_caps: configure the payloader
+ * @handle_buffer: process data
+ * @handle_event: custom event handling
+ * @get_caps: get desired caps
+ *
+ * Base class for audio RTP payloader.
+ */
 struct _GstBaseRTPPayloadClass
 {
   GstElementClass parent_class;
index 3b37c6f..539f763 100644 (file)
@@ -111,7 +111,7 @@ gboolean
 gst_rtcp_buffer_validate_data (guint8 * data, guint len)
 {
   guint16 header_mask;
-  guint16 header_len;
+  guint header_len;
   guint8 version;
   guint data_len;
   gboolean padding;
@@ -599,7 +599,7 @@ gst_rtcp_packet_get_length (GstRTCPPacket * packet)
  * @ntptime: result NTP time
  * @rtptime: result RTP time
  * @packet_count: result packet count
- * @octet_count: result octect count
+ * @octet_count: result octet count
  *
  * Parse the SR sender info and store the values.
  */
@@ -641,7 +641,7 @@ gst_rtcp_packet_sr_get_sender_info (GstRTCPPacket * packet, guint32 * ssrc,
  * @ntptime: the NTP time
  * @rtptime: the RTP time
  * @packet_count: the packet count
- * @octet_count: the octect count
+ * @octet_count: the octet count
  *
  * Set the given values in the SR packet @packet.
  */
@@ -1137,7 +1137,7 @@ gst_rtcp_packet_sdes_next_entry (GstRTCPPacket * packet)
  *
  * When @type refers to a text item, @data will point to a UTF8 string. Note
  * that this UTF8 string is NOT null-terminated. Use
- * gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry.
+ * gst_rtcp_packet_sdes_copy_entry() to get a null-terminated copy of the entry.
  *
  * Returns: %TRUE if there was valid data.
  */
index 6f57fad..aec9232 100644 (file)
@@ -63,10 +63,17 @@ typedef enum
  * GstRTCPFBType:
  * @GST_RTCP_FB_TYPE_INVALID: Invalid type
  * @GST_RTCP_RTPFB_TYPE_NACK: Generic NACK
+ * @GST_RTCP_RTPFB_TYPE_TMMBR: Temporary Maximum Media Stream Bit Rate Request
+ * @GST_RTCP_RTPFB_TYPE_TMMBN: Temporary Maximum Media Stream Bit Rate
+ *    Notification
  * @GST_RTCP_PSFB_TYPE_PLI: Picture Loss Indication
  * @GST_RTCP_PSFB_TYPE_SLI: Slice Loss Indication
  * @GST_RTCP_PSFB_TYPE_RPSI: Reference Picture Selection Indication
  * @GST_RTCP_PSFB_TYPE_AFB: Application layer Feedback
+ * @GST_RTCP_PSFB_TYPE_FIR: Full Intra Request Command
+ * @GST_RTCP_PSFB_TYPE_TSTR: Temporal-Spatial Trade-off Request
+ * @GST_RTCP_PSFB_TYPE_TSTN: Temporal-Spatial Trade-off Notification
+ * @GST_RTCP_PSFB_TYPE_VBCN: Video Back Channel Message
  *
  * Different types of feedback messages.
  *
@@ -78,11 +85,19 @@ typedef enum
   GST_RTCP_FB_TYPE_INVALID    = 0,
   /* RTPFB types */
   GST_RTCP_RTPFB_TYPE_NACK    = 1,
+  /* RTPFB types assigned in RFC 5104 */
+  GST_RTCP_RTPFB_TYPE_TMMBR   = 3,
+  GST_RTCP_RTPFB_TYPE_TMMBN   = 4,
   /* PSFB types */
   GST_RTCP_PSFB_TYPE_PLI      = 1,
   GST_RTCP_PSFB_TYPE_SLI      = 2,
   GST_RTCP_PSFB_TYPE_RPSI     = 3,
-  GST_RTCP_PSFB_TYPE_AFB      = 15
+  GST_RTCP_PSFB_TYPE_AFB      = 15,
+  /* PSFB types assigned in RFC 5104 */
+  GST_RTCP_PSFB_TYPE_FIR      = 4,
+  GST_RTCP_PSFB_TYPE_TSTR     = 5,
+  GST_RTCP_PSFB_TYPE_TSTN     = 6,
+  GST_RTCP_PSFB_TYPE_VBCN     = 7,
 } GstRTCPFBType;
 
 /** 
index 141b072..cb63827 100644 (file)
@@ -284,7 +284,7 @@ gst_rtp_buffer_calc_payload_len (guint packet_len, guint8 pad_len,
       - pad_len;
 }
 
-/**
+/*
  * validate_data:
  * @data: the data to validate
  * @len: the length of @data to validate
@@ -323,7 +323,7 @@ validate_data (guint8 * data, guint len, guint8 * payload, guint payload_len)
     guint8 *extpos;
     guint16 extlen;
 
-    /* this points to the extenstion bits and header length */
+    /* this points to the extension bits and header length */
     extpos = &data[header_len];
 
     /* skip the header and check that we have enough space */
@@ -401,7 +401,7 @@ gst_rtp_buffer_validate_data (guint8 * data, guint len)
  * @buffer: the buffer to validate
  *
  * Check if the data pointed to by @buffer is a valid RTP packet using
- * validate_data().
+ * gst_rtp_buffer_validate_data().
  * Use this function to validate a packet before using the other functions in
  * this module.
  *
@@ -425,7 +425,7 @@ gst_rtp_buffer_validate (GstBuffer * buffer)
  * gst_rtp_buffer_list_validate:
  * @list: the buffer list to validate
  *
- * Check if all RTP packets in the @list are valid using validate_data().
+ * Check if all RTP packets in the @list are valid using gst_rtp_buffer_validate_data().
  * Use this function to validate an list before using the other functions in
  * this module.
  *
index 60487ba..0cd7652 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -68,6 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -113,6 +114,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstrtspincludedir)" \
        "$(DESTDIR)$(libgstrtspincludedir)"
@@ -135,8 +142,8 @@ nodist_libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1)
 libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) \
        $(nodist_libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstrtsp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -152,21 +159,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstrtsp_@GST_MAJORMINOR@_la_SOURCES) \
        $(nodist_libgstrtsp_@GST_MAJORMINOR@_la_SOURCES)
@@ -237,6 +244,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -297,6 +305,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -306,9 +315,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -331,6 +343,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -403,10 +416,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -440,7 +456,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -549,6 +564,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -589,7 +605,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstrtsp-@GST_MAJORMINOR@.la: $(libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtsp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstrtsp-@GST_MAJORMINOR@.la: $(libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtsp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstrtsp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstrtsp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtsp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -612,106 +628,93 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo: gstrtspbase64.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo `test -f 'gstrtspbase64.c' || echo '$(srcdir)/'`gstrtspbase64.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtspbase64.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtspbase64.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo `test -f 'gstrtspbase64.c' || echo '$(srcdir)/'`gstrtspbase64.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo `test -f 'gstrtspbase64.c' || echo '$(srcdir)/'`gstrtspbase64.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo: gstrtsptransport.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo `test -f 'gstrtsptransport.c' || echo '$(srcdir)/'`gstrtsptransport.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtsptransport.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtsptransport.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo `test -f 'gstrtsptransport.c' || echo '$(srcdir)/'`gstrtsptransport.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo `test -f 'gstrtsptransport.c' || echo '$(srcdir)/'`gstrtsptransport.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo: gstrtspurl.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo `test -f 'gstrtspurl.c' || echo '$(srcdir)/'`gstrtspurl.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtspurl.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtspurl.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo `test -f 'gstrtspurl.c' || echo '$(srcdir)/'`gstrtspurl.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo `test -f 'gstrtspurl.c' || echo '$(srcdir)/'`gstrtspurl.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo: gstrtspmessage.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo `test -f 'gstrtspmessage.c' || echo '$(srcdir)/'`gstrtspmessage.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtspmessage.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtspmessage.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo `test -f 'gstrtspmessage.c' || echo '$(srcdir)/'`gstrtspmessage.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo `test -f 'gstrtspmessage.c' || echo '$(srcdir)/'`gstrtspmessage.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo: gstrtspconnection.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo `test -f 'gstrtspconnection.c' || echo '$(srcdir)/'`gstrtspconnection.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtspconnection.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtspconnection.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo `test -f 'gstrtspconnection.c' || echo '$(srcdir)/'`gstrtspconnection.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo `test -f 'gstrtspconnection.c' || echo '$(srcdir)/'`gstrtspconnection.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo: gstrtspdefs.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo `test -f 'gstrtspdefs.c' || echo '$(srcdir)/'`gstrtspdefs.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtspdefs.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtspdefs.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo `test -f 'gstrtspdefs.c' || echo '$(srcdir)/'`gstrtspdefs.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo `test -f 'gstrtspdefs.c' || echo '$(srcdir)/'`gstrtspdefs.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo: gstrtspextension.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo `test -f 'gstrtspextension.c' || echo '$(srcdir)/'`gstrtspextension.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtspextension.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtspextension.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo `test -f 'gstrtspextension.c' || echo '$(srcdir)/'`gstrtspextension.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo `test -f 'gstrtspextension.c' || echo '$(srcdir)/'`gstrtspextension.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo: gstrtsprange.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtsprange.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtsprange.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo: gstrtsp-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtsp-marshal.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtsp-marshal.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
 
 libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo: gstrtsp-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstrtsp-enumtypes.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstrtsp-enumtypes.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -735,9 +738,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -755,9 +756,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstrtspincludeHEADERS: $(libgstrtspinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstrtspincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstrtspincludedir)"
@@ -775,9 +774,7 @@ uninstall-libgstrtspincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstrtspinclude_HEADERS)'; test -n "$(libgstrtspincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstrtspincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstrtspincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstrtspincludedir)'; $(am__uninstall_files_from_dir)
 install-nodist_libgstrtspincludeHEADERS: $(nodist_libgstrtspinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstrtspincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstrtspincludedir)"
@@ -795,9 +792,7 @@ uninstall-nodist_libgstrtspincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nodist_libgstrtspinclude_HEADERS)'; test -n "$(libgstrtspincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstrtspincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstrtspincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstrtspincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -900,10 +895,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 0c1f22b..731add3 100644 (file)
@@ -93,6 +93,8 @@
 #include "gstrtspconnection.h"
 #include "gstrtspbase64.h"
 
+#include "gst/glib-compat-private.h"
+
 union gst_sockaddr
 {
   struct sockaddr sa;
@@ -456,7 +458,7 @@ wrong_family:
 static gchar *
 do_resolve (const gchar * host)
 {
-  static gchar ip[INET6_ADDRSTRLEN];
+  gchar ip[INET6_ADDRSTRLEN];
   struct addrinfo *aires, hints;
   struct addrinfo *ai;
   gint aierr;
@@ -592,6 +594,14 @@ do_connect (const gchar * ip, guint16 port, GstPollFD * fdout,
     getsockopt (fd, SOL_SOCKET, SO_ERROR, (char *) &errno, &len);
 #endif
     goto sys_error;
+  } else {
+#ifdef __APPLE__
+    /* osx wakes up select with POLLOUT if the connection is refused... */
+    socklen_t len = sizeof (errno);
+    getsockopt (fd, SOL_SOCKET, SO_ERROR, (char *) &errno, &len);
+    if (errno != 0)
+      goto sys_error;
+#endif
   }
 
   gst_poll_fd_ignored (fdset, fdout);
@@ -1899,7 +1909,7 @@ build_next (GstRTSPBuilder * builder, GstRTSPMessage * message,
           goto done;
 
         /* we have the complete body now, store in the message adjusting the
-         * length to include the traling '\0' */
+         * length to include the trailing '\0' */
         gst_rtsp_message_take_body (message,
             (guint8 *) builder->body_data, builder->body_len + 1);
         builder->body_data = NULL;
@@ -2269,7 +2279,9 @@ gst_rtsp_connection_receive (GstRTSPConnection * conn, GstRTSPMessage * message,
     if (gst_poll_fd_has_error (conn->fdset, conn->writefd))
       goto socket_error;
 
-    gst_poll_set_controllable (conn->fdset, FALSE);
+    /* once we start reading the wait cannot be controlled */
+    if (builder.state != STATE_START)
+      gst_poll_set_controllable (conn->fdset, FALSE);
   }
 
   /* we have a message here */
@@ -3478,7 +3490,7 @@ gst_rtsp_watch_write_data (GstRTSPWatch * watch, const guint8 * data,
   g_mutex_lock (watch->mutex);
 
   /* try to send the message synchronously first */
-  if (watch->messages->length == 0) {
+  if (watch->messages->length == 0 && watch->write_data == NULL) {
     res = write_bytes (watch->writefd.fd, data, &off, size);
     if (res != GST_RTSP_EINTR) {
       if (id != NULL)
index 9935c67..ee74b98 100644 (file)
@@ -177,6 +177,9 @@ static struct rtsp_header rtsp_headers[] = {
   {"X-Server-IP-Address", FALSE},
   {"X-Sessioncookie", FALSE},
 
+  /* Since 0.10.36 */
+  {"RTCP-Interval", FALSE},
+
   {NULL, FALSE}
 };
 
index 9652f17..3727bf2 100644 (file)
@@ -185,7 +185,7 @@ typedef enum {
  * @GST_RTSP_GET: the GET method (HTTP). Since 0.10.25
  * @GST_RTSP_POST: the POST method (HTTP). Since 0.10.25
  *
- * The different supported RTSP methods. 
+ * The different supported RTSP methods.
  */
 typedef enum {
   GST_RTSP_INVALID          = 0,
@@ -221,11 +221,17 @@ typedef enum {
 /**
  * GST_RTSP_AUTH_MAX:
  *
- * Strongest available authentication method 
+ * Strongest available authentication method
  */
 #define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
 
+/**
+ * GstRTSPHeaderField:
+ *
+ * Enumeration of rtsp header fields.
+ */
 typedef enum {
+  /*< protected >*/
   GST_RTSP_HDR_INVALID,
 
   /*
@@ -327,54 +333,63 @@ typedef enum {
   GST_RTSP_HDR_X_SERVER_IP_ADDRESS, /* X-Server-IP-Address */
   GST_RTSP_HDR_X_SESSIONCOOKIE,     /* X-Sessioncookie */
 
+  /* Since 0.10.36 */
+  GST_RTSP_HDR_RTCP_INTERVAL,       /* RTCP-Interval */
+
   GST_RTSP_HDR_LAST
 } GstRTSPHeaderField;
 
+/**
+ * GstRTSPStatusCode:
+ *
+ * Enumeration of rtsp status codes.
+ */
 typedef enum {
-  GST_RTSP_STS_INVALID                              = 0, 
-  GST_RTSP_STS_CONTINUE                             = 100, 
-  GST_RTSP_STS_OK                                   = 200, 
-  GST_RTSP_STS_CREATED                              = 201, 
-  GST_RTSP_STS_LOW_ON_STORAGE                       = 250, 
-  GST_RTSP_STS_MULTIPLE_CHOICES                     = 300, 
-  GST_RTSP_STS_MOVED_PERMANENTLY                    = 301, 
-  GST_RTSP_STS_MOVE_TEMPORARILY                     = 302, 
-  GST_RTSP_STS_SEE_OTHER                            = 303, 
-  GST_RTSP_STS_NOT_MODIFIED                         = 304, 
-  GST_RTSP_STS_USE_PROXY                            = 305, 
-  GST_RTSP_STS_BAD_REQUEST                          = 400, 
-  GST_RTSP_STS_UNAUTHORIZED                         = 401, 
-  GST_RTSP_STS_PAYMENT_REQUIRED                     = 402, 
-  GST_RTSP_STS_FORBIDDEN                            = 403, 
-  GST_RTSP_STS_NOT_FOUND                            = 404, 
-  GST_RTSP_STS_METHOD_NOT_ALLOWED                   = 405, 
-  GST_RTSP_STS_NOT_ACCEPTABLE                       = 406, 
-  GST_RTSP_STS_PROXY_AUTH_REQUIRED                  = 407, 
-  GST_RTSP_STS_REQUEST_TIMEOUT                      = 408, 
-  GST_RTSP_STS_GONE                                 = 410, 
-  GST_RTSP_STS_LENGTH_REQUIRED                      = 411, 
-  GST_RTSP_STS_PRECONDITION_FAILED                  = 412, 
-  GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE             = 413, 
-  GST_RTSP_STS_REQUEST_URI_TOO_LARGE                = 414, 
-  GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE               = 415, 
-  GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD             = 451, 
-  GST_RTSP_STS_CONFERENCE_NOT_FOUND                 = 452, 
-  GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH                 = 453, 
-  GST_RTSP_STS_SESSION_NOT_FOUND                    = 454, 
-  GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE       = 455, 
-  GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE  = 456, 
-  GST_RTSP_STS_INVALID_RANGE                        = 457, 
-  GST_RTSP_STS_PARAMETER_IS_READONLY                = 458, 
-  GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED      = 459, 
-  GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED     = 460, 
-  GST_RTSP_STS_UNSUPPORTED_TRANSPORT                = 461, 
-  GST_RTSP_STS_DESTINATION_UNREACHABLE              = 462, 
-  GST_RTSP_STS_INTERNAL_SERVER_ERROR                = 500, 
-  GST_RTSP_STS_NOT_IMPLEMENTED                      = 501, 
-  GST_RTSP_STS_BAD_GATEWAY                          = 502, 
-  GST_RTSP_STS_SERVICE_UNAVAILABLE                  = 503, 
-  GST_RTSP_STS_GATEWAY_TIMEOUT                      = 504, 
-  GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED           = 505, 
+  /*< protected >*/
+  GST_RTSP_STS_INVALID                              = 0,
+  GST_RTSP_STS_CONTINUE                             = 100,
+  GST_RTSP_STS_OK                                   = 200,
+  GST_RTSP_STS_CREATED                              = 201,
+  GST_RTSP_STS_LOW_ON_STORAGE                       = 250,
+  GST_RTSP_STS_MULTIPLE_CHOICES                     = 300,
+  GST_RTSP_STS_MOVED_PERMANENTLY                    = 301,
+  GST_RTSP_STS_MOVE_TEMPORARILY                     = 302,
+  GST_RTSP_STS_SEE_OTHER                            = 303,
+  GST_RTSP_STS_NOT_MODIFIED                         = 304,
+  GST_RTSP_STS_USE_PROXY                            = 305,
+  GST_RTSP_STS_BAD_REQUEST                          = 400,
+  GST_RTSP_STS_UNAUTHORIZED                         = 401,
+  GST_RTSP_STS_PAYMENT_REQUIRED                     = 402,
+  GST_RTSP_STS_FORBIDDEN                            = 403,
+  GST_RTSP_STS_NOT_FOUND                            = 404,
+  GST_RTSP_STS_METHOD_NOT_ALLOWED                   = 405,
+  GST_RTSP_STS_NOT_ACCEPTABLE                       = 406,
+  GST_RTSP_STS_PROXY_AUTH_REQUIRED                  = 407,
+  GST_RTSP_STS_REQUEST_TIMEOUT                      = 408,
+  GST_RTSP_STS_GONE                                 = 410,
+  GST_RTSP_STS_LENGTH_REQUIRED                      = 411,
+  GST_RTSP_STS_PRECONDITION_FAILED                  = 412,
+  GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE             = 413,
+  GST_RTSP_STS_REQUEST_URI_TOO_LARGE                = 414,
+  GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE               = 415,
+  GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD             = 451,
+  GST_RTSP_STS_CONFERENCE_NOT_FOUND                 = 452,
+  GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH                 = 453,
+  GST_RTSP_STS_SESSION_NOT_FOUND                    = 454,
+  GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE       = 455,
+  GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE  = 456,
+  GST_RTSP_STS_INVALID_RANGE                        = 457,
+  GST_RTSP_STS_PARAMETER_IS_READONLY                = 458,
+  GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED      = 459,
+  GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED     = 460,
+  GST_RTSP_STS_UNSUPPORTED_TRANSPORT                = 461,
+  GST_RTSP_STS_DESTINATION_UNREACHABLE              = 462,
+  GST_RTSP_STS_INTERNAL_SERVER_ERROR                = 500,
+  GST_RTSP_STS_NOT_IMPLEMENTED                      = 501,
+  GST_RTSP_STS_BAD_GATEWAY                          = 502,
+  GST_RTSP_STS_SERVICE_UNAVAILABLE                  = 503,
+  GST_RTSP_STS_GATEWAY_TIMEOUT                      = 504,
+  GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED           = 505,
   GST_RTSP_STS_OPTION_NOT_SUPPORTED                 = 551
 } GstRTSPStatusCode;
 
index a697c90..e2995f3 100644 (file)
@@ -34,9 +34,9 @@ G_BEGIN_DECLS
 #define GST_TYPE_RTSP_EXTENSION \
   (gst_rtsp_extension_get_type ())
 #define GST_RTSP_EXTENSION(obj) \
-  (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension))
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension))
 #define GST_IS_RTSP_EXTENSION(obj) \
-  (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION))
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION))
 #define GST_RTSP_EXTENSION_GET_IFACE(inst) \
   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_RTSP_EXTENSION, GstRTSPExtensionInterface))
 
index 0ad75c8..39593ec 100644 (file)
@@ -263,7 +263,7 @@ gst_rtsp_range_to_string (const GstRTSPTimeRange * range)
  * gst_rtsp_range_free:
  * @range: a #GstRTSPTimeRange
  *
- * Free the memory alocated by @range.
+ * Free the memory allocated by @range.
  */
 void
 gst_rtsp_range_free (GstRTSPTimeRange * range)
index de3085e..ab834a5 100644 (file)
@@ -231,8 +231,7 @@ gst_rtsp_transport_get_mime (GstRTSPTransMode trans, const gchar ** mime)
  * @manager: location to hold the result
  * @option: option index.
  *
- * Get the #GStreamer element that can handle the buffers transported over
- * @trans.
+ * Get the #GstElement that can handle the buffers transported over @trans.
  *
  * It is possible that there are several managers available, use @option to
  * selected one.
index 6973e09..db2637c 100644 (file)
@@ -385,10 +385,10 @@ unescape_path_component (gchar * comp)
  * Splits the path of @url on '/' boundaries, decoding the resulting components,
  *
  * The decoding performed by this routine is "URI decoding", as defined in RFC
- * 3986, commonly known as percent-decoding. For example, a string "foo%2fbar"
- * will decode to "foo/bar" -- the %2f being replaced by the corresponding byte
+ * 3986, commonly known as percent-decoding. For example, a string "foo\%2fbar"
+ * will decode to "foo/bar" -- the \%2f being replaced by the corresponding byte
  * with hex value 0x2f. Note that there is no guarantee that the resulting byte
- * sequence is valid in any given encoding. As a special case, %00 is not
+ * sequence is valid in any given encoding. As a special case, \%00 is not
  * unescaped to NUL, as that would prematurely terminate the string.
  *
  * Also note that since paths usually start with a slash, the first component
index 52d59f3..131ddd3 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -103,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstsdpincludedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -113,8 +120,8 @@ am_libgstsdp_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo
 libgstsdp_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstsdp_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstsdp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -130,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstsdp_@GST_MAJORMINOR@_la_SOURCES)
 DIST_SOURCES = $(libgstsdp_@GST_MAJORMINOR@_la_SOURCES)
@@ -213,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -273,6 +281,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -282,9 +291,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -307,6 +319,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -379,10 +392,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -416,7 +432,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -523,7 +538,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstsdp-@GST_MAJORMINOR@.la: $(libgstsdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsdp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstsdp-@GST_MAJORMINOR@.la: $(libgstsdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsdp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstsdp_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstsdp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstsdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsdp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -537,34 +552,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo: gstsdpmessage.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo -MD -MP -MF $(DEPDIR)/libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.Tpo -c -o libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo `test -f 'gstsdpmessage.c' || echo '$(srcdir)/'`gstsdpmessage.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.Tpo $(DEPDIR)/libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstsdpmessage.c' object='libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstsdpmessage.c' object='libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo `test -f 'gstsdpmessage.c' || echo '$(srcdir)/'`gstsdpmessage.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo `test -f 'gstsdpmessage.c' || echo '$(srcdir)/'`gstsdpmessage.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -588,9 +599,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -608,9 +617,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstsdpincludeHEADERS: $(libgstsdpinclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstsdpincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstsdpincludedir)"
@@ -628,9 +635,7 @@ uninstall-libgstsdpincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstsdpinclude_HEADERS)'; test -n "$(libgstsdpincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstsdpincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstsdpincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstsdpincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -731,10 +736,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 7d2813a..cd95c7c 100644 (file)
@@ -1204,7 +1204,7 @@ DEFINE_ARRAY_GETTER (media, medias, const GstSDPMedia);
  *
  * Adds @media to the array of medias in @msg. This function takes ownership of
  * the contents of @media so that @media will have to be reinitialized with
- * gst_media_init() before it can be used again.
+ * gst_sdp_media_init() before it can be used again.
  *
  * Returns: a #GstSDPResult.
  */
index 9977d66..858d145 100644 (file)
@@ -2,21 +2,26 @@ libgsttagincludedir = \
        $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/tag
 
 libgsttaginclude_HEADERS = \
-       tag.h gsttagdemux.h xmpwriter.h
+       tag.h gsttagdemux.h gsttagmux.h xmpwriter.h
 
 lib_LTLIBRARIES = libgsttag-@GST_MAJORMINOR@.la
 
 libgsttag_@GST_MAJORMINOR@_la_SOURCES = \
-    gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
-    lang.c tags.c gsttagdemux.c gsttageditingprivate.c xmpwriter.c
-libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
+       gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
+       lang.c licenses.c tags.c gsttagdemux.c gsttagmux.c \
+       gsttageditingprivate.c id3v2.c id3v2frames.c xmpwriter.c
+
+libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ZLIB_CFLAGS) \
+       -DLICENSE_TRANSLATIONS_PATH=\"$(pkgdatadir)/license-translations.dict\"
+libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ZLIB_LIBS)
 libgsttag_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 # lang-tables.dat contains generated static data and is included by lang.c
-EXTRA_DIST = lang-tables.dat
+# licenses-tables.dat contains generated data and is included by licenses.c
+EXTRA_DIST = lang-tables.dat licenses-tables.dat license-translations.dict
 
-noinst_HEADERS = gsttageditingprivate.h
+noinst_HEADERS = gsttageditingprivate.h id3v2.h
 
 if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = GstTag-@GST_MAJORMINOR@.gir
@@ -70,23 +75,41 @@ endif
 # little program that reads iso_639.xml and outputs tables for us as fallback
 # for when iso-codes are not available (and so we don't have to read the xml
 # just to map codes)
-if USE_ISO_CODES
-ISO_CODE_PROGS = mklangtables
 mklangtables_SOURCES = mklangtables.c
 mklangtables_CFLAGS = $(GST_CFLAGS)
 mklangtables_LDADD = $(GST_LIBS)
-else
-ISO_CODE_PROGS =
-endif
 
-noinst_PROGRAMS = $(ISO_CODE_PROGS)
+mklicensestables_SOURCES = mklicensestables.c
+mklicensestables_CFLAGS = $(GST_CFLAGS)
+mklicensestables_LDADD = $(GST_LIBS)
+
+EXTRA_PROGRAMS = mklangtables mklicensestables
+
+update-isocodes: mklangtables
+       $(builddir)/mklangtables > $(srcdir)/lang-tables.dat && \
+               echo "Updated lang-tables.dat"
+
+update-licenses: mklicensestables
+       $(builddir)/mklicensestables \
+               --translation-dictionary=$(srcdir)/license-translations.dict \
+               > $(srcdir)/licenses-tables.dat && \
+               echo "Updated licenses-tables.dat and license-translations.dict"
+
+#if USE_NLS
+# Yes, this is not great, but it's only an implementation detail. The
+# translations come from an external source here, so we don't want the
+# strings retranslated, but also we don't want to create 30 1kB .mo files,
+# so just do something for now, we can change it later if someone really cares.
+licensetransdir = $(pkgdatadir)
+licensetrans_DATA = $(srcdir)/license-translations.dict
+#endif
 
 Android.mk: Makefile.am
        androgenizer -:PROJECT libgsttag -:SHARED libgsttag-@GST_MAJORMINOR@ \
         -:TAGS eng debug \
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
         -:LDFLAGS $(libgsttag_@GST_MAJORMINOR@_la_LDFLAGS) \
                   $(libgsttag_@GST_MAJORMINOR@_la_LIBADD) \
                   -ldl \
index ef87138..ff383cb 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,7 +17,6 @@
 
 
 
-
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -37,7 +36,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = $(am__EXEEXT_1)
+EXTRA_PROGRAMS = mklangtables$(EXEEXT) mklicensestables$(EXEEXT)
 subdir = gst-libs/gst/tag
 DIST_COMMON = $(libgsttaginclude_HEADERS) $(noinst_HEADERS) \
        $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -60,6 +59,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -105,41 +105,57 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
-       "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgsttagincludedir)"
+       "$(DESTDIR)$(licensetransdir)" "$(DESTDIR)$(typelibsdir)" \
+       "$(DESTDIR)$(libgsttagincludedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
 am_libgsttag_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo \
        libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo \
        libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo \
        libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo \
        libgsttag_@GST_MAJORMINOR@_la-lang.lo \
+       libgsttag_@GST_MAJORMINOR@_la-licenses.lo \
        libgsttag_@GST_MAJORMINOR@_la-tags.lo \
        libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo \
+       libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo \
        libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo \
+       libgsttag_@GST_MAJORMINOR@_la-id3v2.lo \
+       libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo \
        libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo
 libgsttag_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgsttag_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgsttag_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
        $(libgsttag_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
-@USE_ISO_CODES_TRUE@am__EXEEXT_1 = mklangtables$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am__mklangtables_SOURCES_DIST = mklangtables.c
-@USE_ISO_CODES_TRUE@am_mklangtables_OBJECTS =  \
-@USE_ISO_CODES_TRUE@   mklangtables-mklangtables.$(OBJEXT)
+am_mklangtables_OBJECTS = mklangtables-mklangtables.$(OBJEXT)
 mklangtables_OBJECTS = $(am_mklangtables_OBJECTS)
-@USE_ISO_CODES_TRUE@mklangtables_DEPENDENCIES = $(am__DEPENDENCIES_1)
+mklangtables_DEPENDENCIES = $(am__DEPENDENCIES_1)
 mklangtables_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(mklangtables_CFLAGS) \
        $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_mklicensestables_OBJECTS =  \
+       mklicensestables-mklicensestables.$(OBJEXT)
+mklicensestables_OBJECTS = $(am_mklicensestables_OBJECTS)
+mklicensestables_DEPENDENCIES = $(am__DEPENDENCIES_1)
+mklicensestables_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(mklicensestables_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+       -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -150,27 +166,27 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
-       $(mklangtables_SOURCES)
+       $(mklangtables_SOURCES) $(mklicensestables_SOURCES)
 DIST_SOURCES = $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
-       $(am__mklangtables_SOURCES_DIST)
-DATA = $(gir_DATA) $(typelibs_DATA)
+       $(mklangtables_SOURCES) $(mklicensestables_SOURCES)
+DATA = $(gir_DATA) $(licensetrans_DATA) $(typelibs_DATA)
 HEADERS = $(libgsttaginclude_HEADERS) $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -235,6 +251,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -295,6 +312,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -304,9 +322,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -329,6 +350,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -401,10 +423,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -438,7 +463,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -463,20 +487,25 @@ libgsttagincludedir = \
        $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/tag
 
 libgsttaginclude_HEADERS = \
-       tag.h gsttagdemux.h xmpwriter.h
+       tag.h gsttagdemux.h gsttagmux.h xmpwriter.h
 
 lib_LTLIBRARIES = libgsttag-@GST_MAJORMINOR@.la
 libgsttag_@GST_MAJORMINOR@_la_SOURCES = \
-    gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
-    lang.c tags.c gsttagdemux.c gsttageditingprivate.c xmpwriter.c
+       gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
+       lang.c licenses.c tags.c gsttagdemux.c gsttagmux.c \
+       gsttageditingprivate.c id3v2.c id3v2frames.c xmpwriter.c
 
-libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
+libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ZLIB_CFLAGS) \
+       -DLICENSE_TRANSLATIONS_PATH=\"$(pkgdatadir)/license-translations.dict\"
+
+libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ZLIB_LIBS)
 libgsttag_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 # lang-tables.dat contains generated static data and is included by lang.c
-EXTRA_DIST = lang-tables.dat
-noinst_HEADERS = gsttageditingprivate.h
+# licenses-tables.dat contains generated data and is included by licenses.c
+EXTRA_DIST = lang-tables.dat licenses-tables.dat license-translations.dict
+noinst_HEADERS = gsttageditingprivate.h id3v2.h
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstTag-@GST_MAJORMINOR@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgsttaginclude_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgsttag_@GST_MAJORMINOR@_la_SOURCES))
@@ -489,15 +518,24 @@ noinst_HEADERS = gsttageditingprivate.h
 @HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0/
 @HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
 @HAVE_INTROSPECTION_TRUE@CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-@USE_ISO_CODES_FALSE@ISO_CODE_PROGS = 
 
 # little program that reads iso_639.xml and outputs tables for us as fallback
 # for when iso-codes are not available (and so we don't have to read the xml
 # just to map codes)
-@USE_ISO_CODES_TRUE@ISO_CODE_PROGS = mklangtables
-@USE_ISO_CODES_TRUE@mklangtables_SOURCES = mklangtables.c
-@USE_ISO_CODES_TRUE@mklangtables_CFLAGS = $(GST_CFLAGS)
-@USE_ISO_CODES_TRUE@mklangtables_LDADD = $(GST_LIBS)
+mklangtables_SOURCES = mklangtables.c
+mklangtables_CFLAGS = $(GST_CFLAGS)
+mklangtables_LDADD = $(GST_LIBS)
+mklicensestables_SOURCES = mklicensestables.c
+mklicensestables_CFLAGS = $(GST_CFLAGS)
+mklicensestables_LDADD = $(GST_LIBS)
+
+#if USE_NLS
+# Yes, this is not great, but it's only an implementation detail. The
+# translations come from an external source here, so we don't want the
+# strings retranslated, but also we don't want to create 30 1kB .mo files,
+# so just do something for now, we can change it later if someone really cares.
+licensetransdir = $(pkgdatadir)
+licensetrans_DATA = $(srcdir)/license-translations.dict
 all: all-am
 
 .SUFFIXES:
@@ -563,20 +601,14 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgsttag-@GST_MAJORMINOR@.la: $(libgsttag_@GST_MAJORMINOR@_la_OBJECTS) $(libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgsttag-@GST_MAJORMINOR@.la: $(libgsttag_@GST_MAJORMINOR@_la_OBJECTS) $(libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgsttag_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgsttag_@GST_MAJORMINOR@_la_OBJECTS) $(libgsttag_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
-
-clean-noinstPROGRAMS:
-       @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-       echo " rm -f" $$list; \
-       rm -f $$list || exit $$?; \
-       test -n "$(EXEEXT)" || exit 0; \
-       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-       echo " rm -f" $$list; \
-       rm -f $$list
-mklangtables$(EXEEXT): $(mklangtables_OBJECTS) $(mklangtables_DEPENDENCIES) 
+mklangtables$(EXEEXT): $(mklangtables_OBJECTS) $(mklangtables_DEPENDENCIES) $(EXTRA_mklangtables_DEPENDENCIES) 
        @rm -f mklangtables$(EXEEXT)
        $(AM_V_CCLD)$(mklangtables_LINK) $(mklangtables_OBJECTS) $(mklangtables_LDADD) $(LIBS)
+mklicensestables$(EXEEXT): $(mklicensestables_OBJECTS) $(mklicensestables_DEPENDENCIES) $(EXTRA_mklicensestables_DEPENDENCIES) 
+       @rm -f mklicensestables$(EXEEXT)
+       $(AM_V_CCLD)$(mklicensestables_LINK) $(mklicensestables_OBJECTS) $(mklicensestables_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -588,124 +620,157 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mklangtables-mklangtables.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mklicensestables-mklicensestables.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo: gstvorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvorbistag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvorbistag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
 
 libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo: gstid3tag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo `test -f 'gstid3tag.c' || echo '$(srcdir)/'`gstid3tag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstid3tag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstid3tag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo `test -f 'gstid3tag.c' || echo '$(srcdir)/'`gstid3tag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo `test -f 'gstid3tag.c' || echo '$(srcdir)/'`gstid3tag.c
 
 libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo: gstxmptag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo `test -f 'gstxmptag.c' || echo '$(srcdir)/'`gstxmptag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstxmptag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstxmptag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo `test -f 'gstxmptag.c' || echo '$(srcdir)/'`gstxmptag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo `test -f 'gstxmptag.c' || echo '$(srcdir)/'`gstxmptag.c
 
 libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo: gstexiftag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstexiftag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo `test -f 'gstexiftag.c' || echo '$(srcdir)/'`gstexiftag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstexiftag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstexiftag.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstexiftag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstexiftag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo `test -f 'gstexiftag.c' || echo '$(srcdir)/'`gstexiftag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo `test -f 'gstexiftag.c' || echo '$(srcdir)/'`gstexiftag.c
 
 libgsttag_@GST_MAJORMINOR@_la-lang.lo: lang.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-lang.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-lang.lo `test -f 'lang.c' || echo '$(srcdir)/'`lang.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='lang.c' object='libgsttag_@GST_MAJORMINOR@_la-lang.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='lang.c' object='libgsttag_@GST_MAJORMINOR@_la-lang.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-lang.lo `test -f 'lang.c' || echo '$(srcdir)/'`lang.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-lang.lo `test -f 'lang.c' || echo '$(srcdir)/'`lang.c
+
+libgsttag_@GST_MAJORMINOR@_la-licenses.lo: licenses.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-licenses.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-licenses.lo `test -f 'licenses.c' || echo '$(srcdir)/'`licenses.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='licenses.c' object='libgsttag_@GST_MAJORMINOR@_la-licenses.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-licenses.lo `test -f 'licenses.c' || echo '$(srcdir)/'`licenses.c
 
 libgsttag_@GST_MAJORMINOR@_la-tags.lo: tags.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-tags.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-tags.lo `test -f 'tags.c' || echo '$(srcdir)/'`tags.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tags.c' object='libgsttag_@GST_MAJORMINOR@_la-tags.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tags.c' object='libgsttag_@GST_MAJORMINOR@_la-tags.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-tags.lo `test -f 'tags.c' || echo '$(srcdir)/'`tags.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-tags.lo `test -f 'tags.c' || echo '$(srcdir)/'`tags.c
 
 libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo: gsttagdemux.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo `test -f 'gsttagdemux.c' || echo '$(srcdir)/'`gsttagdemux.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttagdemux.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttagdemux.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo `test -f 'gsttagdemux.c' || echo '$(srcdir)/'`gsttagdemux.c
+
+libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo: gsttagmux.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo `test -f 'gsttagmux.c' || echo '$(srcdir)/'`gsttagmux.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttagmux.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo `test -f 'gsttagdemux.c' || echo '$(srcdir)/'`gsttagdemux.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo `test -f 'gsttagmux.c' || echo '$(srcdir)/'`gsttagmux.c
 
 libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo: gsttageditingprivate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo `test -f 'gsttageditingprivate.c' || echo '$(srcdir)/'`gsttageditingprivate.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttageditingprivate.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttageditingprivate.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo `test -f 'gsttageditingprivate.c' || echo '$(srcdir)/'`gsttageditingprivate.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo `test -f 'gsttageditingprivate.c' || echo '$(srcdir)/'`gsttageditingprivate.c
+
+libgsttag_@GST_MAJORMINOR@_la-id3v2.lo: id3v2.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-id3v2.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2.lo `test -f 'id3v2.c' || echo '$(srcdir)/'`id3v2.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='id3v2.c' object='libgsttag_@GST_MAJORMINOR@_la-id3v2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2.lo `test -f 'id3v2.c' || echo '$(srcdir)/'`id3v2.c
+
+libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo: id3v2frames.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo `test -f 'id3v2frames.c' || echo '$(srcdir)/'`id3v2frames.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='id3v2frames.c' object='libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo `test -f 'id3v2frames.c' || echo '$(srcdir)/'`id3v2frames.c
 
 libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo: xmpwriter.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo `test -f 'xmpwriter.c' || echo '$(srcdir)/'`xmpwriter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='xmpwriter.c' object='libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xmpwriter.c' object='libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo `test -f 'xmpwriter.c' || echo '$(srcdir)/'`xmpwriter.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo `test -f 'xmpwriter.c' || echo '$(srcdir)/'`xmpwriter.c
 
 mklangtables-mklangtables.o: mklangtables.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -MT mklangtables-mklangtables.o -MD -MP -MF $(DEPDIR)/mklangtables-mklangtables.Tpo -c -o mklangtables-mklangtables.o `test -f 'mklangtables.c' || echo '$(srcdir)/'`mklangtables.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/mklangtables-mklangtables.Tpo $(DEPDIR)/mklangtables-mklangtables.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mklangtables.c' object='mklangtables-mklangtables.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mklangtables.c' object='mklangtables-mklangtables.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.o `test -f 'mklangtables.c' || echo '$(srcdir)/'`mklangtables.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.o `test -f 'mklangtables.c' || echo '$(srcdir)/'`mklangtables.c
 
 mklangtables-mklangtables.obj: mklangtables.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -MT mklangtables-mklangtables.obj -MD -MP -MF $(DEPDIR)/mklangtables-mklangtables.Tpo -c -o mklangtables-mklangtables.obj `if test -f 'mklangtables.c'; then $(CYGPATH_W) 'mklangtables.c'; else $(CYGPATH_W) '$(srcdir)/mklangtables.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/mklangtables-mklangtables.Tpo $(DEPDIR)/mklangtables-mklangtables.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mklangtables.c' object='mklangtables-mklangtables.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mklangtables.c' object='mklangtables-mklangtables.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.obj `if test -f 'mklangtables.c'; then $(CYGPATH_W) 'mklangtables.c'; else $(CYGPATH_W) '$(srcdir)/mklangtables.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.obj `if test -f 'mklangtables.c'; then $(CYGPATH_W) 'mklangtables.c'; else $(CYGPATH_W) '$(srcdir)/mklangtables.c'; fi`
+
+mklicensestables-mklicensestables.o: mklicensestables.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklicensestables_CFLAGS) $(CFLAGS) -MT mklicensestables-mklicensestables.o -MD -MP -MF $(DEPDIR)/mklicensestables-mklicensestables.Tpo -c -o mklicensestables-mklicensestables.o `test -f 'mklicensestables.c' || echo '$(srcdir)/'`mklicensestables.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/mklicensestables-mklicensestables.Tpo $(DEPDIR)/mklicensestables-mklicensestables.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mklicensestables.c' object='mklicensestables-mklicensestables.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklicensestables_CFLAGS) $(CFLAGS) -c -o mklicensestables-mklicensestables.o `test -f 'mklicensestables.c' || echo '$(srcdir)/'`mklicensestables.c
+
+mklicensestables-mklicensestables.obj: mklicensestables.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklicensestables_CFLAGS) $(CFLAGS) -MT mklicensestables-mklicensestables.obj -MD -MP -MF $(DEPDIR)/mklicensestables-mklicensestables.Tpo -c -o mklicensestables-mklicensestables.obj `if test -f 'mklicensestables.c'; then $(CYGPATH_W) 'mklicensestables.c'; else $(CYGPATH_W) '$(srcdir)/mklicensestables.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/mklicensestables-mklicensestables.Tpo $(DEPDIR)/mklicensestables-mklicensestables.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mklicensestables.c' object='mklicensestables-mklicensestables.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklicensestables_CFLAGS) $(CFLAGS) -c -o mklicensestables-mklicensestables.obj `if test -f 'mklicensestables.c'; then $(CYGPATH_W) 'mklicensestables.c'; else $(CYGPATH_W) '$(srcdir)/mklicensestables.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -729,9 +794,25 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
+install-licensetransDATA: $(licensetrans_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(licensetransdir)" || $(MKDIR_P) "$(DESTDIR)$(licensetransdir)"
+       @list='$(licensetrans_DATA)'; test -n "$(licensetransdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(licensetransdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(licensetransdir)" || exit $$?; \
+       done
+
+uninstall-licensetransDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(licensetrans_DATA)'; test -n "$(licensetransdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(licensetransdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -749,9 +830,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgsttagincludeHEADERS: $(libgsttaginclude_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgsttagincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgsttagincludedir)"
@@ -769,9 +848,7 @@ uninstall-libgsttagincludeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgsttaginclude_HEADERS)'; test -n "$(libgsttagincludedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgsttagincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgsttagincludedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgsttagincludedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -857,9 +934,9 @@ distdir: $(DISTFILES)
        done
 check-am: all-am
 check: check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
-       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgsttagincludedir)"; do \
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(licensetransdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgsttagincludedir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -872,10 +949,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -891,7 +973,7 @@ maintainer-clean-generic:
 clean: clean-am
 
 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-       clean-noinstPROGRAMS mostlyclean-am
+       mostlyclean-am
 
 distclean: distclean-am
        -rm -rf ./$(DEPDIR)
@@ -912,7 +994,7 @@ info: info-am
 info-am:
 
 install-data-am: install-girDATA install-libgsttagincludeHEADERS \
-       install-typelibsDATA
+       install-licensetransDATA install-typelibsDATA
 
 install-dvi: install-dvi-am
 
@@ -959,26 +1041,28 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
-       uninstall-libgsttagincludeHEADERS uninstall-typelibsDATA
+       uninstall-libgsttagincludeHEADERS uninstall-licensetransDATA \
+       uninstall-typelibsDATA
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
-       distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-girDATA install-html install-html-am \
-       install-info install-info-am install-libLTLIBRARIES \
-       install-libgsttagincludeHEADERS install-man install-pdf \
+       clean-libLTLIBRARIES clean-libtool ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-girDATA \
+       install-html install-html-am install-info install-info-am \
+       install-libLTLIBRARIES install-libgsttagincludeHEADERS \
+       install-licensetransDATA install-man install-pdf \
        install-pdf-am install-ps install-ps-am install-strip \
        install-typelibsDATA installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
        pdf pdf-am ps ps-am tags uninstall uninstall-am \
        uninstall-girDATA uninstall-libLTLIBRARIES \
-       uninstall-libgsttagincludeHEADERS uninstall-typelibsDATA
+       uninstall-libgsttagincludeHEADERS uninstall-licensetransDATA \
+       uninstall-typelibsDATA
 
 
 @HAVE_INTROSPECTION_TRUE@GstTag-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_MAJORMINOR@.la
@@ -1011,12 +1095,23 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
 @HAVE_INTROSPECTION_TRUE@              --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@` \
 @HAVE_INTROSPECTION_TRUE@              $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
 
+update-isocodes: mklangtables
+       $(builddir)/mklangtables > $(srcdir)/lang-tables.dat && \
+               echo "Updated lang-tables.dat"
+
+update-licenses: mklicensestables
+       $(builddir)/mklicensestables \
+               --translation-dictionary=$(srcdir)/license-translations.dict \
+               > $(srcdir)/licenses-tables.dat && \
+               echo "Updated licenses-tables.dat and license-translations.dict"
+#endif
+
 Android.mk: Makefile.am
        androgenizer -:PROJECT libgsttag -:SHARED libgsttag-@GST_MAJORMINOR@ \
         -:TAGS eng debug \
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
         -:LDFLAGS $(libgsttag_@GST_MAJORMINOR@_la_LDFLAGS) \
                   $(libgsttag_@GST_MAJORMINOR@_la_LIBADD) \
                   -ldl \
index c97901c..61e527f 100644 (file)
@@ -612,7 +612,7 @@ gst_tag_list_has_ifd_tags (const GstTagList * taglist,
 static void
 gst_exif_writer_write_tag_header (GstExifWriter * writer,
     guint16 exif_tag, guint16 exif_type, guint32 count, guint32 offset,
-    gboolean is_data)
+    const guint32 * offset_data)
 {
   GST_DEBUG ("Writing tag entry: id %x, type %u, count %u, offset %u",
       exif_tag, exif_type, count, offset);
@@ -621,13 +621,17 @@ gst_exif_writer_write_tag_header (GstExifWriter * writer,
     gst_byte_writer_put_uint16_le (&writer->tagwriter, exif_tag);
     gst_byte_writer_put_uint16_le (&writer->tagwriter, exif_type);
     gst_byte_writer_put_uint32_le (&writer->tagwriter, count);
-    gst_byte_writer_put_uint32_le (&writer->tagwriter, offset);
+    if (offset_data != NULL) {
+      gst_byte_writer_put_data (&writer->tagwriter, (guint8 *) offset_data, 4);
+    } else {
+      gst_byte_writer_put_uint32_le (&writer->tagwriter, offset);
+    }
   } else if (writer->byte_order == G_BIG_ENDIAN) {
     gst_byte_writer_put_uint16_be (&writer->tagwriter, exif_tag);
     gst_byte_writer_put_uint16_be (&writer->tagwriter, exif_type);
     gst_byte_writer_put_uint32_be (&writer->tagwriter, count);
-    if (is_data) {
-      gst_byte_writer_put_uint32_le (&writer->tagwriter, offset);
+    if (offset_data != NULL) {
+      gst_byte_writer_put_data (&writer->tagwriter, (guint8 *) offset_data, 4);
     } else {
       gst_byte_writer_put_uint32_be (&writer->tagwriter, offset);
     }
@@ -671,7 +675,7 @@ gst_exif_writer_write_rational_tag (GstExifWriter * writer,
   guint32 offset = gst_byte_writer_get_size (&writer->datawriter);
 
   gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_RATIONAL,
-      1, offset, FALSE);
+      1, offset, NULL);
 
   gst_exif_writer_write_rational_data (writer, frac_n, frac_d);
 }
@@ -683,7 +687,7 @@ gst_exif_writer_write_signed_rational_tag (GstExifWriter * writer,
   guint32 offset = gst_byte_writer_get_size (&writer->datawriter);
 
   gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_SRATIONAL,
-      1, offset, FALSE);
+      1, offset, NULL);
 
   gst_exif_writer_write_signed_rational_data (writer, frac_n, frac_d);
 }
@@ -720,7 +724,7 @@ gst_exif_writer_write_byte_tag (GstExifWriter * writer, guint16 tag,
 
   GST_WRITE_UINT8 ((guint8 *) & offset, value);
   gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_BYTE,
-      1, offset, TRUE);
+      1, offset, &offset);
 }
 
 static void
@@ -736,7 +740,7 @@ gst_exif_writer_write_short_tag (GstExifWriter * writer, guint16 tag,
   }
 
   gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_SHORT,
-      1, offset, TRUE);
+      1, offset, &offset);
 }
 
 static void
@@ -751,7 +755,7 @@ gst_exif_writer_write_long_tag (GstExifWriter * writer, guint16 tag,
   }
 
   gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_LONG,
-      1, offset, TRUE);
+      1, offset, &offset);
 }
 
 
@@ -766,37 +770,52 @@ write_exif_undefined_tag (GstExifWriter * writer, guint16 tag,
      * resulting tag headers offset and the base offset */
     offset = gst_byte_writer_get_size (&writer->datawriter);
     gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_UNDEFINED,
-        size, offset, FALSE);
+        size, offset, NULL);
     gst_byte_writer_put_data (&writer->datawriter, data, size);
   } else {
     /* small enough to go in the offset */
     memcpy ((guint8 *) & offset, data, size);
     gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_UNDEFINED,
-        size, offset, TRUE);
+        size, offset, &offset);
   }
 }
 
 static void
 write_exif_ascii_tag (GstExifWriter * writer, guint16 tag, const gchar * str)
 {
-  gint size;
   guint32 offset = 0;
+  gchar *ascii_str;
+  gsize ascii_size;
+  GError *error = NULL;
 
-  size = strlen (str) + 1;
+  ascii_str = g_convert (str, -1, "latin1", "utf8", NULL, &ascii_size, &error);
 
-  if (size > 4) {
+  if (error) {
+    GST_WARNING ("Failed to convert exif tag to ascii: 0x%x - %s. Error: %s",
+        tag, str, error->message);
+    g_error_free (error);
+    g_free (ascii_str);
+    return;
+  }
+
+  /* add the \0 at the end */
+  ascii_size++;
+
+  if (ascii_size > 4) {
     /* we only use the data offset here, later we add up the
      * resulting tag headers offset and the base offset */
     offset = gst_byte_writer_get_size (&writer->datawriter);
     gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_ASCII,
-        size, offset, FALSE);
-    gst_byte_writer_put_string (&writer->datawriter, str);
+        ascii_size, offset, NULL);
+    gst_byte_writer_put_string (&writer->datawriter, ascii_str);
   } else {
     /* small enough to go in the offset */
-    memcpy ((guint8 *) & offset, str, size);
+    memcpy ((guint8 *) & offset, ascii_str, ascii_size);
     gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_ASCII,
-        size, offset, TRUE);
+        ascii_size, offset, &offset);
   }
+
+  g_free (ascii_str);
 }
 
 static void
@@ -1164,7 +1183,9 @@ parse_exif_ascii_tag (GstExifReader * reader, const GstExifTagMatch * tag,
 {
   GType tagtype;
   gchar *str;
+  gchar *utfstr;
   guint32 real_offset;
+  GError *error = NULL;
 
   if (count > 4) {
     if (offset < reader->base_offset) {
@@ -1187,11 +1208,30 @@ parse_exif_ascii_tag (GstExifReader * reader, const GstExifTagMatch * tag,
     str = g_strndup ((gchar *) offset_as_data, count);
   }
 
+  /* convert from ascii to utf8 */
+  if (g_utf8_validate (str, -1, NULL)) {
+    GST_DEBUG ("Exif string is already on utf8: %s", str);
+    utfstr = str;
+  } else {
+    GST_DEBUG ("Exif string isn't utf8, trying to convert from latin1: %s",
+        str);
+    utfstr = g_convert (str, count, "utf8", "latin1", NULL, NULL, &error);
+    g_free (str);
+    if (error) {
+      GST_WARNING ("Skipping tag %d:%s. Failed to convert ascii string "
+          "to utf8 : %s - %s", tag->exif_tag, tag->gst_tag, str,
+          error->message);
+      g_error_free (error);
+      g_free (utfstr);
+      return;
+    }
+  }
+
   tagtype = gst_tag_get_type (tag->gst_tag);
   if (tagtype == GST_TYPE_DATE_TIME) {
     gint year = 0, month = 1, day = 1, hour = 0, minute = 0, second = 0;
 
-    if (sscanf (str, "%04d:%02d:%02d %02d:%02d:%02d", &year, &month, &day,
+    if (sscanf (utfstr, "%04d:%02d:%02d %02d:%02d:%02d", &year, &month, &day,
             &hour, &minute, &second) > 0) {
       GstDateTime *d;
 
@@ -1203,13 +1243,13 @@ parse_exif_ascii_tag (GstExifReader * reader, const GstExifTagMatch * tag,
       GST_WARNING ("Failed to parse %s into a datetime tag", str);
     }
   } else if (tagtype == G_TYPE_STRING) {
-    gst_tag_list_add (reader->taglist, GST_TAG_MERGE_REPLACE, tag->gst_tag, str,
-        NULL);
+    gst_tag_list_add (reader->taglist, GST_TAG_MERGE_REPLACE, tag->gst_tag,
+        utfstr, NULL);
   } else {
     GST_WARNING ("No parsing function associated to %x(%s)", tag->exif_tag,
         tag->gst_tag);
   }
-  g_free (str);
+  g_free (utfstr);
 }
 
 static void
@@ -1399,7 +1439,7 @@ parse_exif_rational_tag (GstExifReader * exif_reader,
 }
 
 static GstBuffer *
-write_exif_ifd (const GstTagList * taglist, gboolean byte_order,
+write_exif_ifd (const GstTagList * taglist, guint byte_order,
     guint32 base_offset, const GstExifTagMatch * tag_map)
 {
   GstExifWriter writer;
@@ -1456,7 +1496,7 @@ write_exif_ifd (const GstTagList * taglist, gboolean byte_order,
         GST_DEBUG ("Adding inner ifd: %x", tag_map[i].exif_tag);
         gst_exif_writer_write_tag_header (&writer, tag_map[i].exif_tag,
             EXIF_TYPE_LONG, 1,
-            gst_byte_writer_get_size (&writer.datawriter), FALSE);
+            gst_byte_writer_get_size (&writer.datawriter), NULL);
         gst_byte_writer_put_data (&writer.datawriter,
             GST_BUFFER_DATA (inner_ifd), GST_BUFFER_SIZE (inner_ifd));
         gst_buffer_unref (inner_ifd);
@@ -1483,7 +1523,7 @@ write_exif_ifd (const GstTagList * taglist, gboolean byte_order,
   else
     gst_byte_writer_put_uint16_be (&writer.tagwriter, writer.tags_total);
 
-  GST_DEBUG ("Number of tags rewriten to %d", writer.tags_total);
+  GST_DEBUG ("Number of tags rewritten to %d", writer.tags_total);
 
   /* now that we know the tag headers size, we can add the offsets */
   gst_exif_tag_rewrite_offsets (&writer.tagwriter, writer.byte_order,
@@ -1613,6 +1653,7 @@ parse_exif_ifd (GstExifReader * exif_reader, gint buf_offset,
       case EXIF_TYPE_UNDEFINED:
         parse_exif_undefined_tag (exif_reader, &tag_map[map_index],
             tagdata.count, tagdata.offset, tagdata.offset_as_data);
+        break;
       case EXIF_TYPE_LONG:
         parse_exif_long_tag (exif_reader, &tag_map[map_index],
             tagdata.count, tagdata.offset, tagdata.offset_as_data);
@@ -1903,7 +1944,7 @@ serialize_geo_coordinate (GstExifWriter * writer, const GstTagList * taglist,
 
   offset = gst_byte_writer_get_size (&writer->datawriter);
   gst_exif_writer_write_tag_header (writer, exiftag->exif_tag,
-      EXIF_TYPE_RATIONAL, 3, offset, FALSE);
+      EXIF_TYPE_RATIONAL, 3, offset, NULL);
   gst_exif_writer_write_rational_data (writer, degrees, 1);
   gst_exif_writer_write_rational_data (writer, minutes, 1);
   gst_exif_writer_write_rational_data (writer, seconds, 1);
@@ -1960,7 +2001,7 @@ deserialize_geo_coordinate (GstExifReader * exif_reader,
   }
 
   if (exiftag->exif_tag != next_tagdata.tag) {
-    GST_WARNING ("This is not a geo cordinate tag");
+    GST_WARNING ("This is not a geo coordinate tag");
     return ret;
   }
 
@@ -2565,14 +2606,6 @@ deserialize_resolution (GstExifReader * exif_reader,
     unit = GST_READ_UINT16_BE (tagdata->offset_as_data);
   }
 
-  if (unit != 2 && unit != 3) {
-    GST_WARNING ("Invalid resolution unit, ignoring PPI tags");
-    return 0;
-  }
-
-  xres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_XRESOLUTION);
-  yres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_YRESOLUTION);
-
   switch (unit) {
     case 2:                    /* inch */
       multiplier = 1;
@@ -2581,15 +2614,16 @@ deserialize_resolution (GstExifReader * exif_reader,
       multiplier = 1 / 2.54;
       break;
     default:
-      multiplier = 1;
-      g_assert_not_reached ();
-      break;
+      GST_WARNING ("Invalid resolution unit, ignoring PPI tags");
+      return 0;
   }
 
+  xres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_XRESOLUTION);
   if (xres) {
     parse_exif_rational_tag (exif_reader, GST_TAG_IMAGE_HORIZONTAL_PPI,
         xres->count, xres->offset, multiplier, FALSE);
   }
+  yres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_YRESOLUTION);
   if (yres) {
     parse_exif_rational_tag (exif_reader, GST_TAG_IMAGE_VERTICAL_PPI,
         yres->count, yres->offset, multiplier, FALSE);
@@ -2608,7 +2642,7 @@ serialize_scene_type (GstExifWriter * writer, const GstTagList * taglist,
   if (gst_tag_list_peek_string_index (taglist, GST_TAG_CAPTURING_SOURCE, 0,
           &str)) {
     if (strcmp (str, "dsc") == 0) {
-      value = 0;
+      value = 1;
     }
   }
 
index 2c3c661..8b1b8f1 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
-static const gchar *genres[] = {
-  "Blues",
-  "Classic Rock",
-  "Country",
-  "Dance",
-  "Disco",
-  "Funk",
-  "Grunge",
-  "Hip-Hop",
-  "Jazz",
-  "Metal",
-  "New Age",
-  "Oldies",
-  "Other",
-  "Pop",
-  "R&B",
-  "Rap",
-  "Reggae",
-  "Rock",
-  "Techno",
-  "Industrial",
-  "Alternative",
-  "Ska",
-  "Death Metal",
-  "Pranks",
-  "Soundtrack",
-  "Euro-Techno",
-  "Ambient",
-  "Trip-Hop",
-  "Vocal",
-  "Jazz+Funk",
-  "Fusion",
-  "Trance",
-  "Classical",
-  "Instrumental",
-  "Acid",
-  "House",
-  "Game",
-  "Sound Clip",
-  "Gospel",
-  "Noise",
-  "Alternative Rock",
-  "Bass",
-  "Soul",
-  "Punk",
-  "Space",
-  "Meditative",
-  "Instrumental Pop",
-  "Instrumental Rock",
-  "Ethnic",
-  "Gothic",
-  "Darkwave",
-  "Techno-Industrial",
-  "Electronic",
-  "Pop-Folk",
-  "Eurodance",
-  "Dream",
-  "Southern Rock",
-  "Comedy",
-  "Cult",
-  "Gangsta",
-  "Top 40",
-  "Christian Rap",
-  "Pop/Funk",
-  "Jungle",
-  "Native American",
-  "Cabaret",
-  "New Wave",
-  "Psychedelic",
-  "Rave",
-  "Showtunes",
-  "Trailer",
-  "Lo-Fi",
-  "Tribal",
-  "Acid Punk",
-  "Acid Jazz",
-  "Polka",
-  "Retro",
-  "Musical",
-  "Rock & Roll",
-  "Hard Rock",
-  "Folk",
-  "Folk/Rock",
-  "National Folk",
-  "Swing",
-  "Fusion",
-  "Bebob",
-  "Latin",
-  "Revival",
-  "Celtic",
-  "Bluegrass",
-  "Avantgarde",
-  "Gothic Rock",
-  "Progressive Rock",
-  "Psychedelic Rock",
-  "Symphonic Rock",
-  "Slow Rock",
-  "Big Band",
-  "Chorus",
-  "Easy Listening",
-  "Acoustic",
-  "Humour",
-  "Speech",
-  "Chanson",
-  "Opera",
-  "Chamber Music",
-  "Sonata",
-  "Symphony",
-  "Booty Bass",
-  "Primus",
-  "Porn Groove",
-  "Satire",
-  "Slow Jam",
-  "Club",
-  "Tango",
-  "Samba",
-  "Folklore",
-  "Ballad",
-  "Power Ballad",
-  "Rhythmic Soul",
-  "Freestyle",
-  "Duet",
-  "Punk Rock",
-  "Drum Solo",
-  "A Capella",
-  "Euro-House",
-  "Dance Hall",
-  "Goa",
-  "Drum & Bass",
-  "Club-House",
-  "Hardcore",
-  "Terror",
-  "Indie",
-  "BritPop",
-  "Negerpunk",
-  "Polsk Punk",
-  "Beat",
-  "Christian Gangsta Rap",
-  "Heavy Metal",
-  "Black Metal",
-  "Crossover",
-  "Contemporary Christian",
-  "Christian Rock",
-  "Merengue",
-  "Salsa",
-  "Thrash Metal",
-  "Anime",
-  "Jpop",
-  "Synthpop"
+static const gchar genres[] =
+    "Blues\000Classic Rock\000Country\000Dance\000Disco\000Funk\000Grunge\000"
+    "Hip-Hop\000Jazz\000Metal\000New Age\000Oldies\000Other\000Pop\000R&B\000"
+    "Rap\000Reggae\000Rock\000Techno\000Industrial\000Alternative\000Ska\000"
+    "Death Metal\000Pranks\000Soundtrack\000Euro-Techno\000Ambient\000Trip-Hop"
+    "\000Vocal\000Jazz+Funk\000Fusion\000Trance\000Classical\000Instrumental\000"
+    "Acid\000House\000Game\000Sound Clip\000Gospel\000Noise\000Alternative Rock"
+    "\000Bass\000Soul\000Punk\000Space\000Meditative\000Instrumental Pop\000"
+    "Instrumental Rock\000Ethnic\000Gothic\000Darkwave\000Techno-Industrial\000"
+    "Electronic\000Pop-Folk\000Eurodance\000Dream\000Southern Rock\000Comedy"
+    "\000Cult\000Gangsta\000Top 40\000Christian Rap\000Pop/Funk\000Jungle\000"
+    "Native American\000Cabaret\000New Wave\000Psychedelic\000Rave\000Showtunes"
+    "\000Trailer\000Lo-Fi\000Tribal\000Acid Punk\000Acid Jazz\000Polka\000"
+    "Retro\000Musical\000Rock & Roll\000Hard Rock\000Folk\000Folk/Rock\000"
+    "National Folk\000Swing\000Bebob\000Latin\000Revival\000Celtic\000Bluegrass"
+    "\000Avantgarde\000Gothic Rock\000Progressive Rock\000Psychedelic Rock\000"
+    "Symphonic Rock\000Slow Rock\000Big Band\000Chorus\000Easy Listening\000"
+    "Acoustic\000Humour\000Speech\000Chanson\000Opera\000Chamber Music\000"
+    "Sonata\000Symphony\000Booty Bass\000Primus\000Porn Groove\000Satire\000"
+    "Slow Jam\000Club\000Tango\000Samba\000Folklore\000Ballad\000Power Ballad\000"
+    "Rhythmic Soul\000Freestyle\000Duet\000Punk Rock\000Drum Solo\000A Capella"
+    "\000Euro-House\000Dance Hall\000Goa\000Drum & Bass\000Club-House\000"
+    "Hardcore\000Terror\000Indie\000BritPop\000Negerpunk\000Polsk Punk\000"
+    "Beat\000Christian Gangsta Rap\000Heavy Metal\000Black Metal\000"
+    "Crossover\000Contemporary Christian\000Christian Rock\000Merengue\000"
+    "Salsa\000Thrash Metal\000Anime\000Jpop\000Synthpop";
+
+static const guint16 genres_idx[] = {
+  0, 6, 19, 27, 33, 39, 44, 51, 59, 64, 70, 78, 85, 91, 95, 99, 103, 110, 115,
+  122, 133, 145, 149, 161, 168, 179, 191, 199, 208, 214, 224, 231, 238, 248,
+  261, 266, 272, 277, 288, 295, 301, 318, 323, 328, 333, 339, 350, 367, 385,
+  392, 399, 408, 426, 437, 446, 456, 462, 476, 483, 488, 496, 503, 517, 526,
+  533, 549, 557, 566, 578, 583, 593, 601, 607, 614, 624, 634, 640, 646, 654,
+  666, 676, 681, 691, 705, 224, 711, 717, 723, 731, 738, 748, 759, 771, 788,
+  805, 820, 830, 839, 846, 861, 870, 877, 884, 892, 898, 912, 919, 928, 939,
+  946, 958, 965, 974, 979, 985, 991, 1000, 1007, 1020, 1034, 1044, 1049,
+  1059, 1069, 1079, 1090, 1101, 1105, 1117, 1128, 1137, 1144, 1150, 1158,
+  1168, 1179, 1184, 1206, 1218, 1230, 1240, 1263, 1278, 1287, 1293, 1306,
+  1312, 1317
 };
 
 static const GstTagEntryMatch tag_matches[] = {
@@ -225,7 +115,7 @@ static const GstTagEntryMatch tag_matches[] = {
  *
  * Returns: The corresponding GStreamer tag or NULL if none exists.
  */
-G_CONST_RETURN gchar *
+const gchar *
 gst_tag_from_id3_tag (const gchar * id3_tag)
 {
   int i = 0;
@@ -285,7 +175,7 @@ static const GstTagEntryMatch user_tag_matches[] = {
  *
  * Returns: The corresponding GStreamer tag or NULL if none exists.
  */
-G_CONST_RETURN gchar *
+const gchar *
 gst_tag_from_id3_user_tag (const gchar * type, const gchar * id3_user_tag)
 {
   int i = 0;
@@ -317,7 +207,7 @@ gst_tag_from_id3_user_tag (const gchar * type, const gchar * id3_user_tag)
  *
  * Returns: The corresponding ID3v2 tag or NULL if none exists.
  */
-G_CONST_RETURN gchar *
+const gchar *
 gst_tag_to_id3_tag (const gchar * gst_tag)
 {
   int i = 0;
@@ -412,7 +302,7 @@ gst_tag_list_new_from_id3v1 (const guint8 * data)
 guint
 gst_tag_id3_genre_count (void)
 {
-  return G_N_ELEMENTS (genres);
+  return G_N_ELEMENTS (genres_idx);
 }
 
 /**
@@ -423,12 +313,16 @@ gst_tag_id3_genre_count (void)
  *
  * Returns: the genre or NULL if no genre is associated with that ID.
  */
-G_CONST_RETURN gchar *
+const gchar *
 gst_tag_id3_genre_get (const guint id)
 {
-  if (id >= G_N_ELEMENTS (genres))
+  guint idx;
+
+  if (id >= G_N_ELEMENTS (genres_idx))
     return NULL;
-  return genres[id];
+  idx = genres_idx[id];
+  g_assert (idx < sizeof (genres));
+  return &genres[idx];
 }
 
 /**
index 8bb3314..7803ddb 100644 (file)
@@ -214,8 +214,7 @@ gst_tag_demux_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   GST_DEBUG_CATEGORY_INIT (tagdemux_debug, "tagdemux", 0,
       "tag demux base class");
@@ -1196,7 +1195,9 @@ gst_tag_demux_sink_activate (GstPad * sinkpad)
       demux->priv->strip_start + demux->priv->strip_end) {
     /* There was no data (probably due to a truncated file) */
     GST_DEBUG_OBJECT (demux, "No data in file");
-    return FALSE;
+    /* so we don't know about type either */
+    GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
+    goto done_activate;
   }
 
   /* 3 - Do typefinding on data */
diff --git a/gst-libs/gst/tag/gsttagmux.c b/gst-libs/gst/tag/gsttagmux.c
new file mode 100644 (file)
index 0000000..9c0d234
--- /dev/null
@@ -0,0 +1,559 @@
+/* GStreamer tag muxer base class
+ * Copyright (C) 2006 Christophe Fergeau  <teuf@gnome.org>
+ * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2006 Sebastian Dröge <slomo@circular-chaos.org>
+ * Copyright (C) 2009 Pioneers of the Inevitable <songbird@songbirdnest.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gsttagmux
+ * @see_also: GstApeMux, GstId3Mux
+ * @short_description: Base class for adding tags that are in one single chunk
+ *                     directly at the beginning or at the end of a file
+ *
+ * <refsect2>
+ * <para>
+ * Provides a base class for adding tags at the beginning or end of a
+ * stream.
+ * </para>
+ * <title>Deriving from GstTagMux</title>
+ * <para>
+ * Subclasses have to do the following things:
+ * <itemizedlist>
+ *  <listitem><para>
+ *  In their base init function, they must add pad templates for the sink
+ *  pad and the source pad to the element class, describing the media type
+ *  they accept and output in the caps of the pad template.
+ *  </para></listitem>
+ *  <listitem><para>
+ *  In their class init function, they must override the
+ *  GST_TAG_MUX_CLASS(mux_klass)->render_start_tag and/or
+ *  GST_TAG_MUX_CLASS(mux_klass)->render_end_tag vfuncs and set up a render
+ *  function.
+ *  </para></listitem>
+ * </itemizedlist>
+ * </para>
+ * </refsect2>
+ *
+ * Since 0.10.36
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <gst/gsttagsetter.h>
+#include <gst/tag/tag.h>
+
+#include "gsttagmux.h"
+
+struct _GstTagMuxPrivate
+{
+  GstPad *srcpad;
+  GstPad *sinkpad;
+  GstTagList *event_tags;       /* tags received from upstream elements */
+  GstTagList *final_tags;       /* Final set of tags used for muxing */
+  gsize start_tag_size;
+  gsize end_tag_size;
+  gboolean render_start_tag;
+  gboolean render_end_tag;
+
+  gint64 current_offset;
+  gint64 max_offset;
+
+  GstEvent *newsegment_ev;      /* cached newsegment event from upstream */
+};
+
+GST_DEBUG_CATEGORY_STATIC (gst_tag_mux_debug);
+#define GST_CAT_DEFAULT gst_tag_mux_debug
+
+static void
+gst_tag_mux_iface_init (GType tag_type)
+{
+  static const GInterfaceInfo tag_setter_info = {
+    NULL,
+    NULL,
+    NULL
+  };
+
+  g_type_add_interface_static (tag_type, GST_TYPE_TAG_SETTER, &tag_setter_info);
+}
+
+GST_BOILERPLATE_FULL (GstTagMux, gst_tag_mux,
+    GstElement, GST_TYPE_ELEMENT, gst_tag_mux_iface_init);
+
+
+static GstStateChangeReturn
+gst_tag_mux_change_state (GstElement * element, GstStateChange transition);
+static GstFlowReturn gst_tag_mux_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_tag_mux_sink_event (GstPad * pad, GstEvent * event);
+
+static void
+gst_tag_mux_finalize (GObject * obj)
+{
+  GstTagMux *mux = GST_TAG_MUX (obj);
+
+  if (mux->priv->newsegment_ev) {
+    gst_event_unref (mux->priv->newsegment_ev);
+    mux->priv->newsegment_ev = NULL;
+  }
+
+  if (mux->priv->event_tags) {
+    gst_tag_list_free (mux->priv->event_tags);
+    mux->priv->event_tags = NULL;
+  }
+
+  if (mux->priv->final_tags) {
+    gst_tag_list_free (mux->priv->final_tags);
+    mux->priv->final_tags = NULL;
+  }
+
+  G_OBJECT_CLASS (parent_class)->finalize (obj);
+}
+
+static void
+gst_tag_mux_base_init (gpointer g_class)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_tag_mux_debug, "tagmux", 0,
+      "tag muxer base class");
+}
+
+static void
+gst_tag_mux_class_init (GstTagMuxClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_tag_mux_finalize);
+  gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_tag_mux_change_state);
+
+  g_type_class_add_private (klass, sizeof (GstTagMuxPrivate));
+}
+
+static void
+gst_tag_mux_init (GstTagMux * mux, GstTagMuxClass * mux_class)
+{
+  GstElementClass *element_klass = GST_ELEMENT_CLASS (mux_class);
+  GstPadTemplate *tmpl;
+
+  mux->priv =
+      G_TYPE_INSTANCE_GET_PRIVATE (mux, GST_TYPE_TAG_MUX, GstTagMuxPrivate);
+
+  /* pad through which data comes in to the element */
+  tmpl = gst_element_class_get_pad_template (element_klass, "sink");
+  if (tmpl) {
+    mux->priv->sinkpad = gst_pad_new_from_template (tmpl, "sink");
+  } else {
+    g_warning ("GstTagMux subclass '%s' did not install a %s pad template!\n",
+        G_OBJECT_CLASS_NAME (mux_class), "sink");
+    mux->priv->sinkpad = gst_pad_new ("sink", GST_PAD_SINK);
+  }
+  gst_pad_set_chain_function (mux->priv->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_tag_mux_chain));
+  gst_pad_set_event_function (mux->priv->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_tag_mux_sink_event));
+  gst_element_add_pad (GST_ELEMENT (mux), mux->priv->sinkpad);
+
+  /* pad through which data goes out of the element */
+  tmpl = gst_element_class_get_pad_template (element_klass, "src");
+  if (tmpl) {
+    GstCaps *tmpl_caps = gst_pad_template_get_caps (tmpl);
+
+    mux->priv->srcpad = gst_pad_new_from_template (tmpl, "src");
+    gst_pad_use_fixed_caps (mux->priv->srcpad);
+    if (tmpl_caps != NULL && gst_caps_is_fixed (tmpl_caps)) {
+      gst_pad_set_caps (mux->priv->srcpad, tmpl_caps);
+    }
+  } else {
+    g_warning ("GstTagMux subclass '%s' did not install a %s pad template!\n",
+        G_OBJECT_CLASS_NAME (mux_class), "source");
+    mux->priv->srcpad = gst_pad_new ("src", GST_PAD_SRC);
+  }
+  gst_element_add_pad (GST_ELEMENT (mux), mux->priv->srcpad);
+
+  mux->priv->render_start_tag = TRUE;
+  mux->priv->render_end_tag = TRUE;
+}
+
+static GstTagList *
+gst_tag_mux_get_tags (GstTagMux * mux)
+{
+  GstTagSetter *tagsetter = GST_TAG_SETTER (mux);
+  const GstTagList *tagsetter_tags;
+  GstTagMergeMode merge_mode;
+
+  if (mux->priv->final_tags)
+    return mux->priv->final_tags;
+
+  tagsetter_tags = gst_tag_setter_get_tag_list (tagsetter);
+  merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
+
+  GST_LOG_OBJECT (mux, "merging tags, merge mode = %d", merge_mode);
+  GST_LOG_OBJECT (mux, "event tags: %" GST_PTR_FORMAT, mux->priv->event_tags);
+  GST_LOG_OBJECT (mux, "set   tags: %" GST_PTR_FORMAT, tagsetter_tags);
+
+  mux->priv->final_tags =
+      gst_tag_list_merge (tagsetter_tags, mux->priv->event_tags, merge_mode);
+
+  GST_LOG_OBJECT (mux, "final tags: %" GST_PTR_FORMAT, mux->priv->final_tags);
+
+  return mux->priv->final_tags;
+}
+
+static GstFlowReturn
+gst_tag_mux_render_start_tag (GstTagMux * mux)
+{
+  GstTagMuxClass *klass;
+  GstBuffer *buffer;
+  GstTagList *taglist;
+  GstEvent *event;
+  GstFlowReturn ret;
+
+  taglist = gst_tag_mux_get_tags (mux);
+
+  klass = GST_TAG_MUX_CLASS (G_OBJECT_GET_CLASS (mux));
+
+  if (klass->render_start_tag == NULL)
+    goto no_vfunc;
+
+  buffer = klass->render_start_tag (mux, taglist);
+
+  /* Null buffer is ok, just means we're not outputting anything */
+  if (buffer == NULL) {
+    GST_INFO_OBJECT (mux, "No start tag generated");
+    mux->priv->start_tag_size = 0;
+    return GST_FLOW_OK;
+  }
+
+  if (GST_BUFFER_CAPS (buffer) == NULL) {
+    buffer = gst_buffer_make_metadata_writable (buffer);
+    gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->priv->srcpad));
+  }
+
+  mux->priv->start_tag_size = GST_BUFFER_SIZE (buffer);
+  GST_LOG_OBJECT (mux, "tag size = %" G_GSIZE_FORMAT " bytes",
+      mux->priv->start_tag_size);
+
+  /* Send newsegment event from byte position 0, so the tag really gets
+   * written to the start of the file, independent of the upstream segment */
+  gst_pad_push_event (mux->priv->srcpad,
+      gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, 0, -1, 0));
+
+  /* Send an event about the new tags to downstream elements */
+  /* gst_event_new_tag takes ownership of the list, so use a copy */
+  event = gst_event_new_tag (gst_tag_list_copy (taglist));
+  gst_pad_push_event (mux->priv->srcpad, event);
+
+  GST_BUFFER_OFFSET (buffer) = 0;
+  ret = gst_pad_push (mux->priv->srcpad, buffer);
+
+  mux->priv->current_offset = mux->priv->start_tag_size;
+  mux->priv->max_offset =
+      MAX (mux->priv->max_offset, mux->priv->current_offset);
+
+  return ret;
+
+no_vfunc:
+  {
+    GST_ERROR_OBJECT (mux, "Subclass does not implement "
+        "render_start_tag vfunc!");
+    return GST_FLOW_ERROR;
+  }
+}
+
+static GstFlowReturn
+gst_tag_mux_render_end_tag (GstTagMux * mux)
+{
+  GstTagMuxClass *klass;
+  GstBuffer *buffer;
+  GstTagList *taglist;
+  GstFlowReturn ret;
+
+  taglist = gst_tag_mux_get_tags (mux);
+
+  klass = GST_TAG_MUX_CLASS (G_OBJECT_GET_CLASS (mux));
+
+  if (klass->render_end_tag == NULL)
+    goto no_vfunc;
+
+  buffer = klass->render_end_tag (mux, taglist);
+
+  if (buffer == NULL) {
+    GST_INFO_OBJECT (mux, "No end tag generated");
+    mux->priv->end_tag_size = 0;
+    return GST_FLOW_OK;
+  }
+
+  if (GST_BUFFER_CAPS (buffer) == NULL) {
+    buffer = gst_buffer_make_metadata_writable (buffer);
+    gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->priv->srcpad));
+  }
+
+  mux->priv->end_tag_size = GST_BUFFER_SIZE (buffer);
+  GST_LOG_OBJECT (mux, "tag size = %" G_GSIZE_FORMAT " bytes",
+      mux->priv->end_tag_size);
+
+  /* Send newsegment event from the end of the file, so it gets written there,
+     independent of whatever new segment events upstream has sent us */
+  gst_pad_push_event (mux->priv->srcpad,
+      gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES,
+          mux->priv->max_offset, -1, 0));
+
+  GST_BUFFER_OFFSET (buffer) = mux->priv->max_offset;
+  ret = gst_pad_push (mux->priv->srcpad, buffer);
+
+  return ret;
+
+no_vfunc:
+  {
+    GST_ERROR_OBJECT (mux, "Subclass does not implement "
+        "render_end_tag vfunc!");
+    return GST_FLOW_ERROR;
+  }
+}
+
+static GstEvent *
+gst_tag_mux_adjust_event_offsets (GstTagMux * mux,
+    const GstEvent * newsegment_event)
+{
+  GstFormat format;
+  gint64 start, stop, cur;
+
+  gst_event_parse_new_segment ((GstEvent *) newsegment_event, NULL, NULL,
+      &format, &start, &stop, &cur);
+
+  g_assert (format == GST_FORMAT_BYTES);
+
+  if (start != -1)
+    start += mux->priv->start_tag_size;
+  if (stop != -1)
+    stop += mux->priv->start_tag_size;
+  if (cur != -1)
+    cur += mux->priv->start_tag_size;
+
+  GST_DEBUG_OBJECT (mux, "adjusting newsegment event offsets to start=%"
+      G_GINT64_FORMAT ", stop=%" G_GINT64_FORMAT ", cur=%" G_GINT64_FORMAT
+      " (delta = +%" G_GSIZE_FORMAT ")", start, stop, cur,
+      mux->priv->start_tag_size);
+
+  return gst_event_new_new_segment (TRUE, 1.0, format, start, stop, cur);
+}
+
+static GstFlowReturn
+gst_tag_mux_chain (GstPad * pad, GstBuffer * buffer)
+{
+  GstTagMux *mux = GST_TAG_MUX (GST_OBJECT_PARENT (pad));
+  GstFlowReturn ret;
+  int length;
+
+  if (mux->priv->render_start_tag) {
+
+    GST_INFO_OBJECT (mux, "Adding tags to stream");
+    ret = gst_tag_mux_render_start_tag (mux);
+    if (ret != GST_FLOW_OK) {
+      GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret));
+      gst_buffer_unref (buffer);
+      return ret;
+    }
+
+    /* Now send the cached newsegment event that we got from upstream */
+    if (mux->priv->newsegment_ev) {
+      gint64 start;
+      GstEvent *newseg;
+
+      GST_DEBUG_OBJECT (mux, "sending cached newsegment event");
+      newseg = gst_tag_mux_adjust_event_offsets (mux, mux->priv->newsegment_ev);
+      gst_event_unref (mux->priv->newsegment_ev);
+      mux->priv->newsegment_ev = NULL;
+
+      gst_event_parse_new_segment (newseg, NULL, NULL, NULL, &start, NULL,
+          NULL);
+
+      gst_pad_push_event (mux->priv->srcpad, newseg);
+      mux->priv->current_offset = start;
+      mux->priv->max_offset =
+          MAX (mux->priv->max_offset, mux->priv->current_offset);
+    } else {
+      /* upstream sent no newsegment event or only one in a non-BYTE format */
+    }
+
+    mux->priv->render_start_tag = FALSE;
+  }
+
+  buffer = gst_buffer_make_metadata_writable (buffer);
+
+  if (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE) {
+    GST_LOG_OBJECT (mux, "Adjusting buffer offset from %" G_GINT64_FORMAT
+        " to %" G_GINT64_FORMAT, GST_BUFFER_OFFSET (buffer),
+        GST_BUFFER_OFFSET (buffer) + mux->priv->start_tag_size);
+    GST_BUFFER_OFFSET (buffer) += mux->priv->start_tag_size;
+  }
+
+  length = GST_BUFFER_SIZE (buffer);
+
+  gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->priv->srcpad));
+  ret = gst_pad_push (mux->priv->srcpad, buffer);
+
+  mux->priv->current_offset += length;
+  mux->priv->max_offset =
+      MAX (mux->priv->max_offset, mux->priv->current_offset);
+
+  return ret;
+}
+
+static gboolean
+gst_tag_mux_sink_event (GstPad * pad, GstEvent * event)
+{
+  GstTagMux *mux;
+  gboolean result;
+
+  mux = GST_TAG_MUX (gst_pad_get_parent (pad));
+  result = FALSE;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_TAG:{
+      GstTagList *tags;
+
+      gst_event_parse_tag (event, &tags);
+
+      GST_INFO_OBJECT (mux, "Got tag event: %" GST_PTR_FORMAT, tags);
+
+      if (mux->priv->event_tags != NULL) {
+        gst_tag_list_insert (mux->priv->event_tags, tags,
+            GST_TAG_MERGE_REPLACE);
+      } else {
+        mux->priv->event_tags = gst_tag_list_copy (tags);
+      }
+
+      GST_INFO_OBJECT (mux, "Event tags are now: %" GST_PTR_FORMAT,
+          mux->priv->event_tags);
+
+      /* just drop the event, we'll push a new tag event in render_start_tag */
+      gst_event_unref (event);
+      result = TRUE;
+      break;
+    }
+    case GST_EVENT_NEWSEGMENT:{
+      GstFormat fmt;
+      gint64 start;
+
+      gst_event_parse_new_segment (event, NULL, NULL, &fmt, &start, NULL, NULL);
+
+      if (fmt != GST_FORMAT_BYTES) {
+        GST_WARNING_OBJECT (mux, "dropping newsegment event in %s format",
+            gst_format_get_name (fmt));
+        gst_event_unref (event);
+        break;
+      }
+
+      if (mux->priv->render_start_tag) {
+        /* we have not rendered the tag yet, which means that we don't know
+         * how large it is going to be yet, so we can't adjust the offsets
+         * here at this point and need to cache the newsegment event for now
+         * (also, there could be tag events coming after this newsegment event
+         *  and before the first buffer). */
+        if (mux->priv->newsegment_ev) {
+          GST_WARNING_OBJECT (mux, "discarding old cached newsegment event");
+          gst_event_unref (mux->priv->newsegment_ev);
+        }
+
+        GST_LOG_OBJECT (mux, "caching newsegment event for later");
+        mux->priv->newsegment_ev = event;
+      } else {
+        GST_DEBUG_OBJECT (mux, "got newsegment event, adjusting offsets");
+        gst_pad_push_event (mux->priv->srcpad,
+            gst_tag_mux_adjust_event_offsets (mux, event));
+        gst_event_unref (event);
+
+        mux->priv->current_offset = start;
+        mux->priv->max_offset =
+            MAX (mux->priv->max_offset, mux->priv->current_offset);
+      }
+      event = NULL;
+      result = TRUE;
+      break;
+    }
+    case GST_EVENT_EOS:{
+      if (mux->priv->render_end_tag) {
+        GstFlowReturn ret;
+
+        GST_INFO_OBJECT (mux, "Adding tags to stream");
+        ret = gst_tag_mux_render_end_tag (mux);
+        if (ret != GST_FLOW_OK) {
+          GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret));
+          return ret;
+        }
+
+        mux->priv->render_end_tag = FALSE;
+      }
+
+      /* Now forward EOS */
+      result = gst_pad_event_default (pad, event);
+      break;
+    }
+    default:
+      result = gst_pad_event_default (pad, event);
+      break;
+  }
+
+  gst_object_unref (mux);
+
+  return result;
+}
+
+
+static GstStateChangeReturn
+gst_tag_mux_change_state (GstElement * element, GstStateChange transition)
+{
+  GstTagMux *mux;
+  GstStateChangeReturn result;
+
+  mux = GST_TAG_MUX (element);
+
+  result = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (result != GST_STATE_CHANGE_SUCCESS) {
+    return result;
+  }
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:{
+      if (mux->priv->newsegment_ev) {
+        gst_event_unref (mux->priv->newsegment_ev);
+        mux->priv->newsegment_ev = NULL;
+      }
+      if (mux->priv->event_tags) {
+        gst_tag_list_free (mux->priv->event_tags);
+        mux->priv->event_tags = NULL;
+      }
+      mux->priv->start_tag_size = 0;
+      mux->priv->end_tag_size = 0;
+      mux->priv->render_start_tag = TRUE;
+      mux->priv->render_end_tag = TRUE;
+      mux->priv->current_offset = 0;
+      mux->priv->max_offset = 0;
+      break;
+    }
+    default:
+      break;
+  }
+
+  return result;
+}
diff --git a/gst-libs/gst/tag/gsttagmux.h b/gst-libs/gst/tag/gsttagmux.h
new file mode 100644 (file)
index 0000000..ddb5988
--- /dev/null
@@ -0,0 +1,89 @@
+/* GStreamer tag muxer base class
+ * Copyright (C) 2006 Christophe Fergeau  <teuf@gnome.org>
+ * Copyright (C) 2006,2011 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2009 Pioneers of the Inevitable <songbird@songbirdnest.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef GST_TAG_MUX_H
+#define GST_TAG_MUX_H
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_TAG_MUX \
+  (gst_tag_mux_get_type())
+#define GST_TAG_MUX(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TAG_MUX,GstTagMux))
+#define GST_TAG_MUX_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TAG_MUX,GstTagMuxClass))
+#define GST_IS_TAG_MUX(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TAG_MUX))
+#define GST_IS_TAG_MUX_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TAG_MUX))
+
+typedef struct _GstTagMux GstTagMux;
+typedef struct _GstTagMuxClass GstTagMuxClass;
+typedef struct _GstTagMuxPrivate GstTagMuxPrivate;
+
+/**
+ * GstTagMux:
+ * @element: parent element
+ *
+ * Opaque #GstTagMux structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstTagMux {
+  GstElement    element;
+
+  /*< private >*/
+  GstTagMuxPrivate *priv;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstTagMuxClass:
+ * @parent_class: the parent class.
+ * @render_start_tag: create a tag buffer to add to the beginning of the
+ *     input stream given a tag list, or NULL
+ * @render_end_tag: create a tag buffer to add to the end of the
+ *     input stream given a tag list, or NULL
+ *
+ * The #GstTagMuxClass structure. Subclasses need to override at least one
+ * of the two render vfuncs.
+ *
+ * Since: 0.10.36
+ */
+struct _GstTagMuxClass {
+  GstElementClass parent_class;
+
+  /* vfuncs */
+  GstBuffer  * (*render_start_tag) (GstTagMux * mux, const GstTagList * tag_list);
+  GstBuffer  * (*render_end_tag)   (GstTagMux * mux, const GstTagList * tag_list);
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_tag_mux_get_type (void);
+
+G_END_DECLS
+
+#endif
index 400118b..1c3d554 100644 (file)
@@ -98,6 +98,11 @@ static const GstTagEntryMatch tag_matches[] = {
    * http://mail.kde.org/pipermail/amarok/2006-May/000090.html
    */
   {GST_TAG_BEATS_PER_MINUTE, "BPM"},
+  /* What GStreamer calls encoder ("encoder used to encode this stream") is
+     stored in the vendor string in Vorbis/Theora/Kate and possibly others.
+     The Vorbis comment packet used in those streams uses ENCODER as the name
+     of the encoding program, which GStreamer calls application-name. */
+  {GST_TAG_APPLICATION_NAME, "ENCODER"},
   {NULL, NULL}
 };
 
@@ -109,7 +114,7 @@ static const GstTagEntryMatch tag_matches[] = {
  *
  * Returns: The corresponding GStreamer tag or NULL if none exists.
  */
-G_CONST_RETURN gchar *
+const gchar *
 gst_tag_from_vorbis_tag (const gchar * vorbis_tag)
 {
   int i = 0;
@@ -138,7 +143,7 @@ gst_tag_from_vorbis_tag (const gchar * vorbis_tag)
  *
  * Returns: The corresponding vorbiscomment tag or NULL if none exists.
  */
-G_CONST_RETURN gchar *
+const gchar *
 gst_tag_to_vorbis_tag (const gchar * gst_tag)
 {
   int i = 0;
@@ -599,7 +604,7 @@ gst_tag_to_metadata_block_picture (const gchar * tag,
  * Creates a new tag list that contains the information parsed out of a
  * vorbiscomment packet.
  *
- * Returns: A #GList of newly-allowcated key=value strings. Free with
+ * Returns: A #GList of newly-allocated key=value strings. Free with
  *          g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)
  */
 GList *
index ca05895..1fb7f39 100644 (file)
@@ -51,6 +51,7 @@ static const gchar *schema_list[] = {
   "exif",
   "photoshop",
   "Iptc4xmpCore",
+  "Iptc4xmpExt",
   NULL
 };
 
@@ -112,14 +113,39 @@ xmp_serialization_data_use_schema (XmpSerializationData * serdata,
   return FALSE;
 }
 
+typedef enum
+{
+  GstXmpTagTypeNone = 0,
+  GstXmpTagTypeSimple,
+  GstXmpTagTypeBag,
+  GstXmpTagTypeSeq,
+  GstXmpTagTypeStruct,
+
+  /* Not really a xmp type, this is a tag that in gst is represented with
+   * a single value and on xmp it needs 2 (or more) simple values
+   *
+   * e.g. GST_TAG_GEO_LOCATION_ELEVATION needs to be mapped into 2 complementary
+   * tags in the exif's schema. One of them stores the absolute elevation,
+   * and the other one stores if it is above of below sea level.
+   */
+  GstXmpTagTypeCompound
+} GstXmpTagType;
 
-#define GST_XMP_TAG_TYPE_SIMPLE 0
-#define GST_XMP_TAG_TYPE_BAG    1
-#define GST_XMP_TAG_TYPE_SEQ    2
 struct _XmpTag
 {
+  const gchar *gst_tag;
   const gchar *tag_name;
-  gint type;
+  GstXmpTagType type;
+
+  /* some tags must be inside a Bag even
+   * if they are a single entry. Set it here so we know */
+  GstXmpTagType supertype;
+
+  /* For tags that need a rdf:parseType attribute */
+  const gchar *parse_type;
+
+  /* Used for struct and compound types */
+  GSList *children;
 
   XmpSerializationFunc serialize;
   XmpDeserializationFunc deserialize;
@@ -129,44 +155,38 @@ static GstTagMergeMode
 xmp_tag_get_merge_mode (XmpTag * xmptag)
 {
   switch (xmptag->type) {
-    case GST_XMP_TAG_TYPE_BAG:
-    case GST_XMP_TAG_TYPE_SEQ:
+    case GstXmpTagTypeBag:
+    case GstXmpTagTypeSeq:
       return GST_TAG_MERGE_APPEND;
-    case GST_XMP_TAG_TYPE_SIMPLE:
+    case GstXmpTagTypeSimple:
     default:
       return GST_TAG_MERGE_KEEP;
   }
 }
 
 static const gchar *
-xmp_tag_get_type_name (XmpTag * xmptag)
+xmp_tag_type_get_name (GstXmpTagType tagtype)
 {
-  switch (xmptag->type) {
-    case GST_XMP_TAG_TYPE_SEQ:
+  switch (tagtype) {
+    case GstXmpTagTypeSeq:
       return "rdf:Seq";
+    case GstXmpTagTypeBag:
+      return "rdf:Bag";
     default:
       g_assert_not_reached ();
-    case GST_XMP_TAG_TYPE_BAG:
-      return "rdf:Bag";
   }
 }
 
 struct _PendingXmpTag
 {
-  const gchar *gst_tag;
   XmpTag *xmp_tag;
   gchar *str;
 };
 typedef struct _PendingXmpTag PendingXmpTag;
 
-
 /*
  * A schema is a mapping of strings (the tag name in gstreamer) to a list of
- * tags in xmp (XmpTag). We need a list because some tags are split into 2
- * when serialized into xmp.
- * e.g. GST_TAG_GEO_LOCATION_ELEVATION needs to be mapped into 2 complementary
- * tags in the exif's schema. One of them stores the absolute elevation,
- * and the other one stores if it is above of below sea level.
+ * tags in xmp (XmpTag).
  */
 typedef GHashTable GstXmpSchema;
 #define gst_xmp_schema_lookup g_hash_table_lookup
@@ -182,6 +202,21 @@ gst_xmp_schema_new ()
  */
 static GHashTable *__xmp_schemas;
 
+static GstXmpSchema *
+_gst_xmp_get_schema (const gchar * name)
+{
+  GQuark key;
+  GstXmpSchema *schema;
+
+  key = g_quark_from_string (name);
+
+  schema = g_hash_table_lookup (__xmp_schemas, GUINT_TO_POINTER (key));
+  if (!schema) {
+    GST_WARNING ("Schema %s doesn't exist", name);
+  }
+  return schema;
+}
+
 static void
 _gst_xmp_add_schema (const gchar * name, GstXmpSchema * schema)
 {
@@ -199,40 +234,72 @@ _gst_xmp_add_schema (const gchar * name, GstXmpSchema * schema)
 }
 
 static void
-_gst_xmp_schema_add_mapping (GstXmpSchema * schema, const gchar * gst_tag,
-    GPtrArray * array)
+_gst_xmp_schema_add_mapping (GstXmpSchema * schema, XmpTag * tag)
 {
   GQuark key;
 
-  key = g_quark_from_string (gst_tag);
+  key = g_quark_from_string (tag->gst_tag);
 
   if (gst_xmp_schema_lookup (schema, GUINT_TO_POINTER (key))) {
-    GST_WARNING ("Tag %s already present for the schema", gst_tag);
+    GST_WARNING ("Tag %s already present for the schema", tag->gst_tag);
     g_assert_not_reached ();
     return;
   }
-  gst_xmp_schema_insert (schema, GUINT_TO_POINTER (key), array);
+  gst_xmp_schema_insert (schema, GUINT_TO_POINTER (key), tag);
 }
 
-static void
-_gst_xmp_schema_add_simple_mapping (GstXmpSchema * schema,
-    const gchar * gst_tag, const gchar * xmp_tag, gint xmp_type,
-    XmpSerializationFunc serialization_func,
+static XmpTag *
+gst_xmp_tag_create (const gchar * gst_tag, const gchar * xmp_tag,
+    gint xmp_type, XmpSerializationFunc serialization_func,
     XmpDeserializationFunc deserialization_func)
 {
   XmpTag *xmpinfo;
-  GPtrArray *array;
 
   xmpinfo = g_slice_new (XmpTag);
+  xmpinfo->gst_tag = gst_tag;
   xmpinfo->tag_name = xmp_tag;
   xmpinfo->type = xmp_type;
+  xmpinfo->supertype = GstXmpTagTypeNone;
+  xmpinfo->parse_type = NULL;
   xmpinfo->serialize = serialization_func;
   xmpinfo->deserialize = deserialization_func;
+  xmpinfo->children = NULL;
+
+  return xmpinfo;
+}
+
+static XmpTag *
+gst_xmp_tag_create_compound (const gchar * gst_tag, const gchar * xmp_tag_a,
+    const gchar * xmp_tag_b, XmpSerializationFunc serialization_func_a,
+    XmpSerializationFunc serialization_func_b,
+    XmpDeserializationFunc deserialization_func)
+{
+  XmpTag *xmptag;
+  XmpTag *xmptag_a =
+      gst_xmp_tag_create (gst_tag, xmp_tag_a, GstXmpTagTypeSimple,
+      serialization_func_a, deserialization_func);
+  XmpTag *xmptag_b =
+      gst_xmp_tag_create (gst_tag, xmp_tag_b, GstXmpTagTypeSimple,
+      serialization_func_b, deserialization_func);
 
-  array = g_ptr_array_sized_new (1);
-  g_ptr_array_add (array, xmpinfo);
+  xmptag =
+      gst_xmp_tag_create (gst_tag, NULL, GstXmpTagTypeCompound, NULL, NULL);
 
-  _gst_xmp_schema_add_mapping (schema, gst_tag, array);
+  xmptag->children = g_slist_prepend (xmptag->children, xmptag_b);
+  xmptag->children = g_slist_prepend (xmptag->children, xmptag_a);
+
+  return xmptag;
+}
+
+static void
+_gst_xmp_schema_add_simple_mapping (GstXmpSchema * schema,
+    const gchar * gst_tag, const gchar * xmp_tag, gint xmp_type,
+    XmpSerializationFunc serialization_func,
+    XmpDeserializationFunc deserialization_func)
+{
+  _gst_xmp_schema_add_mapping (schema,
+      gst_xmp_tag_create (gst_tag, xmp_tag, xmp_type, serialization_func,
+          deserialization_func));
 }
 
 /*
@@ -240,6 +307,7 @@ _gst_xmp_schema_add_simple_mapping (GstXmpSchema * schema,
  * appended, and the API is not public, so we shouldn't
  * have our lists modified during usage
  */
+#if 0
 static GPtrArray *
 _xmp_tag_get_mapping (const gchar * gst_tag, XmpSerializationData * serdata)
 {
@@ -260,6 +328,7 @@ _xmp_tag_get_mapping (const gchar * gst_tag, XmpSerializationData * serdata)
   }
   return ret;
 }
+#endif
 
 /* finds the gst tag that maps to this xmp tag in this schema */
 static const gchar *
@@ -269,22 +338,30 @@ _gst_xmp_schema_get_mapping_reverse (GstXmpSchema * schema,
   GHashTableIter iter;
   gpointer key, value;
   const gchar *ret = NULL;
-  gint index;
 
   /* Iterate over the hashtable */
   g_hash_table_iter_init (&iter, schema);
   while (!ret && g_hash_table_iter_next (&iter, &key, &value)) {
-    GPtrArray *array = (GPtrArray *) value;
-
-    /* each mapping might contain complementary tags */
-    for (index = 0; index < array->len; index++) {
-      XmpTag *xmpinfo = (XmpTag *) g_ptr_array_index (array, index);
+    XmpTag *xmpinfo = (XmpTag *) value;
 
+    if (xmpinfo->tag_name) {
       if (strcmp (xmpinfo->tag_name, xmp_tag) == 0) {
         *_xmp_tag = xmpinfo;
         ret = g_quark_to_string (GPOINTER_TO_UINT (key));
         goto out;
       }
+    } else if (xmpinfo->children) {
+      GSList *iter;
+      for (iter = xmpinfo->children; iter; iter = g_slist_next (iter)) {
+        XmpTag *child = iter->data;
+        if (strcmp (child->tag_name, xmp_tag) == 0) {
+          *_xmp_tag = child;
+          ret = g_quark_to_string (GPOINTER_TO_UINT (key));
+          goto out;
+        }
+      }
+    } else {
+      g_assert_not_reached ();
     }
   }
 
@@ -777,7 +854,7 @@ deserialize_xmp_rating (XmpTag * xmptag, GstTagList * taglist,
     return;
   }
 
-  if (value < 0 || value > 100) {
+  if (value > 100) {
     GST_WARNING ("Unsupported Rating tag %u (should be from 0 to 100), "
         "ignoring", value);
     return;
@@ -839,7 +916,6 @@ deserialize_tiff_orientation (XmpTag * xmptag, GstTagList * taglist,
 static gpointer
 _init_xmp_tag_map (gpointer user_data)
 {
-  GPtrArray *array;
   XmpTag *xmpinfo;
   GstXmpSchema *schema;
 
@@ -851,135 +927,117 @@ _init_xmp_tag_map (gpointer user_data)
    */
   schema = gst_xmp_schema_new ();
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_ARTIST,
-      "dc:creator", GST_XMP_TAG_TYPE_SEQ, NULL, NULL);
+      "dc:creator", GstXmpTagTypeSeq, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_COPYRIGHT,
-      "dc:rights", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "dc:rights", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DATE, "dc:date",
-      GST_XMP_TAG_TYPE_SEQ, NULL, NULL);
+      GstXmpTagTypeSeq, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DESCRIPTION,
-      "dc:description", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "dc:description", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_KEYWORDS,
-      "dc:subject", GST_XMP_TAG_TYPE_BAG, NULL, NULL);
+      "dc:subject", GstXmpTagTypeBag, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_TITLE, "dc:title",
-      GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      GstXmpTagTypeSimple, NULL, NULL);
   /* FIXME: we probably want GST_TAG_{,AUDIO_,VIDEO_}MIME_TYPE */
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_VIDEO_CODEC,
-      "dc:format", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "dc:format", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_add_schema ("dc", schema);
 
   /* xap (xmp) schema */
   schema = gst_xmp_schema_new ();
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_USER_RATING,
-      "xmp:Rating", GST_XMP_TAG_TYPE_SIMPLE, NULL, deserialize_xmp_rating);
+      "xmp:Rating", GstXmpTagTypeSimple, NULL, deserialize_xmp_rating);
   _gst_xmp_add_schema ("xap", schema);
 
   /* tiff */
   schema = gst_xmp_schema_new ();
   _gst_xmp_schema_add_simple_mapping (schema,
-      GST_TAG_DEVICE_MANUFACTURER, "tiff:Make", GST_XMP_TAG_TYPE_SIMPLE, NULL,
+      GST_TAG_DEVICE_MANUFACTURER, "tiff:Make", GstXmpTagTypeSimple, NULL,
       NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DEVICE_MODEL,
-      "tiff:Model", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "tiff:Model", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_APPLICATION_NAME,
-      "tiff:Software", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "tiff:Software", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_IMAGE_ORIENTATION,
-      "tiff:Orientation", GST_XMP_TAG_TYPE_SIMPLE, serialize_tiff_orientation,
+      "tiff:Orientation", GstXmpTagTypeSimple, serialize_tiff_orientation,
       deserialize_tiff_orientation);
   _gst_xmp_add_schema ("tiff", schema);
 
   /* exif schema */
+  schema = gst_xmp_schema_new ();
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DATE_TIME,
-      "exif:DateTimeOriginal", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "exif:DateTimeOriginal", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema,
       GST_TAG_GEO_LOCATION_LATITUDE, "exif:GPSLatitude",
-      GST_XMP_TAG_TYPE_SIMPLE, serialize_exif_latitude,
-      deserialize_exif_latitude);
+      GstXmpTagTypeSimple, serialize_exif_latitude, deserialize_exif_latitude);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_GEO_LOCATION_LONGITUDE,
-      "exif:GPSLongitude", GST_XMP_TAG_TYPE_SIMPLE, serialize_exif_longitude,
+      "exif:GPSLongitude", GstXmpTagTypeSimple, serialize_exif_longitude,
       deserialize_exif_longitude);
   _gst_xmp_schema_add_simple_mapping (schema,
       GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, "exif:ExposureBiasValue",
-      GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      GstXmpTagTypeSimple, NULL, NULL);
 
   /* compound exif tags */
-  array = g_ptr_array_sized_new (2);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSAltitude";
-  xmpinfo->serialize = serialize_exif_altitude;
-  xmpinfo->deserialize = deserialize_exif_altitude;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSAltitudeRef";
-  xmpinfo->serialize = serialize_exif_altituderef;
-  xmpinfo->deserialize = deserialize_exif_altitude;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  _gst_xmp_schema_add_mapping (schema, GST_TAG_GEO_LOCATION_ELEVATION, array);
-
-  array = g_ptr_array_sized_new (2);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSSpeed";
-  xmpinfo->serialize = serialize_exif_gps_speed;
-  xmpinfo->deserialize = deserialize_exif_gps_speed;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSSpeedRef";
-  xmpinfo->serialize = serialize_exif_gps_speedref;
-  xmpinfo->deserialize = deserialize_exif_gps_speed;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  _gst_xmp_schema_add_mapping (schema,
-      GST_TAG_GEO_LOCATION_MOVEMENT_SPEED, array);
-
-  array = g_ptr_array_sized_new (2);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSTrack";
-  xmpinfo->serialize = serialize_exif_gps_direction;
-  xmpinfo->deserialize = deserialize_exif_gps_track;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSTrackRef";
-  xmpinfo->serialize = serialize_exif_gps_directionref;
-  xmpinfo->deserialize = deserialize_exif_gps_track;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  _gst_xmp_schema_add_mapping (schema,
-      GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION, array);
+  xmpinfo = gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_ELEVATION,
+      "exif:GPSAltitude", "exif:GPSAltitudeRef", serialize_exif_altitude,
+      serialize_exif_altituderef, deserialize_exif_altitude);
+  _gst_xmp_schema_add_mapping (schema, xmpinfo);
+
+  xmpinfo = gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_MOVEMENT_SPEED,
+      "exif:GPSSpeed", "exif:GPSSpeedRef", serialize_exif_gps_speed,
+      serialize_exif_gps_speedref, deserialize_exif_gps_speed);
+  _gst_xmp_schema_add_mapping (schema, xmpinfo);
+
+  xmpinfo =
+      gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION,
+      "exif:GPSTrack", "exif:GPSTrackRef", serialize_exif_gps_direction,
+      serialize_exif_gps_directionref, deserialize_exif_gps_track);
+  _gst_xmp_schema_add_mapping (schema, xmpinfo);
+
+  xmpinfo = gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION,
+      "exif:GPSImgDirection", "exif:GPSImgDirectionRef",
+      serialize_exif_gps_direction, serialize_exif_gps_directionref,
+      deserialize_exif_gps_img_direction);
+  _gst_xmp_schema_add_mapping (schema, xmpinfo);
 
-  array = g_ptr_array_sized_new (2);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSImgDirection";
-  xmpinfo->serialize = serialize_exif_gps_direction;
-  xmpinfo->deserialize = deserialize_exif_gps_img_direction;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  xmpinfo = g_slice_new (XmpTag);
-  xmpinfo->tag_name = "exif:GPSImgDirectionRef";
-  xmpinfo->serialize = serialize_exif_gps_directionref;
-  xmpinfo->deserialize = deserialize_exif_gps_img_direction;
-  xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
-  g_ptr_array_add (array, xmpinfo);
-  _gst_xmp_schema_add_mapping (schema,
-      GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION, array);
   _gst_xmp_add_schema ("exif", schema);
 
   /* photoshop schema */
+  schema = gst_xmp_schema_new ();
   _gst_xmp_schema_add_simple_mapping (schema,
       GST_TAG_GEO_LOCATION_COUNTRY, "photoshop:Country",
-      GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_schema_add_simple_mapping (schema, GST_TAG_GEO_LOCATION_CITY,
-      "photoshop:City", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      "photoshop:City", GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_add_schema ("photoshop", schema);
 
   /* iptc4xmpcore schema */
+  schema = gst_xmp_schema_new ();
   _gst_xmp_schema_add_simple_mapping (schema,
       GST_TAG_GEO_LOCATION_SUBLOCATION, "Iptc4xmpCore:Location",
-      GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+      GstXmpTagTypeSimple, NULL, NULL);
   _gst_xmp_add_schema ("Iptc4xmpCore", schema);
 
+  /* iptc4xmpext schema */
+  schema = gst_xmp_schema_new ();
+  xmpinfo = gst_xmp_tag_create (NULL, "Iptc4xmpExt:LocationShown",
+      GstXmpTagTypeStruct, NULL, NULL);
+  xmpinfo->supertype = GstXmpTagTypeBag;
+  xmpinfo->parse_type = "Resource";
+  xmpinfo->children = g_slist_prepend (xmpinfo->children,
+      gst_xmp_tag_create (GST_TAG_GEO_LOCATION_SUBLOCATION,
+          "LocationDetails:Sublocation", GstXmpTagTypeSimple, NULL, NULL));
+  xmpinfo->children =
+      g_slist_prepend (xmpinfo->children,
+      gst_xmp_tag_create (GST_TAG_GEO_LOCATION_CITY,
+          "LocationDetails:City", GstXmpTagTypeSimple, NULL, NULL));
+  xmpinfo->children =
+      g_slist_prepend (xmpinfo->children,
+      gst_xmp_tag_create (GST_TAG_GEO_LOCATION_COUNTRY,
+          "LocationDetails:Country", GstXmpTagTypeSimple, NULL, NULL));
+  _gst_xmp_schema_add_mapping (schema, xmpinfo);
+  _gst_xmp_add_schema ("Iptc4xmpExt", schema);
+
   return NULL;
 }
 
@@ -995,16 +1053,26 @@ struct _GstXmpNamespaceMatch
 {
   const gchar *ns_prefix;
   const gchar *ns_uri;
+
+  /*
+   * Stores extra namespaces for array tags
+   * The namespaces should be writen in the form:
+   *
+   * xmlns:XpTo="http://some.org/your/ns/name/ (next ones)"
+   */
+  const gchar *extra_ns;
 };
 
 static const GstXmpNamespaceMatch ns_match[] = {
-  {"dc", "http://purl.org/dc/elements/1.1/"},
-  {"exif", "http://ns.adobe.com/exif/1.0/"},
-  {"tiff", "http://ns.adobe.com/tiff/1.0/"},
-  {"xap", "http://ns.adobe.com/xap/1.0/"},
-  {"photoshop", "http://ns.adobe.com/photoshop/1.0/"},
-  {"Iptc4xmpCore", "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"},
-  {NULL, NULL}
+  {"dc", "http://purl.org/dc/elements/1.1/", NULL},
+  {"exif", "http://ns.adobe.com/exif/1.0/", NULL},
+  {"tiff", "http://ns.adobe.com/tiff/1.0/", NULL},
+  {"xap", "http://ns.adobe.com/xap/1.0/", NULL},
+  {"photoshop", "http://ns.adobe.com/photoshop/1.0/", NULL},
+  {"Iptc4xmpCore", "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/", NULL},
+  {"Iptc4xmpExt", "http://iptc.org/std/Iptc4xmpExt/2008-02-29/",
+      "xmlns:LocationDetails=\"http://iptc.org/std/Iptc4xmpExt/2008-02-29/LocationDetails/\""},
+  {NULL, NULL, NULL}
 };
 
 typedef struct _GstXmpNamespaceMap GstXmpNamespaceMap;
@@ -1017,13 +1085,16 @@ struct _GstXmpNamespaceMap
 /* parsing */
 
 static void
-read_one_tag (GstTagList * list, const gchar * tag, XmpTag * xmptag,
+read_one_tag (GstTagList * list, XmpTag * xmptag,
     const gchar * v, GSList ** pending_tags)
 {
   GType tag_type;
   GstTagMergeMode merge_mode;
+  const gchar *tag = xmptag->gst_tag;
 
-  if (xmptag && xmptag->deserialize) {
+  g_return_if_fail (tag != NULL);
+
+  if (xmptag->deserialize) {
     xmptag->deserialize (xmptag, list, tag, xmptag->tag_name, v, pending_tags);
     return;
   }
@@ -1208,10 +1279,12 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
   gboolean in_tag;
   gchar *part, *pp;
   guint i;
-  const gchar *last_tag = NULL;
   XmpTag *last_xmp_tag = NULL;
   GSList *pending_tags = NULL;
 
+  /* Used for strucuture xmp tags */
+  XmpTag *context_tag = NULL;
+
   GstXmpNamespaceMap ns_map[] = {
     {"dc", NULL},
     {"exif", NULL},
@@ -1219,6 +1292,7 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
     {"xap", NULL},
     {"photoshop", NULL},
     {"Iptc4xmpCore", NULL},
+    {"Iptc4xmpExt", NULL},
     {NULL, NULL}
   };
 
@@ -1227,6 +1301,8 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
   g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
   g_return_val_if_fail (GST_BUFFER_SIZE (buffer) > 0, NULL);
 
+  GST_LOG ("Starting xmp parsing");
+
   xps = (const gchar *) GST_BUFFER_DATA (buffer);
   len = GST_BUFFER_SIZE (buffer);
   xpe = &xps[len + 1];
@@ -1241,7 +1317,10 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
   if (*xp1 != '>')
     goto missing_header;
 
-  max_ft_len = 1 + strlen ("<?xpacket end=\".\"?>\n");
+  /* Use 2 here to count for an extra trailing \n that was added
+   * in old versions, this makes it able to parse xmp packets with
+   * and without this trailing char */
+  max_ft_len = 2 + strlen ("<?xpacket end=\".\"?>");
   if (len < max_ft_len)
     goto missing_footer;
 
@@ -1326,19 +1405,41 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
                   }
                 }
               } else {
-                const gchar *gst_tag;
                 XmpTag *xmp_tag = NULL;
-                /* FIXME: eventualy rewrite ns
+                /* FIXME: eventually rewrite ns
                  * find ':'
                  * check if ns before ':' is in ns_map and ns_map[i].gstreamer_ns!=NULL
                  * do 2 stage filter in tag_matches
                  */
-                gst_tag = _gst_xmp_tag_get_mapping_reverse (as, &xmp_tag);
-                if (gst_tag) {
+                if (context_tag) {
+                  GSList *iter;
+
+                  for (iter = context_tag->children; iter;
+                      iter = g_slist_next (iter)) {
+                    XmpTag *child = iter->data;
+
+                    GST_DEBUG ("Looking at child tag %s : %s", child->tag_name,
+                        as);
+                    if (strcmp (child->tag_name, as) == 0) {
+                      xmp_tag = child;
+                      break;
+                    }
+                  }
+
+                } else {
+                  GST_LOG ("Looking for tag: %s", as);
+                  _gst_xmp_tag_get_mapping_reverse (as, &xmp_tag);
+                }
+                if (xmp_tag) {
                   PendingXmpTag *ptag;
 
+                  GST_DEBUG ("Found xmp tag: %s -> %s", xmp_tag->tag_name,
+                      xmp_tag->gst_tag);
+
+                  /* we shouldn't find a xmp structure here */
+                  g_assert (xmp_tag->gst_tag != NULL);
+
                   ptag = g_slice_new (PendingXmpTag);
-                  ptag->gst_tag = gst_tag;
                   ptag->xmp_tag = xmp_tag;
                   ptag->str = g_strdup (v);
 
@@ -1361,19 +1462,46 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
              <dc:type><rdf:Bag><rdf:li>Image</rdf:li></rdf:Bag></dc:type>
              <dc:creator><rdf:Seq><rdf:li/></rdf:Seq></dc:creator>
            */
-          /* FIXME: eventualy rewrite ns */
+          /* FIXME: eventually rewrite ns */
 
           /* skip rdf tags for now */
           if (strncmp (part, "rdf:", 4)) {
-            const gchar *parttag;
+            /* if we're inside some struct, we look only on its children */
+            if (context_tag) {
+              GSList *iter;
+
+              /* check if this is the closing of the context */
+              if (part[0] == '/'
+                  && strcmp (part + 1, context_tag->tag_name) == 0) {
+                GST_DEBUG ("Closing context tag %s", part);
+                context_tag = NULL;
+              } else {
+
+                for (iter = context_tag->children; iter;
+                    iter = g_slist_next (iter)) {
+                  XmpTag *child = iter->data;
 
-            parttag = _gst_xmp_tag_get_mapping_reverse (part, &last_xmp_tag);
-            if (parttag) {
-              last_tag = parttag;
+                  GST_DEBUG ("Looking at child tag %s : %s", child->tag_name,
+                      part);
+                  if (strcmp (child->tag_name, part) == 0) {
+                    last_xmp_tag = child;
+                    break;
+                  }
+                }
+              }
+
+            } else {
+              GST_LOG ("Looking for tag: %s", part);
+              _gst_xmp_tag_get_mapping_reverse (part, &last_xmp_tag);
+              if (last_xmp_tag && last_xmp_tag->type == GstXmpTagTypeStruct) {
+                context_tag = last_xmp_tag;
+                last_xmp_tag = NULL;
+              }
             }
           }
         }
       }
+      GST_LOG ("Next cycle");
       /* next cycle */
       ne++;
       if (ne < xp2) {
@@ -1393,15 +1521,23 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
       if (ns[0] != '\n' && &ns[1] <= ne) {
         /* only log non-newline nodes, we still have to parse them */
         GST_INFO ("txt: %s", part);
-        if (last_tag) {
+        if (last_xmp_tag) {
           PendingXmpTag *ptag;
 
-          ptag = g_slice_new (PendingXmpTag);
-          ptag->gst_tag = last_tag;
-          ptag->xmp_tag = last_xmp_tag;
-          ptag->str = g_strdup (part);
+          GST_DEBUG ("Found tag %s -> %s", last_xmp_tag->tag_name,
+              last_xmp_tag->gst_tag);
+
+          if (last_xmp_tag->type == GstXmpTagTypeStruct) {
+            g_assert (context_tag == NULL);     /* we can't handle struct nesting currently */
 
-          pending_tags = g_slist_append (pending_tags, ptag);
+            context_tag = last_xmp_tag;
+          } else {
+            ptag = g_slice_new (PendingXmpTag);
+            ptag->xmp_tag = last_xmp_tag;
+            ptag->str = g_strdup (part);
+
+            pending_tags = g_slist_append (pending_tags, ptag);
+          }
         }
       }
       /* next cycle */
@@ -1416,7 +1552,7 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
 
     pending_tags = g_slist_delete_link (pending_tags, pending_tags);
 
-    read_one_tag (list, ptag->gst_tag, ptag->xmp_tag, ptag->str, &pending_tags);
+    read_one_tag (list, ptag->xmp_tag, ptag->str, &pending_tags);
 
     g_free (ptag->str);
     g_slice_free (PendingXmpTag, ptag);
@@ -1520,70 +1656,112 @@ gst_value_serialize_xmp (const GValue * value)
 }
 
 static void
-write_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data)
+write_one_tag (const GstTagList * list, XmpTag * xmp_tag, gpointer user_data)
 {
-  guint i = 0, ct = gst_tag_list_get_tag_size (list, tag), tag_index;
+  guint i = 0, ct;
   XmpSerializationData *serialization_data = user_data;
   GString *data = serialization_data->data;
-  GPtrArray *xmp_tag_array = NULL;
   char *s;
 
-  /* map gst-tag to xmp tag */
-  xmp_tag_array = _xmp_tag_get_mapping (tag, serialization_data);
+  /* struct type handled differently */
+  if (xmp_tag->type == GstXmpTagTypeStruct ||
+      xmp_tag->type == GstXmpTagTypeCompound) {
+    GSList *iter;
+    gboolean use_it = FALSE;
+
+    /* check if any of the inner tags are present on the taglist */
+    for (iter = xmp_tag->children; iter && !use_it; iter = g_slist_next (iter)) {
+      XmpTag *child_tag = iter->data;
+
+      if (gst_tag_list_get_value_index (list, child_tag->gst_tag, 0) != NULL) {
+        use_it = TRUE;
+        break;
+      }
+    }
+
+    if (use_it) {
+      if (xmp_tag->tag_name)
+        string_open_tag (data, xmp_tag->tag_name);
+
+      if (xmp_tag->supertype) {
+        string_open_tag (data, xmp_tag_type_get_name (xmp_tag->supertype));
+        if (xmp_tag->parse_type) {
+          g_string_append (data, "<rdf:li rdf:parseType=\"");
+          g_string_append (data, xmp_tag->parse_type);
+          g_string_append_c (data, '"');
+          g_string_append_c (data, '>');
+        } else {
+          string_open_tag (data, "rdf:li");
+        }
+      }
+
+      /* now write it */
+      for (iter = xmp_tag->children; iter; iter = g_slist_next (iter)) {
+        write_one_tag (list, iter->data, user_data);
+      }
+
+      if (xmp_tag->supertype) {
+        string_close_tag (data, "rdf:li");
+        string_close_tag (data, xmp_tag_type_get_name (xmp_tag->supertype));
+      }
 
-  if (!xmp_tag_array) {
-    GST_WARNING ("no mapping for %s to xmp", tag);
+      if (xmp_tag->tag_name)
+        string_close_tag (data, xmp_tag->tag_name);
+    }
     return;
   }
 
-  for (tag_index = 0; tag_index < xmp_tag_array->len; tag_index++) {
-    XmpTag *xmp_tag;
+  /* at this point we must have a gst_tag */
+  g_assert (xmp_tag->gst_tag);
+  if (gst_tag_list_get_value_index (list, xmp_tag->gst_tag, 0) == NULL)
+    return;
+
+  ct = gst_tag_list_get_tag_size (list, xmp_tag->gst_tag);
+  string_open_tag (data, xmp_tag->tag_name);
+
+  /* fast path for single valued tag */
+  if (ct == 1 || xmp_tag->type == GstXmpTagTypeSimple) {
+    if (xmp_tag->serialize) {
+      s = xmp_tag->serialize (gst_tag_list_get_value_index (list,
+              xmp_tag->gst_tag, 0));
+    } else {
+      s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list,
+              xmp_tag->gst_tag, 0));
+    }
+    if (s) {
+      g_string_append (data, s);
+      g_free (s);
+    } else {
+      GST_WARNING ("unhandled type for %s to xmp", xmp_tag->gst_tag);
+    }
+  } else {
+    const gchar *typename;
 
-    xmp_tag = g_ptr_array_index (xmp_tag_array, tag_index);
-    string_open_tag (data, xmp_tag->tag_name);
+    typename = xmp_tag_type_get_name (xmp_tag->type);
 
-    /* fast path for single valued tag */
-    if (ct == 1 || xmp_tag->type == GST_XMP_TAG_TYPE_SIMPLE) {
+    string_open_tag (data, typename);
+    for (i = 0; i < ct; i++) {
+      GST_DEBUG ("mapping %s[%u/%u] to xmp", xmp_tag->gst_tag, i, ct);
       if (xmp_tag->serialize) {
-        s = xmp_tag->serialize (gst_tag_list_get_value_index (list, tag, 0));
+        s = xmp_tag->serialize (gst_tag_list_get_value_index (list,
+                xmp_tag->gst_tag, i));
       } else {
-        s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list, tag,
-                0));
+        s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list,
+                xmp_tag->gst_tag, i));
       }
       if (s) {
+        string_open_tag (data, "rdf:li");
         g_string_append (data, s);
+        string_close_tag (data, "rdf:li");
         g_free (s);
       } else {
-        GST_WARNING ("unhandled type for %s to xmp", tag);
+        GST_WARNING ("unhandled type for %s to xmp", xmp_tag->gst_tag);
       }
-    } else {
-      const gchar *typename;
-
-      typename = xmp_tag_get_type_name (xmp_tag);
-
-      string_open_tag (data, typename);
-      for (i = 0; i < ct; i++) {
-        GST_DEBUG ("mapping %s[%u/%u] to xmp", tag, i, ct);
-        if (xmp_tag->serialize) {
-          s = xmp_tag->serialize (gst_tag_list_get_value_index (list, tag, i));
-        } else {
-          s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list, tag,
-                  i));
-        }
-        if (s) {
-          string_open_tag (data, "rdf:li");
-          g_string_append (data, s);
-          string_close_tag (data, "rdf:li");
-          g_free (s);
-        } else {
-          GST_WARNING ("unhandled type for %s to xmp", tag);
-        }
-      }
-      string_close_tag (data, typename);
     }
-
-    string_close_tag (data, xmp_tag->tag_name);
+    string_close_tag (data, typename);
   }
+
+  string_close_tag (data, xmp_tag->tag_name);
 }
 
 /**
@@ -1627,16 +1805,37 @@ gst_tag_list_to_xmp_buffer_full (const GstTagList * list, gboolean read_only,
   i = 0;
   while (ns_match[i].ns_prefix) {
     if (xmp_serialization_data_use_schema (&serialization_data,
-            ns_match[i].ns_prefix))
+            ns_match[i].ns_prefix)) {
       g_string_append_printf (data, " xmlns:%s=\"%s\"",
           ns_match[i].ns_prefix, ns_match[i].ns_uri);
+      if (ns_match[i].extra_ns) {
+        g_string_append_printf (data, " %s", ns_match[i].extra_ns);
+      }
+    }
     i++;
   }
   g_string_append (data, ">\n");
   g_string_append (data, "<rdf:Description rdf:about=\"\">\n");
 
-  /* iterate the taglist */
-  gst_tag_list_foreach (list, write_one_tag, &serialization_data);
+  /* iterate the schemas */
+  if (schemas == NULL) {
+    /* use all schemas */
+    schemas = gst_tag_xmp_list_schemas ();
+  }
+  for (i = 0; schemas[i] != NULL; i++) {
+    GstXmpSchema *schema = _gst_xmp_get_schema (schemas[i]);
+    GHashTableIter iter;
+    gpointer key, value;
+
+    if (schema == NULL)
+      continue;
+
+    /* Iterate over the hashtable */
+    g_hash_table_iter_init (&iter, schema);
+    while (g_hash_table_iter_next (&iter, &key, &value)) {
+      write_one_tag (list, value, (gpointer) & serialization_data);
+    }
+  }
 
   /* xmp footer */
   g_string_append (data, "</rdf:Description>\n");
@@ -1644,7 +1843,7 @@ gst_tag_list_to_xmp_buffer_full (const GstTagList * list, gboolean read_only,
   g_string_append (data, "</x:xmpmeta>\n");
 
   if (!read_only) {
-    /* the xmp spec recommand to add 2-4KB padding for in-place editable xmp */
+    /* the xmp spec recommends to add 2-4KB padding for in-place editable xmp */
     guint i;
 
     for (i = 0; i < 32; i++) {
@@ -1652,11 +1851,11 @@ gst_tag_list_to_xmp_buffer_full (const GstTagList * list, gboolean read_only,
           "                " "                " "\n");
     }
   }
-  g_string_append_printf (data, "<?xpacket end=\"%c\"?>\n",
+  g_string_append_printf (data, "<?xpacket end=\"%c\"?>",
       (read_only ? 'r' : 'w'));
 
   buffer = gst_buffer_new ();
-  GST_BUFFER_SIZE (buffer) = data->len + 1;
+  GST_BUFFER_SIZE (buffer) = data->len;
   GST_BUFFER_DATA (buffer) = (guint8 *) g_string_free (data, FALSE);
   GST_BUFFER_MALLOCDATA (buffer) = GST_BUFFER_DATA (buffer);
 
diff --git a/gst-libs/gst/tag/id3v2.c b/gst-libs/gst/tag/id3v2.c
new file mode 100644 (file)
index 0000000..6dabddd
--- /dev/null
@@ -0,0 +1,582 @@
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */
+/* Copyright 2005 Jan Schmidt <thaytan@mad.scientist.com>
+ * Copyright 2002,2003 Scott Wheeler <wheeler@kde.org> (portions from taglib)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <gst/tag/tag.h>
+
+#include "id3v2.h"
+
+#define HANDLE_INVALID_SYNCSAFE
+
+static gboolean id3v2_frames_to_tag_list (ID3TagsWorking * work, guint size);
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT id3v2_ensure_debug_category()
+
+GstDebugCategory *
+id3v2_ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat;
+
+    cat = (gsize) _gst_debug_category_new ("id3v2", 0, "ID3v2 tag parsing");
+
+    g_once_init_leave (&cat_gonce, cat);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+guint
+id3v2_read_synch_uint (const guint8 * data, guint size)
+{
+  gint i;
+  guint result = 0;
+  gint invalid = 0;
+
+  g_assert (size <= 4);
+
+  size--;
+  for (i = 0; i <= size; i++) {
+    invalid |= data[i] & 0x80;
+    result |= (data[i] & 0x7f) << ((size - i) * 7);
+  }
+
+#ifdef HANDLE_INVALID_SYNCSAFE
+  if (invalid) {
+    GST_WARNING ("Invalid synch-safe integer in ID3v2 frame "
+        "- using the actual value instead");
+    result = 0;
+    for (i = 0; i <= size; i++) {
+      result |= data[i] << ((size - i) * 8);
+    }
+  }
+#endif
+  return result;
+}
+
+/**
+ * gst_tag_get_id3v2_tag_size:
+ * @buffer: buffer holding ID3v2 tag (or at least the start of one)
+ *
+ * Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
+ * i.e. at least #GST_TAG_ID3V2_HEADER_SIZE (10) bytes;
+ *
+ * Returns: Size of tag, or 0 if header is invalid or too small.
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_tag_get_id3v2_tag_size (GstBuffer * buffer)
+{
+  guint8 *data, flags;
+  guint size;
+
+  g_return_val_if_fail (buffer != NULL, 0);
+
+  if (GST_BUFFER_SIZE (buffer) < ID3V2_HDR_SIZE)
+    return 0;
+
+  data = GST_BUFFER_DATA (buffer);
+
+  /* Check for 'ID3' string at start of buffer */
+  if (data[0] != 'I' || data[1] != 'D' || data[2] != '3') {
+    GST_DEBUG ("No ID3v2 tag in data");
+    return 0;
+  }
+
+  /* Read the flags */
+  flags = data[5];
+
+  /* Read the size from the header */
+  size = id3v2_read_synch_uint (data + 6, 4);
+  if (size == 0)
+    return ID3V2_HDR_SIZE;
+
+  size += ID3V2_HDR_SIZE;
+
+  /* Expand the read size to include a footer if there is one */
+  if ((flags & ID3V2_HDR_FLAG_FOOTER))
+    size += 10;
+
+  GST_DEBUG ("ID3v2 tag, size: %u bytes", size);
+  return size;
+}
+
+guint8 *
+id3v2_ununsync_data (const guint8 * unsync_data, guint32 * size)
+{
+  const guint8 *end;
+  guint8 *out, *uu;
+  guint out_size;
+
+  uu = out = g_malloc (*size);
+
+  for (end = unsync_data + *size; unsync_data < end - 1; ++unsync_data, ++uu) {
+    *uu = *unsync_data;
+    if (G_UNLIKELY (*unsync_data == 0xff && *(unsync_data + 1) == 0x00))
+      ++unsync_data;
+  }
+
+  /* take care of last byte (if last two bytes weren't 0xff 0x00) */
+  if (unsync_data < end) {
+    *uu = *unsync_data;
+    ++uu;
+  }
+
+  out_size = uu - out;
+  GST_DEBUG ("size after un-unsyncing: %u (before: %u)", out_size, *size);
+
+  *size = out_size;
+  return out;
+}
+
+/**
+ * gst_tag_list_from_id3v2_tag:
+ * @buffer: buffer to convert
+ *
+ * Creates a new tag list that contains the information parsed out of a
+ * ID3 tag.
+ *
+ * Returns: A new #GstTagList with all tags that could be extracted from the
+ *          given vorbiscomment buffer or NULL on error.
+ *
+ * Since: 0.10.36
+ */
+GstTagList *
+gst_tag_list_from_id3v2_tag (GstBuffer * buffer)
+{
+  guint8 *data, *uu_data = NULL;
+  guint read_size;
+  ID3TagsWorking work;
+  guint8 flags;
+  guint16 version;
+
+  read_size = gst_tag_get_id3v2_tag_size (buffer);
+
+  /* Ignore tag if it has no frames attached, but skip the header then */
+  if (read_size < ID3V2_HDR_SIZE)
+    return NULL;
+
+  data = GST_BUFFER_DATA (buffer);
+
+  /* Read the version */
+  version = GST_READ_UINT16_BE (data + 3);
+
+  /* Read the flags */
+  flags = data[5];
+
+  /* Validate the version. At the moment, we only support up to 2.4.0 */
+  if (ID3V2_VER_MAJOR (version) > 4 || ID3V2_VER_MINOR (version) > 0) {
+    GST_WARNING ("ID3v2 tag is from revision 2.%d.%d, "
+        "but decoder only supports 2.%d.%d. Ignoring as per spec.",
+        version >> 8, version & 0xff, ID3V2_VERSION >> 8, ID3V2_VERSION & 0xff);
+    return NULL;
+  }
+
+  GST_DEBUG ("ID3v2 header flags: %s %s %s %s",
+      (flags & ID3V2_HDR_FLAG_UNSYNC) ? "UNSYNC" : "",
+      (flags & ID3V2_HDR_FLAG_EXTHDR) ? "EXTENDED_HEADER" : "",
+      (flags & ID3V2_HDR_FLAG_EXPERIMENTAL) ? "EXPERIMENTAL" : "",
+      (flags & ID3V2_HDR_FLAG_FOOTER) ? "FOOTER" : "");
+
+  /* This shouldn't really happen! Caller should have checked first */
+  if (GST_BUFFER_SIZE (buffer) < read_size) {
+    GST_DEBUG
+        ("Found ID3v2 tag with revision 2.%d.%d - need %u more bytes to read",
+        version >> 8, version & 0xff,
+        (guint) (read_size - GST_BUFFER_SIZE (buffer)));
+    return NULL;
+  }
+
+  GST_DEBUG ("Reading ID3v2 tag with revision 2.%d.%d of size %u", version >> 8,
+      version & 0xff, read_size);
+
+  GST_MEMDUMP ("ID3v2 tag", GST_BUFFER_DATA (buffer), read_size);
+
+  memset (&work, 0, sizeof (ID3TagsWorking));
+  work.buffer = buffer;
+  work.hdr.version = version;
+  work.hdr.size = read_size;
+  work.hdr.flags = flags;
+  work.hdr.frame_data = GST_BUFFER_DATA (buffer) + ID3V2_HDR_SIZE;
+  if (flags & ID3V2_HDR_FLAG_FOOTER)
+    work.hdr.frame_data_size = read_size - ID3V2_HDR_SIZE - 10;
+  else
+    work.hdr.frame_data_size = read_size - ID3V2_HDR_SIZE;
+
+  /* in v2.3 the frame sizes are not syncsafe, so the entire tag had to be
+   * unsynced. In v2.4 the frame sizes are syncsafe so it's just the frame
+   * data that needs un-unsyncing, but not the frame headers. */
+  if ((flags & ID3V2_HDR_FLAG_UNSYNC) != 0 && ID3V2_VER_MAJOR (version) <= 3) {
+    GST_DEBUG ("Un-unsyncing entire tag");
+    uu_data = id3v2_ununsync_data (work.hdr.frame_data,
+        &work.hdr.frame_data_size);
+    work.hdr.frame_data = uu_data;
+    GST_MEMDUMP ("ID3v2 tag (un-unsyced)", uu_data, work.hdr.frame_data_size);
+  }
+
+  id3v2_frames_to_tag_list (&work, work.hdr.frame_data_size);
+
+  g_free (uu_data);
+
+  return work.tags;
+}
+
+static guint
+id3v2_frame_hdr_size (guint id3v2ver)
+{
+  /* ID3v2 < 2.3.0 only had 6 byte header */
+  switch (ID3V2_VER_MAJOR (id3v2ver)) {
+    case 0:
+    case 1:
+    case 2:
+      return 6;
+    case 3:
+    case 4:
+    default:
+      return 10;
+  }
+}
+
+static const gchar obsolete_frame_ids[][5] = {
+  {"CRM"}, {"EQU"}, {"LNK"}, {"RVA"}, {"TIM"}, {"TSI"}, /* From 2.2 */
+  {"EQUA"}, {"RVAD"}, {"TIME"}, {"TRDA"}, {"TSIZ"}      /* From 2.3 */
+};
+
+static const struct ID3v2FrameIDConvert
+{
+  const gchar orig[5];
+  const gchar new[5];
+} frame_id_conversions[] = {
+  /* 2.3.x frames */
+  {
+  "TORY", "TDOR"}, {
+  "TYER", "TDRC"},
+      /* 2.2.x frames */
+  {
+  "BUF", "RBUF"}, {
+  "CNT", "PCNT"}, {
+  "COM", "COMM"}, {
+  "CRA", "AENC"}, {
+  "ETC", "ETCO"}, {
+  "GEO", "GEOB"}, {
+  "IPL", "TIPL"}, {
+  "MCI", "MCDI"}, {
+  "MLL", "MLLT"}, {
+  "PIC", "APIC"}, {
+  "POP", "POPM"}, {
+  "REV", "RVRB"}, {
+  "SLT", "SYLT"}, {
+  "STC", "SYTC"}, {
+  "TAL", "TALB"}, {
+  "TBP", "TBPM"}, {
+  "TCM", "TCOM"}, {
+  "TCO", "TCON"}, {
+  "TCR", "TCOP"}, {
+  "TDA", "TDAT"}, {             /* obsolete, but we need to parse it anyway */
+  "TDY", "TDLY"}, {
+  "TEN", "TENC"}, {
+  "TFT", "TFLT"}, {
+  "TKE", "TKEY"}, {
+  "TLA", "TLAN"}, {
+  "TLE", "TLEN"}, {
+  "TMT", "TMED"}, {
+  "TOA", "TOAL"}, {
+  "TOF", "TOFN"}, {
+  "TOL", "TOLY"}, {
+  "TOR", "TDOR"}, {
+  "TOT", "TOAL"}, {
+  "TP1", "TPE1"}, {
+  "TP2", "TPE2"}, {
+  "TP3", "TPE3"}, {
+  "TP4", "TPE4"}, {
+  "TPA", "TPOS"}, {
+  "TPB", "TPUB"}, {
+  "TRC", "TSRC"}, {
+  "TRD", "TDRC"}, {
+  "TRK", "TRCK"}, {
+  "TSS", "TSSE"}, {
+  "TT1", "TIT1"}, {
+  "TT2", "TIT2"}, {
+  "TT3", "TIT3"}, {
+  "TXT", "TOLY"}, {
+  "TXX", "TXXX"}, {
+  "TYE", "TDRC"}, {
+  "UFI", "UFID"}, {
+  "ULT", "USLT"}, {
+  "WAF", "WOAF"}, {
+  "WAR", "WOAR"}, {
+  "WAS", "WOAS"}, {
+  "WCM", "WCOM"}, {
+  "WCP", "WCOP"}, {
+  "WPB", "WPUB"}, {
+  "WXX", "WXXX"}
+};
+
+static gboolean
+convert_fid_to_v240 (gchar * frame_id)
+{
+  gint i;
+
+  for (i = 0; i < G_N_ELEMENTS (obsolete_frame_ids); ++i) {
+    if (strncmp (frame_id, obsolete_frame_ids[i], 5) == 0)
+      return TRUE;
+  }
+
+  for (i = 0; i < G_N_ELEMENTS (frame_id_conversions); ++i) {
+    if (strncmp (frame_id, frame_id_conversions[i].orig, 5) == 0) {
+      strcpy (frame_id, frame_id_conversions[i].new);
+      return FALSE;
+    }
+  }
+  return FALSE;
+}
+
+
+/* add unknown or unhandled ID3v2 frames to the taglist as binary blobs */
+static void
+id3v2_add_id3v2_frame_blob_to_taglist (ID3TagsWorking * work, guint size)
+{
+  GstBuffer *blob;
+  GstCaps *caps;
+  guint8 *frame_data;
+  gchar *media_type;
+  guint frame_size, header_size;
+  guint i;
+
+  switch (ID3V2_VER_MAJOR (work->hdr.version)) {
+    case 1:
+    case 2:
+      header_size = 3 + 3;
+      break;
+    case 3:
+    case 4:
+      header_size = 4 + 4 + 2;
+      break;
+    default:
+      g_return_if_reached ();
+  }
+
+  frame_data = work->hdr.frame_data - header_size;
+  frame_size = size + header_size;
+
+  blob = gst_buffer_new_and_alloc (frame_size);
+  memcpy (GST_BUFFER_DATA (blob), frame_data, frame_size);
+
+  /* Sanitize frame id */
+  for (i = 0; i < 4; i++) {
+    if (!g_ascii_isalnum (frame_data[i]))
+      frame_data[i] = '_';
+  }
+
+  media_type = g_strdup_printf ("application/x-gst-id3v2-%c%c%c%c-frame",
+      g_ascii_tolower (frame_data[0]), g_ascii_tolower (frame_data[1]),
+      g_ascii_tolower (frame_data[2]), g_ascii_tolower (frame_data[3]));
+  caps = gst_caps_new_simple (media_type, "version", G_TYPE_INT,
+      (gint) ID3V2_VER_MAJOR (work->hdr.version), NULL);
+  gst_buffer_set_caps (blob, caps);
+  gst_caps_unref (caps);
+  g_free (media_type);
+
+  /* gst_util_dump_mem (GST_BUFFER_DATA (blob), GST_BUFFER_SIZE (blob)); */
+
+  gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
+      GST_TAG_ID3V2_FRAME, blob, NULL);
+  gst_buffer_unref (blob);
+}
+
+static gboolean
+id3v2_frames_to_tag_list (ID3TagsWorking * work, guint size)
+{
+  guint frame_hdr_size;
+  guint8 *start;
+
+  /* Extended header if present */
+  if (work->hdr.flags & ID3V2_HDR_FLAG_EXTHDR) {
+    work->hdr.ext_hdr_size = id3v2_read_synch_uint (work->hdr.frame_data, 4);
+    if (work->hdr.ext_hdr_size < 6 ||
+        (work->hdr.ext_hdr_size) > work->hdr.frame_data_size) {
+      GST_DEBUG ("Invalid extended header. Broken tag");
+      return FALSE;
+    }
+    work->hdr.ext_flag_bytes = work->hdr.frame_data[4];
+    if (5 + work->hdr.ext_flag_bytes > work->hdr.frame_data_size) {
+      GST_DEBUG
+          ("Tag claims extended header, but doesn't have enough bytes. Broken tag");
+      return FALSE;
+    }
+
+    work->hdr.ext_flag_data = work->hdr.frame_data + 5;
+    work->hdr.frame_data += work->hdr.ext_hdr_size;
+    work->hdr.frame_data_size -= work->hdr.ext_hdr_size;
+  }
+
+  start = GST_BUFFER_DATA (work->buffer);
+  frame_hdr_size = id3v2_frame_hdr_size (work->hdr.version);
+  if (work->hdr.frame_data_size <= frame_hdr_size) {
+    GST_DEBUG ("Tag has no data frames. Broken tag");
+    return FALSE;               /* Must have at least one frame */
+  }
+
+  work->tags = gst_tag_list_new ();
+
+  while (work->hdr.frame_data_size > frame_hdr_size) {
+    guint frame_size = 0;
+    gchar frame_id[5] = "";
+    guint16 frame_flags = 0x0;
+    gboolean obsolete_id = FALSE;
+    gboolean read_synch_size = TRUE;
+    guint i;
+
+    /* Read the header */
+    switch (ID3V2_VER_MAJOR (work->hdr.version)) {
+      case 0:
+      case 1:
+      case 2:
+        frame_id[0] = work->hdr.frame_data[0];
+        frame_id[1] = work->hdr.frame_data[1];
+        frame_id[2] = work->hdr.frame_data[2];
+        frame_id[3] = 0;
+        frame_id[4] = 0;
+        obsolete_id = convert_fid_to_v240 (frame_id);
+
+        /* 3 byte non-synchsafe size */
+        frame_size = work->hdr.frame_data[3] << 16 |
+            work->hdr.frame_data[4] << 8 | work->hdr.frame_data[5];
+        frame_flags = 0;
+        break;
+      case 3:
+        read_synch_size = FALSE;        /* 2.3 frame size is not synch-safe */
+      case 4:
+      default:
+        frame_id[0] = work->hdr.frame_data[0];
+        frame_id[1] = work->hdr.frame_data[1];
+        frame_id[2] = work->hdr.frame_data[2];
+        frame_id[3] = work->hdr.frame_data[3];
+        frame_id[4] = 0;
+        if (read_synch_size)
+          frame_size = id3v2_read_synch_uint (work->hdr.frame_data + 4, 4);
+        else
+          frame_size = GST_READ_UINT32_BE (work->hdr.frame_data + 4);
+
+        frame_flags = GST_READ_UINT16_BE (work->hdr.frame_data + 8);
+
+        if (ID3V2_VER_MAJOR (work->hdr.version) == 3) {
+          frame_flags &= ID3V2_3_FRAME_FLAGS_MASK;
+          obsolete_id = convert_fid_to_v240 (frame_id);
+          if (obsolete_id)
+            GST_DEBUG ("Ignoring v2.3 frame %s", frame_id);
+        }
+        break;
+    }
+
+    work->hdr.frame_data += frame_hdr_size;
+    work->hdr.frame_data_size -= frame_hdr_size;
+
+    if (frame_size > work->hdr.frame_data_size || strcmp (frame_id, "") == 0)
+      break;                    /* No more frames to read */
+
+    /* Sanitize frame id */
+    switch (ID3V2_VER_MAJOR (work->hdr.version)) {
+      case 0:
+      case 1:
+      case 2:
+        for (i = 0; i < 3; i++) {
+          if (!g_ascii_isalnum (frame_id[i]))
+            frame_id[i] = '_';
+        }
+        break;
+      default:
+        for (i = 0; i < 4; i++) {
+          if (!g_ascii_isalnum (frame_id[i]))
+            frame_id[i] = '_';
+        }
+    }
+#if 1
+    GST_LOG
+        ("Frame @ %ld (0x%02lx) id %s size %u, next=%ld (0x%02lx) obsolete=%d",
+        (glong) (work->hdr.frame_data - start),
+        (glong) (work->hdr.frame_data - start), frame_id, frame_size,
+        (glong) (work->hdr.frame_data + frame_hdr_size + frame_size - start),
+        (glong) (work->hdr.frame_data + frame_hdr_size + frame_size - start),
+        obsolete_id);
+#define flag_string(flag,str) \
+        ((frame_flags & (flag)) ? (str) : "")
+    GST_LOG ("Frame header flags: 0x%04x %s %s %s %s %s %s %s", frame_flags,
+        flag_string (ID3V2_FRAME_STATUS_FRAME_ALTER_PRESERVE, "ALTER_PRESERVE"),
+        flag_string (ID3V2_FRAME_STATUS_READONLY, "READONLY"),
+        flag_string (ID3V2_FRAME_FORMAT_GROUPING_ID, "GROUPING_ID"),
+        flag_string (ID3V2_FRAME_FORMAT_COMPRESSION, "COMPRESSION"),
+        flag_string (ID3V2_FRAME_FORMAT_ENCRYPTION, "ENCRYPTION"),
+        flag_string (ID3V2_FRAME_FORMAT_UNSYNCHRONISATION, "UNSYNC"),
+        flag_string (ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR, "LENGTH_IND"));
+#undef flag_str
+#endif
+
+    if (!obsolete_id) {
+      /* Now, read, decompress etc the contents of the frame
+       * into a TagList entry */
+      work->cur_frame_size = frame_size;
+      work->frame_id = frame_id;
+      work->frame_flags = frame_flags;
+
+      if (id3v2_parse_frame (work)) {
+        GST_LOG ("Extracted frame with id %s", frame_id);
+      } else {
+        GST_LOG ("Failed to extract frame with id %s", frame_id);
+        id3v2_add_id3v2_frame_blob_to_taglist (work, frame_size);
+      }
+    }
+    work->hdr.frame_data += frame_size;
+    work->hdr.frame_data_size -= frame_size;
+  }
+
+  if (gst_structure_n_fields (GST_STRUCTURE (work->tags)) == 0) {
+    GST_DEBUG ("Could not extract any frames from tag. Broken or empty tag");
+    gst_tag_list_free (work->tags);
+    work->tags = NULL;
+    return FALSE;
+  }
+
+  /* Set day/month now if they were in a separate (obsolete) TDAT frame */
+  if (work->pending_day != 0 && work->pending_month != 0) {
+    GDate *date = NULL;
+
+    if (gst_tag_list_get_date (work->tags, GST_TAG_DATE, &date)) {
+      g_date_set_day (date, work->pending_day);
+      g_date_set_month (date, work->pending_month);
+      gst_tag_list_add (work->tags, GST_TAG_MERGE_REPLACE, GST_TAG_DATE,
+          date, NULL);
+      g_date_free (date);
+    }
+  }
+
+  return TRUE;
+}
diff --git a/gst-libs/gst/tag/id3v2.h b/gst-libs/gst/tag/id3v2.h
new file mode 100644 (file)
index 0000000..fd21bb6
--- /dev/null
@@ -0,0 +1,120 @@
+/* Copyright 2005 Jan Schmidt <thaytan@mad.scientist.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __ID3TAGS_H__
+#define __ID3TAGS_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+#define ID3V2_MARK_SIZE 3
+#define ID3V2_HDR_SIZE GST_TAG_ID3V2_HEADER_SIZE
+
+/* From id3v2.c */
+guint id3v2_read_synch_uint (const guint8 * data, guint size);
+
+/* Things shared by id3tags.c and id3v2frames.c */
+#define ID3V2_VERSION 0x0400
+#define ID3V2_VER_MAJOR(v) ((v) >> 8)
+#define ID3V2_VER_MINOR(v) ((v) & 0xff)
+   
+typedef struct {
+  guint16 version;
+  guint8 flags;
+  guint32 size;
+    
+  guint8 *frame_data;
+  guint32 frame_data_size;
+
+  guint32 ext_hdr_size;
+  guint8 ext_flag_bytes;
+  guint8 *ext_flag_data;  
+} ID3v2Header;
+
+typedef struct {
+  ID3v2Header hdr;
+  
+  GstBuffer *buffer;
+  GstTagList *tags;
+
+  /* Current frame decoding */
+  guint cur_frame_size;
+  gchar *frame_id;
+  guint16 frame_flags;
+  
+  guint8 *parse_data;
+  guint parse_size;
+  
+  /* To collect day/month from obsolete TDAT frame if it exists */
+  guint pending_month;
+  guint pending_day;
+} ID3TagsWorking;
+
+enum {
+  ID3V2_HDR_FLAG_UNSYNC       = 0x80,
+  ID3V2_HDR_FLAG_EXTHDR       = 0x40,
+  ID3V2_HDR_FLAG_EXPERIMENTAL = 0x20,
+  ID3V2_HDR_FLAG_FOOTER       = 0x10
+};
+
+enum {
+  ID3V2_EXT_FLAG_UPDATE     = 0x80,
+  ID3V2_EXT_FLAG_CRC        = 0x40,
+  ID3V2_EXT_FLAG_RESTRICTED = 0x20
+};
+
+enum {
+  ID3V2_FRAME_STATUS_FRAME_ALTER_PRESERVE  = 0x4000,
+  ID3V2_FRAME_STATUS_FILE_ALTER_PRESERVE   = 0x2000,
+  ID3V2_FRAME_STATUS_READONLY              = 0x1000,
+  ID3V2_FRAME_FORMAT_GROUPING_ID           = 0x0040,
+  ID3V2_FRAME_FORMAT_COMPRESSION           = 0x0008,
+  ID3V2_FRAME_FORMAT_ENCRYPTION            = 0x0004,
+  ID3V2_FRAME_FORMAT_UNSYNCHRONISATION     = 0x0002,
+  ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR = 0x0001
+};
+
+#define ID3V2_3_FRAME_FLAGS_MASK              \
+  (ID3V2_FRAME_STATUS_FRAME_ALTER_PRESERVE |  \
+   ID3V2_FRAME_STATUS_FILE_ALTER_PRESERVE  |  \
+   ID3V2_FRAME_STATUS_READONLY |              \
+   ID3V2_FRAME_FORMAT_GROUPING_ID |           \
+   ID3V2_FRAME_FORMAT_COMPRESSION |           \
+   ID3V2_FRAME_FORMAT_ENCRYPTION)
+
+/* FIXME 0.11: remove 'private' bit from GST_TAG_ID3V2_FRAME */
+/**
+ * GST_TAG_ID3V2_FRAME:
+ *
+ * Contains a single unprocessed ID3v2 frame. (buffer)
+ *
+ * (Not public API for now)
+ */
+#define GST_TAG_ID3V2_FRAME                  "private-id3v2-frame"
+
+/* From id3v2frames.c */
+gboolean id3v2_parse_frame (ID3TagsWorking *work);
+
+guint8 * id3v2_ununsync_data (const guint8 * unsync_data, guint32 * size);
+
+GstDebugCategory * id3v2_ensure_debug_category (void);
+
+G_END_DECLS
+
+#endif
diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
new file mode 100644 (file)
index 0000000..78aa80e
--- /dev/null
@@ -0,0 +1,1168 @@
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */
+/* Copyright 2006-2008 Tim-Philipp Müller <tim centricular net>
+ * Copyright 2005 Jan Schmidt <thaytan@mad.scientist.com>
+ * Copyright 2002,2003 Scott Wheeler <wheeler@kde.org> (portions from taglib)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <gst/tag/tag.h>
+#include <gst/base/gsttypefindhelper.h>
+
+#ifdef HAVE_ZLIB
+#include <zlib.h>
+#endif
+
+#include "id3v2.h"
+
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT id3v2_ensure_debug_category()
+#endif
+
+static gboolean parse_comment_frame (ID3TagsWorking * work);
+static gchar *parse_url_link_frame (ID3TagsWorking * work,
+    const gchar ** tag_name);
+static GArray *parse_text_identification_frame (ID3TagsWorking * work);
+static gchar *parse_user_text_identification_frame (ID3TagsWorking * work,
+    const gchar ** tag_name);
+static gchar *parse_unique_file_identifier (ID3TagsWorking * work,
+    const gchar ** tag_name);
+static gboolean parse_relative_volume_adjustment_two (ID3TagsWorking * work);
+static void parse_obsolete_tdat_frame (ID3TagsWorking * work);
+static gboolean id3v2_tag_to_taglist (ID3TagsWorking * work,
+    const gchar * tag_name, const gchar * tag_str);
+/* Parse a single string into an array of gchar* */
+static void parse_split_strings (guint8 encoding, gchar * data, gint data_size,
+    GArray ** out_fields);
+static void free_tag_strings (GArray * fields);
+static gboolean
+id3v2_genre_fields_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
+    GArray * tag_fields);
+static gboolean parse_picture_frame (ID3TagsWorking * work);
+
+#define ID3V2_ENCODING_ISO8859 0x00
+#define ID3V2_ENCODING_UTF16   0x01
+#define ID3V2_ENCODING_UTF16BE 0x02
+#define ID3V2_ENCODING_UTF8    0x03
+
+gboolean
+id3v2_parse_frame (ID3TagsWorking * work)
+{
+  const gchar *tag_name;
+  gboolean result = FALSE;
+  gint i;
+  guint8 *frame_data = work->hdr.frame_data;
+  guint frame_data_size = work->cur_frame_size;
+  gchar *tag_str = NULL;
+  GArray *tag_fields = NULL;
+  guint8 *uu_data = NULL;
+
+#ifdef HAVE_ZLIB
+  guint8 *uncompressed_data = NULL;
+#endif
+
+  /* Check that the frame id is valid */
+  for (i = 0; i < 5 && work->frame_id[i] != '\0'; i++) {
+    if (!g_ascii_isalnum (work->frame_id[i])) {
+      GST_DEBUG ("Encountered invalid frame_id");
+      return FALSE;
+    }
+  }
+
+  /* Can't handle encrypted frames right now (in case we ever do, we'll have
+   * to do the decryption after the un-unsynchronisation and decompression,
+   * not here) */
+  if (work->frame_flags & ID3V2_FRAME_FORMAT_ENCRYPTION) {
+    GST_WARNING ("Encrypted frames are not supported");
+    return FALSE;
+  }
+
+  tag_name = gst_tag_from_id3_tag (work->frame_id);
+  if (tag_name == NULL &&
+      strncmp (work->frame_id, "RVA2", 4) != 0 &&
+      strncmp (work->frame_id, "TXXX", 4) != 0 &&
+      strncmp (work->frame_id, "TDAT", 4) != 0 &&
+      strncmp (work->frame_id, "UFID", 4) != 0) {
+    return FALSE;
+  }
+
+  if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION |
+          ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) {
+    if (work->hdr.frame_data_size <= 4)
+      return FALSE;
+    if (ID3V2_VER_MAJOR (work->hdr.version) == 3) {
+      work->parse_size = GST_READ_UINT32_BE (frame_data);
+    } else {
+      work->parse_size = id3v2_read_synch_uint (frame_data, 4);
+    }
+    frame_data += 4;
+    frame_data_size -= 4;
+    GST_LOG ("Un-unsynced data size %d (of %d)", work->parse_size,
+        frame_data_size);
+    if (work->parse_size > frame_data_size) {
+      GST_WARNING ("ID3v2 frame %s data has invalid size %d (>%d)",
+          work->frame_id, work->parse_size, frame_data_size);
+      return FALSE;
+    }
+  }
+
+  /* in v2.3 the frame sizes are not syncsafe, so the entire tag had to be
+   * unsynced. In v2.4 the frame sizes are syncsafe so it's just the frame
+   * data that needs un-unsyncing, but not the frame headers. */
+  if (ID3V2_VER_MAJOR (work->hdr.version) == 4) {
+    if ((work->hdr.flags & ID3V2_HDR_FLAG_UNSYNC) != 0 ||
+        ((work->frame_flags & ID3V2_FRAME_FORMAT_UNSYNCHRONISATION) != 0)) {
+      GST_DEBUG ("Un-unsyncing frame %s", work->frame_id);
+      uu_data = id3v2_ununsync_data (frame_data, &frame_data_size);
+      frame_data = uu_data;
+      GST_MEMDUMP ("ID3v2 frame (un-unsyced)", frame_data, frame_data_size);
+    }
+  }
+
+  work->parse_size = frame_data_size;
+
+  if (work->frame_flags & ID3V2_FRAME_FORMAT_COMPRESSION) {
+#ifdef HAVE_ZLIB
+    uLongf destSize = work->parse_size;
+    Bytef *dest, *src;
+
+    uncompressed_data = g_malloc (work->parse_size);
+
+    dest = (Bytef *) uncompressed_data;
+    src = (Bytef *) frame_data;
+
+    if (uncompress (dest, &destSize, src, frame_data_size) != Z_OK) {
+      g_free (uncompressed_data);
+      g_free (uu_data);
+      return FALSE;
+    }
+    if (destSize != work->parse_size) {
+      GST_WARNING
+          ("Decompressing ID3v2 frame %s did not produce expected size %d bytes (got %lu)",
+          tag_name, work->parse_size, destSize);
+      g_free (uncompressed_data);
+      g_free (uu_data);
+      return FALSE;
+    }
+    work->parse_data = uncompressed_data;
+#else
+    GST_WARNING ("Compressed ID3v2 tag frame could not be decompressed, because"
+        " libgsttag-" GST_MAJORMINOR " was compiled without zlib support");
+    g_free (uu_data);
+    return FALSE;
+#endif
+  } else {
+    work->parse_data = frame_data;
+  }
+
+  if (work->frame_id[0] == 'T') {
+    if (strcmp (work->frame_id, "TDAT") == 0) {
+      parse_obsolete_tdat_frame (work);
+      result = TRUE;
+    } else if (strcmp (work->frame_id, "TXXX") == 0) {
+      /* Handle user text frame */
+      tag_str = parse_user_text_identification_frame (work, &tag_name);
+    } else {
+      /* Text identification frame */
+      tag_fields = parse_text_identification_frame (work);
+    }
+  } else if (work->frame_id[0] == 'W' && strcmp (work->frame_id, "WXXX") != 0) {
+    /* URL link frame: ISO-8859-1 encoded, one frame per tag */
+    tag_str = parse_url_link_frame (work, &tag_name);
+  } else if (!strcmp (work->frame_id, "COMM")) {
+    /* Comment */
+    result = parse_comment_frame (work);
+  } else if (!strcmp (work->frame_id, "APIC")) {
+    /* Attached picture */
+    result = parse_picture_frame (work);
+  } else if (!strcmp (work->frame_id, "RVA2")) {
+    /* Relative volume */
+    result = parse_relative_volume_adjustment_two (work);
+  } else if (!strcmp (work->frame_id, "UFID")) {
+    /* Unique file identifier */
+    tag_str = parse_unique_file_identifier (work, &tag_name);
+  }
+#ifdef HAVE_ZLIB
+  if (work->frame_flags & ID3V2_FRAME_FORMAT_COMPRESSION) {
+    g_free (uncompressed_data);
+    uncompressed_data = NULL;
+    work->parse_data = frame_data;
+  }
+#endif
+
+  if (tag_str != NULL) {
+    /* g_print ("Tag %s value %s\n", tag_name, tag_str); */
+    result = id3v2_tag_to_taglist (work, tag_name, tag_str);
+    g_free (tag_str);
+  }
+  if (tag_fields != NULL) {
+    if (strcmp (work->frame_id, "TCON") == 0) {
+      /* Genre strings need special treatment */
+      result |= id3v2_genre_fields_to_taglist (work, tag_name, tag_fields);
+    } else {
+      gint t;
+
+      for (t = 0; t < tag_fields->len; t++) {
+        tag_str = g_array_index (tag_fields, gchar *, t);
+        if (tag_str != NULL && tag_str[0] != '\0')
+          result |= id3v2_tag_to_taglist (work, tag_name, tag_str);
+      }
+    }
+    free_tag_strings (tag_fields);
+  }
+
+  g_free (uu_data);
+
+  return result;
+}
+
+static gboolean
+parse_comment_frame (ID3TagsWorking * work)
+{
+  guint dummy;
+  guint8 encoding;
+  gchar language[4];
+  GArray *fields = NULL;
+  gchar *description, *text;
+
+  if (work->parse_size < 6)
+    return FALSE;
+
+  encoding = work->parse_data[0];
+  language[0] = g_ascii_tolower (work->parse_data[1]);
+  language[1] = g_ascii_tolower (work->parse_data[2]);
+  language[2] = g_ascii_tolower (work->parse_data[3]);
+  language[3] = '\0';
+
+  parse_split_strings (encoding, (gchar *) work->parse_data + 4,
+      work->parse_size - 4, &fields);
+
+  if (fields == NULL || fields->len < 2) {
+    GST_WARNING ("Failed to decode comment frame");
+    goto fail;
+  }
+  description = g_array_index (fields, gchar *, 0);
+  text = g_array_index (fields, gchar *, 1);
+
+  if (!g_utf8_validate (text, -1, NULL)) {
+    GST_WARNING ("Converted string is not valid utf-8");
+    goto fail;
+  }
+
+  /* skip our own dummy descriptions (from id3v2mux) */
+  if (strlen (description) > 0 && g_utf8_validate (description, -1, NULL) &&
+      sscanf (description, "c%u", &dummy) != 1) {
+    gchar *s;
+
+    /* must be either an ISO-639-1 or ISO-639-2 language code */
+    if (language[0] != '\0' &&
+        g_ascii_isalpha (language[0]) &&
+        g_ascii_isalpha (language[1]) &&
+        (g_ascii_isalpha (language[2]) || language[2] == '\0')) {
+      const gchar *lang_code;
+
+      /* prefer two-letter ISO 639-1 code if we have a mapping */
+      lang_code = gst_tag_get_language_code (language);
+      s = g_strdup_printf ("%s[%s]=%s", description,
+          (lang_code) ? lang_code : language, text);
+    } else {
+      s = g_strdup_printf ("%s=%s", description, text);
+    }
+    gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
+        GST_TAG_EXTENDED_COMMENT, s, NULL);
+    g_free (s);
+  } else if (text != NULL && *text != '\0') {
+    gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
+        GST_TAG_COMMENT, text, NULL);
+  } else {
+    goto fail;
+  }
+
+  free_tag_strings (fields);
+  return TRUE;
+
+fail:
+  {
+    GST_WARNING ("failed to parse COMM frame");
+    free_tag_strings (fields);
+    return FALSE;
+  }
+}
+
+static GArray *
+parse_text_identification_frame (ID3TagsWorking * work)
+{
+  guchar encoding;
+  GArray *fields = NULL;
+
+  if (work->parse_size < 2)
+    return NULL;
+
+  encoding = work->parse_data[0];
+  parse_split_strings (encoding, (gchar *) work->parse_data + 1,
+      work->parse_size - 1, &fields);
+  if (fields) {
+    if (fields->len > 0) {
+      GST_LOG ("Read %d fields from Text ID frame of size %d with encoding %d"
+          ". First is '%s'", fields->len, work->parse_size - 1, encoding,
+          g_array_index (fields, gchar *, 0));
+    } else {
+      GST_LOG ("Read 0 fields from Text ID frame of size %d with encoding %d",
+          work->parse_size - 1, encoding);
+    }
+  }
+
+  return fields;
+}
+
+static gboolean
+link_is_known_license (const gchar * url)
+{
+  return g_str_has_prefix (url, "http://creativecommons.org/licenses/");
+}
+
+static gchar *
+parse_url_link_frame (ID3TagsWorking * work, const gchar ** tag_name)
+{
+  gsize len;
+  gchar *nul, *data, *link;
+
+  *tag_name = NULL;
+
+  if (work->parse_size == 0)
+    return NULL;
+
+  data = (gchar *) work->parse_data;
+  /* if there's more data then the string is long, we only want to parse the
+   * data up to the terminating zero to g_convert and ignore the rest, as
+   * per spec */
+  nul = memchr (data, '\0', work->parse_size);
+  if (nul != NULL) {
+    len = (gsize) (nul - data);
+  } else {
+    len = work->parse_size;
+  }
+
+  link = g_convert (data, len, "UTF-8", "ISO-8859-1", NULL, NULL, NULL);
+
+  if (link == NULL || !gst_uri_is_valid (link)) {
+    GST_DEBUG ("Invalid URI in %s frame: %s", work->frame_id,
+        GST_STR_NULL (link));
+    g_free (link);
+    return NULL;
+  }
+
+  /* we don't know if it's a link to a page that explains the copyright
+   * situation, or a link that points to/represents a license, the ID3 spec
+   * does not separate those two things; for now only put known license URIs
+   * into GST_TAG_LICENSE_URI and everything else into GST_TAG_COPYRIGHT_URI */
+  if (strcmp (work->frame_id, "WCOP") == 0) {
+    if (link_is_known_license (link))
+      *tag_name = GST_TAG_LICENSE_URI;
+    else
+      *tag_name = GST_TAG_COPYRIGHT_URI;
+  } else if (strcmp (work->frame_id, "WOAF") == 0) {
+    /* can't be bothered to create a CONTACT_URI tag for this, so let's just
+     * put into into GST_TAG_CONTACT, which is where it ends up when reading
+     * the info from vorbis comments as well */
+    *tag_name = GST_TAG_CONTACT;
+  }
+
+  return link;
+}
+
+
+static gchar *
+parse_user_text_identification_frame (ID3TagsWorking * work,
+    const gchar ** tag_name)
+{
+  gchar *ret;
+  guchar encoding;
+  GArray *fields = NULL;
+
+  *tag_name = NULL;
+
+  if (work->parse_size < 2)
+    return NULL;
+
+  encoding = work->parse_data[0];
+
+  parse_split_strings (encoding, (gchar *) work->parse_data + 1,
+      work->parse_size - 1, &fields);
+
+  if (fields == NULL)
+    return NULL;
+
+  if (fields->len != 2) {
+    GST_WARNING ("Expected 2 fields in TXXX frame, but got %d", fields->len);
+    free_tag_strings (fields);
+    return NULL;
+  }
+
+  *tag_name =
+      gst_tag_from_id3_user_tag ("TXXX", g_array_index (fields, gchar *, 0));
+
+  GST_LOG ("TXXX frame of size %d. Mapped descriptor '%s' to GStreamer tag %s",
+      work->parse_size - 1, g_array_index (fields, gchar *, 0),
+      GST_STR_NULL (*tag_name));
+
+  if (*tag_name) {
+    ret = g_strdup (g_array_index (fields, gchar *, 1));
+    /* GST_LOG ("%s = %s", *tag_name, GST_STR_NULL (ret)); */
+  } else {
+    ret = NULL;
+  }
+
+  free_tag_strings (fields);
+  return ret;
+}
+
+static gboolean
+parse_id_string (ID3TagsWorking * work, gchar ** p_str, gint * p_len,
+    gint * p_datalen)
+{
+  gint len, datalen;
+
+  if (work->parse_size < 2)
+    return FALSE;
+
+  for (len = 0; len < work->parse_size - 1; ++len) {
+    if (work->parse_data[len] == '\0')
+      break;
+  }
+
+  datalen = work->parse_size - (len + 1);
+  if (len == 0 || datalen <= 0)
+    return FALSE;
+
+  *p_str = g_strndup ((gchar *) work->parse_data, len);
+  *p_len = len;
+  *p_datalen = datalen;
+
+  return TRUE;
+}
+
+static gchar *
+parse_unique_file_identifier (ID3TagsWorking * work, const gchar ** tag_name)
+{
+  gint len, datalen;
+  gchar *owner_id, *data, *ret = NULL;
+
+  GST_LOG ("parsing UFID frame of size %d", work->parse_size);
+
+  if (!parse_id_string (work, &owner_id, &len, &datalen))
+    return NULL;
+
+  data = (gchar *) work->parse_data + len + 1;
+  GST_LOG ("UFID owner ID: %s (+ %d bytes of data)", owner_id, datalen);
+
+  if (strcmp (owner_id, "http://musicbrainz.org") == 0 &&
+      g_utf8_validate (data, datalen, NULL)) {
+    *tag_name = GST_TAG_MUSICBRAINZ_TRACKID;
+    ret = g_strndup (data, datalen);
+  } else {
+    GST_INFO ("Unknown UFID owner ID: %s", owner_id);
+  }
+  g_free (owner_id);
+
+  return ret;
+}
+
+/* parse data and return length of the next string in the given encoding,
+ * including the NUL terminator */
+static gint
+scan_encoded_string (guint8 encoding, gchar * data, gint data_size)
+{
+  gint i;
+
+  switch (encoding) {
+    case ID3V2_ENCODING_ISO8859:
+    case ID3V2_ENCODING_UTF8:
+      for (i = 0; i < data_size; ++i) {
+        if (data[i] == '\0')
+          return i + 1;
+      }
+      break;
+    case ID3V2_ENCODING_UTF16:
+    case ID3V2_ENCODING_UTF16BE:
+      /* we don't care about BOMs here and treat them as part of the string */
+      /* Find '\0\0' terminator */
+      for (i = 0; i < data_size - 1; i += 2) {
+        if (data[i] == '\0' && data[i + 1] == '\0')
+          return i + 2;
+      }
+      break;
+    default:
+      break;
+  }
+
+  return 0;
+}
+
+static gboolean
+parse_picture_frame (ID3TagsWorking * work)
+{
+  guint8 txt_encoding, pic_type;
+  gchar *mime_str = NULL;
+  gint len, datalen;
+
+  GST_LOG ("APIC frame (ID3v2.%u)", ID3V2_VER_MAJOR (work->hdr.version));
+
+  if (work->parse_size < 1 + 1 + 1 + 1 + 1)
+    goto not_enough_data;
+
+  txt_encoding = work->parse_data[0];
+  ++work->parse_data;
+  --work->parse_size;
+
+  /* Read image format; in early ID3v2 versions this is a fixed-length
+   * 3-character string without terminator; in later versions (>= 2.3.0)
+   * this is a NUL-terminated string of variable length */
+  if (ID3V2_VER_MAJOR (work->hdr.version) < 3) {
+    if (work->parse_size < 3)
+      goto not_enough_data;
+
+    mime_str = g_strndup ((gchar *) work->parse_data, 3);
+    len = 3;
+  } else {
+    if (!parse_id_string (work, &mime_str, &len, &datalen))
+      return FALSE;
+    ++len;                      /* for string terminator */
+  }
+
+  if (work->parse_size < len + 1 + 1 + 1)
+    goto not_enough_data;
+
+  work->parse_data += len;
+  work->parse_size -= len;
+
+  /* Read image type */
+  pic_type = work->parse_data[0];
+  ++work->parse_data;
+  --work->parse_size;
+
+  GST_LOG ("APIC frame mime type    : %s", GST_STR_NULL (mime_str));
+  GST_LOG ("APIC frame picture type : 0x%02x", (guint) pic_type);
+
+  if (work->parse_size < 1 + 1)
+    goto not_enough_data;
+
+  len = scan_encoded_string (txt_encoding, (gchar *) work->parse_data,
+      work->parse_size);
+
+  if (len < 1)
+    goto error;
+
+  /* just skip the description string ... */
+  GST_LOG ("Skipping description string (%d bytes in original coding)", len);
+
+  if (work->parse_size < len + 1)
+    goto not_enough_data;
+
+  work->parse_data += len;
+  work->parse_size -= len;
+
+  GST_DEBUG ("image data is %u bytes", work->parse_size);
+
+  if (work->parse_size <= 0)
+    goto not_enough_data;
+
+  if (!gst_tag_list_add_id3_image (work->tags, (guint8 *) work->parse_data,
+          work->parse_size, pic_type)) {
+    goto error;
+  }
+
+  g_free (mime_str);
+  return TRUE;
+
+not_enough_data:
+  {
+    GST_DEBUG ("not enough data, skipping APIC frame");
+    /* fall through to error */
+  }
+error:
+  {
+    GST_DEBUG ("problem parsing APIC frame, skipping");
+    g_free (mime_str);
+    return FALSE;
+  }
+}
+
+#define ID3V2_RVA2_CHANNEL_MASTER  1
+
+static gboolean
+parse_relative_volume_adjustment_two (ID3TagsWorking * work)
+{
+  const gchar *gain_tag_name = NULL;
+  const gchar *peak_tag_name = NULL;
+  gdouble gain_dB, peak_val;
+  guint64 peak;
+  guint8 *data, chan, peak_bits;
+  gchar *id;
+  gint len, datalen, i;
+
+  if (!parse_id_string (work, &id, &len, &datalen))
+    return FALSE;
+
+  if (datalen < (1 + 2 + 1)) {
+    GST_WARNING ("broken RVA2 frame, data size only %d bytes", datalen);
+    g_free (id);
+    return FALSE;
+  }
+
+  data = work->parse_data + len + 1;
+  chan = GST_READ_UINT8 (data);
+  gain_dB = (gdouble) ((gint16) GST_READ_UINT16_BE (data + 1)) / 512.0;
+  /* The meaning of the peak value is not defined in the ID3v2 spec. However,
+   * the first/only implementation of this seems to have been in XMMS, and
+   * other libs (like mutagen) seem to follow that implementation as well:
+   * see http://bugs.xmms.org/attachment.cgi?id=113&action=view */
+  peak_bits = GST_READ_UINT8 (data + 1 + 2);
+  if (peak_bits > 64) {
+    GST_WARNING ("silly peak precision of %d bits, ignoring", (gint) peak_bits);
+    peak_bits = 0;
+  }
+  data += 1 + 2 + 1;
+  datalen -= 1 + 2 + 1;
+  if (peak_bits == 16) {
+    peak = GST_READ_UINT16_BE (data);
+  } else {
+    peak = 0;
+    for (i = 0; i < (GST_ROUND_UP_8 (peak_bits) / 8) && datalen > 0; ++i) {
+      peak = peak << 8;
+      peak |= GST_READ_UINT8 (data);
+      ++data;
+      --datalen;
+    }
+  }
+
+  peak = peak << (64 - GST_ROUND_UP_8 (peak_bits));
+  peak_val =
+      gst_guint64_to_gdouble (peak) / gst_util_guint64_to_gdouble (G_MAXINT64);
+  GST_LOG ("RVA2 frame: id=%s, chan=%u, adj=%.2fdB, peak_bits=%u, peak=%.2f",
+      id, chan, gain_dB, (guint) peak_bits, peak_val);
+
+  if (chan == ID3V2_RVA2_CHANNEL_MASTER && strcmp (id, "track") == 0) {
+    gain_tag_name = GST_TAG_TRACK_GAIN;
+    peak_tag_name = GST_TAG_TRACK_PEAK;
+  } else if (chan == ID3V2_RVA2_CHANNEL_MASTER && strcmp (id, "album") == 0) {
+    gain_tag_name = GST_TAG_ALBUM_GAIN;
+    peak_tag_name = GST_TAG_ALBUM_PEAK;
+  } else {
+    GST_INFO ("Unhandled RVA2 frame id '%s' for channel %d", id, chan);
+  }
+
+  if (gain_tag_name) {
+    gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
+        gain_tag_name, gain_dB, NULL);
+  }
+  if (peak_tag_name && peak_bits > 0) {
+    gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
+        peak_tag_name, peak_val, NULL);
+  }
+
+  g_free (id);
+
+  return (gain_tag_name != NULL || peak_tag_name != NULL);
+}
+
+static void
+parse_obsolete_tdat_frame (ID3TagsWorking * work)
+{
+  if (work->parse_size >= 5 &&
+      work->parse_data[0] == ID3V2_ENCODING_ISO8859 &&
+      g_ascii_isdigit (work->parse_data[1]) &&
+      g_ascii_isdigit (work->parse_data[2]) &&
+      g_ascii_isdigit (work->parse_data[3]) &&
+      g_ascii_isdigit (work->parse_data[4])) {
+    work->pending_day = (10 * g_ascii_digit_value (work->parse_data[1])) +
+        g_ascii_digit_value (work->parse_data[2]);
+    work->pending_month = (10 * g_ascii_digit_value (work->parse_data[3])) +
+        g_ascii_digit_value (work->parse_data[4]);
+    GST_LOG ("date (dd/mm) %02u/%02u", work->pending_day, work->pending_month);
+  }
+}
+
+static gboolean
+id3v2_tag_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
+    const gchar * tag_str)
+{
+  GType tag_type = gst_tag_get_type (tag_name);
+  GstTagList *tag_list = work->tags;
+
+  if (tag_str == NULL)
+    return FALSE;
+
+  switch (tag_type) {
+    case G_TYPE_UINT:
+    {
+      gint current, total;
+
+      if (sscanf (tag_str, "%d/%d", &current, &total) == 2) {
+        if (total <= 0) {
+          GST_WARNING ("Ignoring invalid value for total %d in tag %s",
+              total, tag_name);
+        } else {
+          if (strcmp (tag_name, GST_TAG_TRACK_NUMBER) == 0) {
+            gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND,
+                GST_TAG_TRACK_COUNT, total, NULL);
+          } else if (strcmp (tag_name, GST_TAG_ALBUM_VOLUME_NUMBER) == 0) {
+            gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND,
+                GST_TAG_ALBUM_VOLUME_COUNT, total, NULL);
+          }
+        }
+      } else if (sscanf (tag_str, "%d", &current) != 1) {
+        /* Not an integer in the string */
+        GST_WARNING ("Tag string for tag %s does not contain an integer - "
+            "ignoring", tag_name);
+        break;
+      }
+
+      if (current <= 0) {
+        GST_WARNING ("Ignoring invalid value %d in tag %s", current, tag_name);
+      } else {
+        gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, tag_name, current,
+            NULL);
+      }
+      break;
+    }
+    case G_TYPE_UINT64:
+    {
+      guint64 tmp;
+
+      g_assert (strcmp (tag_name, GST_TAG_DURATION) == 0);
+      tmp = strtoul (tag_str, NULL, 10);
+      if (tmp == 0) {
+        break;
+      }
+      gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND,
+          GST_TAG_DURATION, tmp * 1000 * 1000, NULL);
+      break;
+    }
+    case G_TYPE_STRING:{
+      const GValue *val;
+      guint i, num;
+
+      /* make sure we add each unique string only once per tag, we don't want
+       * to have the same genre in the genre list multiple times, for example,
+       * or the same DiscID in there twice just because it's contained in the
+       * tag multiple times under different TXXX user tags */
+      num = gst_tag_list_get_tag_size (tag_list, tag_name);
+      for (i = 0; i < num; ++i) {
+        val = gst_tag_list_get_value_index (tag_list, tag_name, i);
+        if (val != NULL && strcmp (g_value_get_string (val), tag_str) == 0)
+          break;
+      }
+      if (i == num) {
+        gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND,
+            tag_name, tag_str, NULL);
+      }
+      break;
+    }
+
+    default:{
+      gchar *tmp = NULL;
+      GValue src = { 0, };
+      GValue dest = { 0, };
+
+      /* Ensure that any date string is complete */
+      if (tag_type == GST_TYPE_DATE) {
+        guint year = 1901, month = 1, day = 1;
+
+        /* Dates can be yyyy-MM-dd, yyyy-MM or yyyy, but we need
+         * the first type */
+        if (sscanf (tag_str, "%04u-%02u-%02u", &year, &month, &day) == 0)
+          break;
+
+        tmp = g_strdup_printf ("%04u-%02u-%02u", year, month, day);
+        tag_str = tmp;
+      }
+
+      /* handles anything else */
+      g_value_init (&src, G_TYPE_STRING);
+      g_value_set_string (&src, (const gchar *) tag_str);
+      g_value_init (&dest, tag_type);
+
+      if (g_value_transform (&src, &dest)) {
+        gst_tag_list_add_values (tag_list, GST_TAG_MERGE_APPEND,
+            tag_name, &dest, NULL);
+      } else if (tag_type == G_TYPE_DOUBLE) {
+        /* replaygain tags in TXXX frames ... */
+        g_value_set_double (&dest, g_strtod (tag_str, NULL));
+        gst_tag_list_add_values (tag_list, GST_TAG_MERGE_KEEP,
+            tag_name, &dest, NULL);
+        GST_LOG ("Converted string '%s' to double %f", tag_str,
+            g_value_get_double (&dest));
+      } else {
+        GST_WARNING ("Failed to transform tag from string to type '%s'",
+            g_type_name (tag_type));
+      }
+
+      g_value_unset (&src);
+      g_value_unset (&dest);
+      g_free (tmp);
+      break;
+    }
+  }
+
+  return TRUE;
+}
+
+/* Check that an array of characters contains only digits */
+static gboolean
+id3v2_are_digits (const gchar * chars, gint size)
+{
+  gint i;
+
+  for (i = 0; i < size; i++) {
+    if (!g_ascii_isdigit (chars[i]))
+      return FALSE;
+  }
+  return TRUE;
+}
+
+static gboolean
+id3v2_genre_string_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
+    const gchar * tag_str, gint len)
+{
+  g_return_val_if_fail (tag_str != NULL, FALSE);
+
+  /* If it's a number, it might be a defined genre */
+  if (id3v2_are_digits (tag_str, len)) {
+    tag_str = gst_tag_id3_genre_get (strtol (tag_str, NULL, 10));
+    return id3v2_tag_to_taglist (work, tag_name, tag_str);
+  }
+  /* Otherwise it might be "RX" or "CR" */
+  if (len == 2) {
+    if (g_ascii_strncasecmp ("rx", tag_str, len) == 0)
+      return id3v2_tag_to_taglist (work, tag_name, "Remix");
+
+    if (g_ascii_strncasecmp ("cr", tag_str, len) == 0)
+      return id3v2_tag_to_taglist (work, tag_name, "Cover");
+  }
+
+  /* Otherwise it's a string */
+  return id3v2_tag_to_taglist (work, tag_name, tag_str);
+}
+
+static gboolean
+id3v2_genre_fields_to_taglist (ID3TagsWorking * work, const gchar * tag_name,
+    GArray * tag_fields)
+{
+  gchar *tag_str = NULL;
+  gboolean result = FALSE;
+  gint i;
+
+  for (i = 0; i < tag_fields->len; i++) {
+    gint len;
+
+    tag_str = g_array_index (tag_fields, gchar *, i);
+    if (tag_str == NULL)
+      continue;
+
+    len = strlen (tag_str);
+    /* Only supposed to see '(n)' type numeric genre strings in ID3 <= 2.3.0
+     * but apparently we see them in 2.4.0 sometimes too */
+    if (TRUE || work->hdr.version <= 0x300) {   /* <= 2.3.0 */
+      /* Check for genre numbers wrapped in parentheses, possibly
+       * followed by a string */
+      while (len >= 2) {
+        gint pos;
+        gboolean found = FALSE;
+
+        /* Double parenthesis ends the numeric genres, but we need
+         * to swallow the first one so we actually output '(' */
+        if (tag_str[0] == '(' && tag_str[1] == '(') {
+          tag_str++;
+          len--;
+          break;
+        }
+
+        /* If the first char is not a parenthesis, then stop
+         * looking for parenthesised genre strings */
+        if (tag_str[0] != '(')
+          break;
+
+        for (pos = 1; pos < len; pos++) {
+          if (tag_str[pos] == ')') {
+            gchar *tmp_str;
+
+            tmp_str = g_strndup (tag_str + 1, pos - 1);
+            result |=
+                id3v2_genre_string_to_taglist (work, tag_name, tmp_str,
+                pos - 1);
+            g_free (tmp_str);
+            tag_str += pos + 1;
+            len -= pos + 1;
+            found = TRUE;
+            break;
+          }
+
+          /* If we encounter a non-digit while searching for a closing 
+           * parenthesis, we should not try and interpret this as a 
+           * numeric genre string */
+          if (!g_ascii_isdigit (tag_str[pos]))
+            break;
+        }
+        if (!found)
+          break;                /* There was no closing parenthesis */
+      }
+    }
+
+    if (len > 0 && tag_str != NULL)
+      result |= id3v2_genre_string_to_taglist (work, tag_name, tag_str, len);
+  }
+  return result;
+}
+
+static const gchar utf16enc[] = "UTF-16";
+static const gchar utf16leenc[] = "UTF-16LE";
+static const gchar utf16beenc[] = "UTF-16BE";
+
+static gboolean
+find_utf16_bom (gchar * data, const gchar ** p_in_encoding)
+{
+  guint16 marker = (GST_READ_UINT8 (data) << 8) | GST_READ_UINT8 (data + 1);
+
+  switch (marker) {
+    case 0xFFFE:
+      *p_in_encoding = utf16leenc;
+      return TRUE;
+    case 0xFEFF:
+      *p_in_encoding = utf16beenc;
+      return TRUE;
+    default:
+      break;
+  }
+  return FALSE;
+}
+
+static void *
+string_utf8_dup (const gchar * start, const guint size)
+{
+  const gchar *env;
+  gsize bytes_read;
+  gchar *utf8;
+
+  /* Should we try the charsets specified
+   * via environment variables FIRST ? */
+  if (g_utf8_validate (start, size, NULL)) {
+    utf8 = g_strndup (start, size);
+    goto beach;
+  }
+
+  env = g_getenv ("GST_ID3V1_TAG_ENCODING");
+  if (!env || *env == '\0')
+    env = g_getenv ("GST_ID3_TAG_ENCODING");
+  if (!env || *env == '\0')
+    env = g_getenv ("GST_TAG_ENCODING");
+
+  /* Try charsets specified via the environment */
+  if (env && *env != '\0') {
+    gchar **c, **csets;
+
+    csets = g_strsplit (env, G_SEARCHPATH_SEPARATOR_S, -1);
+
+    for (c = csets; c && *c; ++c) {
+      if ((utf8 =
+              g_convert (start, size, "UTF-8", *c, &bytes_read, NULL, NULL))) {
+        if (bytes_read == size) {
+          GST_DEBUG ("Using charset %s to interperate id3 tags\n", *c);
+          g_strfreev (csets);
+          goto beach;
+        }
+        g_free (utf8);
+        utf8 = NULL;
+      }
+    }
+  }
+  /* Try current locale (if not UTF-8) */
+  if (!g_get_charset (&env)) {
+    if ((utf8 = g_locale_to_utf8 (start, size, &bytes_read, NULL, NULL))) {
+      if (bytes_read == size) {
+        goto beach;
+      }
+      g_free (utf8);
+      utf8 = NULL;
+    }
+  }
+
+  /* Try ISO-8859-1 */
+  utf8 =
+      g_convert (start, size, "UTF-8", "ISO-8859-1", &bytes_read, NULL, NULL);
+  if (utf8 != NULL && bytes_read == size) {
+    goto beach;
+  }
+
+  g_free (utf8);
+  return NULL;
+
+beach:
+
+  g_strchomp (utf8);
+
+  return (utf8);
+}
+
+static void
+parse_insert_string_field (guint8 encoding, gchar * data, gint data_size,
+    GArray * fields)
+{
+  gchar *field = NULL;
+
+  switch (encoding) {
+    case ID3V2_ENCODING_UTF16:
+    case ID3V2_ENCODING_UTF16BE:
+    {
+      const gchar *in_encode;
+
+      if (encoding == ID3V2_ENCODING_UTF16)
+        in_encode = utf16enc;
+      else
+        in_encode = utf16beenc;
+
+      /* Sometimes we see strings with multiple BOM markers at the start.
+       * In that case, we assume the innermost one is correct. If that fails
+       * to produce valid UTF-8, we try the other endianness anyway */
+      while (data_size > 2 && find_utf16_bom (data, &in_encode)) {
+        data += 2;              /* skip BOM */
+        data_size -= 2;
+      }
+
+      field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
+
+      if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) {
+        /* As a fallback, try interpreting UTF-16 in the other endianness */
+        if (in_encode == utf16beenc)
+          field = g_convert (data, data_size, "UTF-8", utf16leenc,
+              NULL, NULL, NULL);
+      }
+    }
+
+      break;
+    case ID3V2_ENCODING_ISO8859:
+      if (g_utf8_validate (data, data_size, NULL))
+        field = g_strndup (data, data_size);
+      else
+        /* field = g_convert (data, data_size, "UTF-8", "ISO-8859-1",
+           NULL, NULL, NULL); */
+        field = string_utf8_dup (data, data_size);
+      break;
+    default:
+      field = g_strndup (data, data_size);
+      break;
+  }
+
+  if (field) {
+    if (g_utf8_validate (field, -1, NULL)) {
+      g_array_append_val (fields, field);
+      return;
+    }
+
+    GST_DEBUG ("%s was bad UTF-8 after conversion from encoding %d. Ignoring",
+        field, encoding);
+    g_free (field);
+  }
+}
+
+static void
+parse_split_strings (guint8 encoding, gchar * data, gint data_size,
+    GArray ** out_fields)
+{
+  GArray *fields = g_array_new (FALSE, TRUE, sizeof (gchar *));
+  gint text_pos;
+  gint prev = 0;
+
+  g_return_if_fail (out_fields != NULL);
+
+  switch (encoding) {
+    case ID3V2_ENCODING_ISO8859:
+      for (text_pos = 0; text_pos < data_size; text_pos++) {
+        if (data[text_pos] == 0) {
+          parse_insert_string_field (encoding, data + prev,
+              text_pos - prev + 1, fields);
+          prev = text_pos + 1;
+        }
+      }
+      if (data_size - prev > 0 && data[prev] != 0x00) {
+        parse_insert_string_field (encoding, data + prev,
+            data_size - prev, fields);
+      }
+
+      break;
+    case ID3V2_ENCODING_UTF8:
+      for (prev = 0, text_pos = 0; text_pos < data_size; text_pos++) {
+        if (data[text_pos] == '\0') {
+          parse_insert_string_field (encoding, data + prev,
+              text_pos - prev + 1, fields);
+          prev = text_pos + 1;
+        }
+      }
+      if (data_size - prev > 0 && data[prev] != 0x00) {
+        parse_insert_string_field (encoding, data + prev,
+            data_size - prev, fields);
+      }
+      break;
+    case ID3V2_ENCODING_UTF16:
+    case ID3V2_ENCODING_UTF16BE:
+    {
+      /* Find '\0\0' terminator */
+      for (text_pos = 0; text_pos < data_size - 1; text_pos += 2) {
+        if (data[text_pos] == '\0' && data[text_pos + 1] == '\0') {
+          /* found a delimiter */
+          parse_insert_string_field (encoding, data + prev,
+              text_pos - prev + 2, fields);
+          text_pos++;           /* Advance to the 2nd NULL terminator */
+          prev = text_pos + 1;
+          break;
+        }
+      }
+      if (data_size - prev > 1 &&
+          (data[prev] != 0x00 || data[prev + 1] != 0x00)) {
+        /* There were 2 or more non-null chars left, convert those too */
+        parse_insert_string_field (encoding, data + prev,
+            data_size - prev, fields);
+      }
+      break;
+    }
+  }
+  if (fields->len > 0)
+    *out_fields = fields;
+  else
+    g_array_free (fields, TRUE);
+}
+
+static void
+free_tag_strings (GArray * fields)
+{
+  if (fields) {
+    gint i;
+    gchar *c;
+
+    for (i = 0; i < fields->len; i++) {
+      c = g_array_index (fields, gchar *, i);
+      g_free (c);
+    }
+    g_array_free (fields, TRUE);
+  }
+}
index 3520383..a0838fe 100644 (file)
@@ -411,7 +411,7 @@ gst_tag_get_language_code_iso_639_2X (const gchar * lang_code, guint8 flags)
       } else if (i > 0 && (iso_639_codes[i - 1].flags & flags) == flags &&
           iso_639_codes[i].name_offset == iso_639_codes[i - 1].name_offset) {
         return iso_639_codes[i - 1].iso_639_2;
-      } else if (i < G_N_ELEMENTS (iso_639_codes) &&
+      } else if ((i + 1) < G_N_ELEMENTS (iso_639_codes) &&
           (iso_639_codes[i + 1].flags & flags) == flags &&
           iso_639_codes[i].name_offset == iso_639_codes[i + 1].name_offset) {
         return iso_639_codes[i + 1].iso_639_2;
diff --git a/gst-libs/gst/tag/license-translations.dict b/gst-libs/gst/tag/license-translations.dict
new file mode 100644 (file)
index 0000000..1fa8ce4
Binary files /dev/null and b/gst-libs/gst/tag/license-translations.dict differ
diff --git a/gst-libs/gst/tag/licenses-tables.dat b/gst-libs/gst/tag/licenses-tables.dat
new file mode 100644 (file)
index 0000000..cdf254f
--- /dev/null
@@ -0,0 +1,467 @@
+/* created by mklicensestables.c */
+static const struct {
+  /* jurisdictions in addition to the generic version, bitfield */
+  const guint64             jurisdictions;
+  const GstTagLicenseFlags  flags;
+  /* the bit after http://creativecommons.org/licenses/ */
+  const gchar               ref[18];
+  gint16                    title_idx;  /* index in string table */
+  gint16                    desc_idx;   /* index in string table */
+} licenses[] = {
+  /*  0 http://creativecommons.org/licenses/GPL/2.0/ */
+  { 0x8000000000000000, 0x02000d07, "GPL/2.0/", 0, -1 },
+  /*  1 http://creativecommons.org/licenses/LGPL/2.1/ */
+  { 0x8000000000000000, 0x02000d07, "LGPL/2.1/", 4, -1 },
+  /*  2 http://creativecommons.org/licenses/by-nc-nd/2.0/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/at/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/au/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/be/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/br/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/ca/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/cl/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/de/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/es/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/hr/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/it/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/kr/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/nl/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/pl/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/tw/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/uk/
+   *  2 http://creativecommons.org/licenses/by-nc-nd/2.0/za/
+   *  2 http://creativecommons.org/licenses/by-nd-nc/2.0/jp/ */
+  { 0x8000002c2871a96e, 0x01010303, "by-nc-nd/2.0/", 9, -1 },
+  /*  3 http://creativecommons.org/licenses/by-nc-nd/2.1/au/ */
+  { 0x0000000000000004, 0x01010303, "by-nc-nd/2.1/", 9, -1 },
+  /*  4 http://creativecommons.org/licenses/by-nc-nd/2.1/es/ */
+  { 0x0000000000002000, 0x01010303, "by-nc-nd/2.1/", 9, -1 },
+  /*  5 http://creativecommons.org/licenses/by-nc-nd/2.1/jp/ */
+  { 0x0000000000200000, 0x01010303, "by-nc-nd/2.1/", 9, -1 },
+  /*  6 http://creativecommons.org/licenses/by-nc-nd/2.5/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/ar/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/au/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/bg/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/br/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/ca/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/ch/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/cn/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/co/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/dk/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/es/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/hr/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/hu/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/il/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/in/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/it/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/mk/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/mt/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/mx/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/my/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/nl/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/pe/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/pl/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/pt/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/se/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/si/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/tw/
+   *  6 http://creativecommons.org/licenses/by-nc-nd/2.5/za/ */
+  { 0x80000027ff9f36f5, 0x01010303, "by-nc-nd/2.5/", 9, -1 },
+  /*  7 http://creativecommons.org/licenses/by-nc-nd/3.0/
+   *  7 http://creativecommons.org/licenses/by-nc-nd/3.0/us/ */
+  { 0x8000001000000000, 0x01010303, "by-nc-nd/3.0/", 9, -1 },
+  /*  8 http://creativecommons.org/licenses/by-nc-sa/1.0/
+   *  8 http://creativecommons.org/licenses/by-nc-sa/1.0/fi/
+   *  8 http://creativecommons.org/licenses/by-nc-sa/1.0/il/
+   *  8 http://creativecommons.org/licenses/by-nc-sa/1.0/nl/ */
+  { 0x8000000008044000, 0x01010707, "by-nc-sa/1.0/", 44, -1 },
+  /*  9 http://creativecommons.org/licenses/by-nc-sa/2.0/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/at/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/au/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/be/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/br/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/ca/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/cl/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/de/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/es/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/hr/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/it/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/jp/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/kr/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/nl/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/pl/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/tw/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/uk/
+   *  9 http://creativecommons.org/licenses/by-nc-sa/2.0/za/ */
+  { 0x8000002c2871a96e, 0x01010707, "by-nc-sa/2.0/", 44, -1 },
+  /* 10 http://creativecommons.org/licenses/by-nc-sa/2.1/au/ */
+  { 0x0000000000000004, 0x01010707, "by-nc-sa/2.1/", 44, -1 },
+  /* 11 http://creativecommons.org/licenses/by-nc-sa/2.1/es/ */
+  { 0x0000000000002000, 0x01010707, "by-nc-sa/2.1/", 44, -1 },
+  /* 12 http://creativecommons.org/licenses/by-nc-sa/2.1/jp/ */
+  { 0x0000000000200000, 0x01010707, "by-nc-sa/2.1/", 44, -1 },
+  /* 13 http://creativecommons.org/licenses/by-nc-sa/2.5/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/au/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/bg/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/br/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/ca/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/ch/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/cn/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/co/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/dk/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/es/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/hr/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/hu/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/il/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/in/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/it/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/mk/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/mt/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/mx/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/my/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/nl/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/pl/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/pt/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/se/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/si/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/tw/
+   * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/za/ */
+  { 0x800000277f9f36f5, 0x01010707, "by-nc-sa/2.5/", 44, -1 },
+  /* 14 http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/ */
+  { 0x0000000080000000, 0x01010703, "by-nc-sa/2.5/", 44, -1 },
+  /* 15 http://creativecommons.org/licenses/by-nc-sa/3.0/
+   * 15 http://creativecommons.org/licenses/by-nc-sa/3.0/us/ */
+  { 0x8000001000000000, 0x01010707, "by-nc-sa/3.0/", 44, -1 },
+  /* 16 http://creativecommons.org/licenses/by-nc/1.0/
+   * 16 http://creativecommons.org/licenses/by-nc/1.0/fi/
+   * 16 http://creativecommons.org/licenses/by-nc/1.0/il/
+   * 16 http://creativecommons.org/licenses/by-nc/1.0/nl/ */
+  { 0x8000000008044000, 0x01010307, "by-nc/1.0/", 81, -1 },
+  /* 17 http://creativecommons.org/licenses/by-nc/2.0/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/at/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/au/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/be/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/br/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/ca/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/cl/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/de/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/es/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/fr/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/hr/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/it/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/jp/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/kr/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/nl/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/pl/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/tw/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/uk/
+   * 17 http://creativecommons.org/licenses/by-nc/2.0/za/ */
+  { 0x8000002c2871a96e, 0x01010307, "by-nc/2.0/", 81, -1 },
+  /* 18 http://creativecommons.org/licenses/by-nc/2.1/au/ */
+  { 0x0000000000000004, 0x01010307, "by-nc/2.1/", 81, -1 },
+  /* 19 http://creativecommons.org/licenses/by-nc/2.1/es/ */
+  { 0x0000000000002000, 0x01010307, "by-nc/2.1/", 81, -1 },
+  /* 20 http://creativecommons.org/licenses/by-nc/2.1/jp/ */
+  { 0x0000000000200000, 0x01010307, "by-nc/2.1/", 81, -1 },
+  /* 21 http://creativecommons.org/licenses/by-nc/2.5/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/ar/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/au/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/bg/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/br/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/ca/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/ch/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/cn/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/co/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/dk/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/es/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/hr/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/hu/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/il/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/in/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/it/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/mk/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/mt/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/mx/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/my/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/nl/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/pe/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/pl/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/pt/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/se/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/si/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/tw/
+   * 21 http://creativecommons.org/licenses/by-nc/2.5/za/ */
+  { 0x800000277f9f36f5, 0x01010307, "by-nc/2.5/", 81, -1 },
+  /* 22 http://creativecommons.org/licenses/by-nc/2.5/scotland/ */
+  { 0x0000000080000000, 0x01010303, "by-nc/2.5/", 81, -1 },
+  /* 23 http://creativecommons.org/licenses/by-nc/3.0/
+   * 23 http://creativecommons.org/licenses/by-nc/3.0/us/ */
+  { 0x8000001000000000, 0x01010307, "by-nc/3.0/", 81, -1 },
+  /* 24 http://creativecommons.org/licenses/by-nd-nc/1.0/
+   * 24 http://creativecommons.org/licenses/by-nd-nc/1.0/fi/
+   * 24 http://creativecommons.org/licenses/by-nd-nc/1.0/il/
+   * 24 http://creativecommons.org/licenses/by-nd-nc/1.0/nl/ */
+  { 0x8000000008044000, 0x01010303, "by-nd-nc/1.0/", 107, -1 },
+  /* 25 http://creativecommons.org/licenses/by-nd-nc/2.0/jp/ */
+  { 0x0000000000200000, 0x01010303, "by-nd-nc/2.0/", 107, -1 },
+  /* 26 http://creativecommons.org/licenses/by-nd/1.0/
+   * 26 http://creativecommons.org/licenses/by-nd/1.0/fi/
+   * 26 http://creativecommons.org/licenses/by-nd/1.0/il/
+   * 26 http://creativecommons.org/licenses/by-nd/1.0/nl/ */
+  { 0x8000000008044000, 0x01000303, "by-nd/1.0/", 142, -1 },
+  /* 27 http://creativecommons.org/licenses/by-nd/2.0/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/at/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/au/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/be/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/br/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/ca/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/cl/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/de/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/es/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/fr/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/hr/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/it/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/jp/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/kr/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/nl/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/pl/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/tw/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/uk/
+   * 27 http://creativecommons.org/licenses/by-nd/2.0/za/ */
+  { 0x8000002c2871a96e, 0x01000303, "by-nd/2.0/", 142, -1 },
+  /* 28 http://creativecommons.org/licenses/by-nd/2.1/au/ */
+  { 0x0000000000000004, 0x01000303, "by-nd/2.1/", 142, -1 },
+  /* 29 http://creativecommons.org/licenses/by-nd/2.1/es/ */
+  { 0x0000000000002000, 0x01000303, "by-nd/2.1/", 142, -1 },
+  /* 30 http://creativecommons.org/licenses/by-nd/2.1/jp/ */
+  { 0x0000000000200000, 0x01000303, "by-nd/2.1/", 142, -1 },
+  /* 31 http://creativecommons.org/licenses/by-nd/2.5/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/ar/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/au/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/bg/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/br/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/ca/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/ch/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/cn/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/co/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/dk/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/es/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/hr/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/hu/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/il/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/in/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/it/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/mk/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/mt/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/mx/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/my/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/nl/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/pe/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/pl/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/pt/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/scotland/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/se/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/si/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/tw/
+   * 31 http://creativecommons.org/licenses/by-nd/2.5/za/ */
+  { 0x80000027ff9f36f5, 0x01000303, "by-nd/2.5/", 142, -1 },
+  /* 32 http://creativecommons.org/licenses/by-nd/3.0/
+   * 32 http://creativecommons.org/licenses/by-nd/3.0/us/ */
+  { 0x8000001000000000, 0x01000303, "by-nd/3.0/", 142, -1 },
+  /* 33 http://creativecommons.org/licenses/by-sa/1.0/
+   * 33 http://creativecommons.org/licenses/by-sa/1.0/fi/
+   * 33 http://creativecommons.org/licenses/by-sa/1.0/il/
+   * 33 http://creativecommons.org/licenses/by-sa/1.0/nl/ */
+  { 0x8000000008044000, 0x01000707, "by-sa/1.0/", 163, -1 },
+  /* 34 http://creativecommons.org/licenses/by-sa/2.0/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/at/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/au/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/be/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/br/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/ca/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/cl/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/de/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/es/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/fr/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/hr/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/it/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/jp/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/kr/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/nl/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/pl/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/tw/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/uk/
+   * 34 http://creativecommons.org/licenses/by-sa/2.0/za/ */
+  { 0x8000002c2871a96e, 0x01000707, "by-sa/2.0/", 163, -1 },
+  /* 35 http://creativecommons.org/licenses/by-sa/2.1/au/ */
+  { 0x0000000000000004, 0x01000707, "by-sa/2.1/", 163, -1 },
+  /* 36 http://creativecommons.org/licenses/by-sa/2.1/es/ */
+  { 0x0000000000002000, 0x01000707, "by-sa/2.1/", 163, -1 },
+  /* 37 http://creativecommons.org/licenses/by-sa/2.1/jp/ */
+  { 0x0000000000200000, 0x01000707, "by-sa/2.1/", 163, -1 },
+  /* 38 http://creativecommons.org/licenses/by-sa/2.5/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/ar/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/au/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/bg/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/br/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/ca/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/ch/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/cn/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/co/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/dk/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/es/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/hr/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/hu/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/il/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/in/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/it/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/mk/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/mt/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/mx/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/my/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/nl/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/pe/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/pl/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/pt/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/se/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/si/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/tw/
+   * 38 http://creativecommons.org/licenses/by-sa/2.5/za/ */
+  { 0x800000277f9f36f5, 0x01000707, "by-sa/2.5/", 163, -1 },
+  /* 39 http://creativecommons.org/licenses/by-sa/2.5/scotland/ */
+  { 0x0000000080000000, 0x01000703, "by-sa/2.5/", 163, -1 },
+  /* 40 http://creativecommons.org/licenses/by-sa/3.0/
+   * 40 http://creativecommons.org/licenses/by-sa/3.0/us/ */
+  { 0x8000001000000000, 0x01000707, "by-sa/3.0/", 163, -1 },
+  /* 41 http://creativecommons.org/licenses/by/1.0/
+   * 41 http://creativecommons.org/licenses/by/1.0/fi/
+   * 41 http://creativecommons.org/licenses/by/1.0/il/
+   * 41 http://creativecommons.org/licenses/by/1.0/nl/ */
+  { 0x8000000008044000, 0x01000307, "by/1.0/", 186, 198 },
+  /* 42 http://creativecommons.org/licenses/by/2.0/
+   * 42 http://creativecommons.org/licenses/by/2.0/at/
+   * 42 http://creativecommons.org/licenses/by/2.0/au/
+   * 42 http://creativecommons.org/licenses/by/2.0/be/
+   * 42 http://creativecommons.org/licenses/by/2.0/br/
+   * 42 http://creativecommons.org/licenses/by/2.0/ca/
+   * 42 http://creativecommons.org/licenses/by/2.0/cl/
+   * 42 http://creativecommons.org/licenses/by/2.0/de/
+   * 42 http://creativecommons.org/licenses/by/2.0/es/
+   * 42 http://creativecommons.org/licenses/by/2.0/fr/
+   * 42 http://creativecommons.org/licenses/by/2.0/hr/
+   * 42 http://creativecommons.org/licenses/by/2.0/it/
+   * 42 http://creativecommons.org/licenses/by/2.0/jp/
+   * 42 http://creativecommons.org/licenses/by/2.0/kr/
+   * 42 http://creativecommons.org/licenses/by/2.0/nl/
+   * 42 http://creativecommons.org/licenses/by/2.0/pl/
+   * 42 http://creativecommons.org/licenses/by/2.0/tw/
+   * 42 http://creativecommons.org/licenses/by/2.0/uk/
+   * 42 http://creativecommons.org/licenses/by/2.0/za/ */
+  { 0x8000002c2871a96e, 0x01000307, "by/2.0/", 186, 198 },
+  /* 43 http://creativecommons.org/licenses/by/2.1/au/ */
+  { 0x0000000000000004, 0x01000307, "by/2.1/", 186, 198 },
+  /* 44 http://creativecommons.org/licenses/by/2.1/es/ */
+  { 0x0000000000002000, 0x01000307, "by/2.1/", 186, 198 },
+  /* 45 http://creativecommons.org/licenses/by/2.1/jp/ */
+  { 0x0000000000200000, 0x01000307, "by/2.1/", 186, 198 },
+  /* 46 http://creativecommons.org/licenses/by/2.5/
+   * 46 http://creativecommons.org/licenses/by/2.5/ar/
+   * 46 http://creativecommons.org/licenses/by/2.5/au/
+   * 46 http://creativecommons.org/licenses/by/2.5/bg/
+   * 46 http://creativecommons.org/licenses/by/2.5/br/
+   * 46 http://creativecommons.org/licenses/by/2.5/ca/
+   * 46 http://creativecommons.org/licenses/by/2.5/ch/
+   * 46 http://creativecommons.org/licenses/by/2.5/cn/
+   * 46 http://creativecommons.org/licenses/by/2.5/co/
+   * 46 http://creativecommons.org/licenses/by/2.5/dk/
+   * 46 http://creativecommons.org/licenses/by/2.5/es/
+   * 46 http://creativecommons.org/licenses/by/2.5/hr/
+   * 46 http://creativecommons.org/licenses/by/2.5/hu/
+   * 46 http://creativecommons.org/licenses/by/2.5/il/
+   * 46 http://creativecommons.org/licenses/by/2.5/in/
+   * 46 http://creativecommons.org/licenses/by/2.5/it/
+   * 46 http://creativecommons.org/licenses/by/2.5/mk/
+   * 46 http://creativecommons.org/licenses/by/2.5/mt/
+   * 46 http://creativecommons.org/licenses/by/2.5/mx/
+   * 46 http://creativecommons.org/licenses/by/2.5/my/
+   * 46 http://creativecommons.org/licenses/by/2.5/nl/
+   * 46 http://creativecommons.org/licenses/by/2.5/pe/
+   * 46 http://creativecommons.org/licenses/by/2.5/pl/
+   * 46 http://creativecommons.org/licenses/by/2.5/pt/
+   * 46 http://creativecommons.org/licenses/by/2.5/se/
+   * 46 http://creativecommons.org/licenses/by/2.5/si/
+   * 46 http://creativecommons.org/licenses/by/2.5/tw/
+   * 46 http://creativecommons.org/licenses/by/2.5/za/ */
+  { 0x800000277f9f36f5, 0x01000307, "by/2.5/", 186, 198 },
+  /* 47 http://creativecommons.org/licenses/by/2.5/scotland/ */
+  { 0x0000000080000000, 0x01000303, "by/2.5/", 186, 198 },
+  /* 48 http://creativecommons.org/licenses/by/3.0/
+   * 48 http://creativecommons.org/licenses/by/3.0/us/ */
+  { 0x8000001000000000, 0x01000307, "by/3.0/", 186, 198 },
+  /* 49 http://creativecommons.org/licenses/devnations/2.0/ */
+  { 0x8000000000000000, 0x01020107, "devnations/2.0/", 277, -1 },
+  /* 50 http://creativecommons.org/licenses/nc-sa/1.0/
+   * 50 http://creativecommons.org/licenses/nc-sa/1.0/fi/
+   * 50 http://creativecommons.org/licenses/nc-sa/1.0/nl/ */
+  { 0x8000000008004000, 0x01010507, "nc-sa/1.0/", 296, -1 },
+  /* 51 http://creativecommons.org/licenses/nc-sa/2.0/jp/ */
+  { 0x0000000000200000, 0x01010507, "nc-sa/2.0/", 296, -1 },
+  /* 52 http://creativecommons.org/licenses/nc-sampling+/1.0/
+   * 52 http://creativecommons.org/licenses/nc-sampling+/1.0/tw/ */
+  { 0x8000000400000000, 0x01010307, "nc-sampling+/1.0/", 321, -1 },
+  /* 53 http://creativecommons.org/licenses/nc/1.0/
+   * 53 http://creativecommons.org/licenses/nc/1.0/fi/
+   * 53 http://creativecommons.org/licenses/nc/1.0/nl/ */
+  { 0x8000000008004000, 0x01010107, "nc/1.0/", 349, 363 },
+  /* 54 http://creativecommons.org/licenses/nc/2.0/jp/ */
+  { 0x0000000000200000, 0x01010107, "nc/2.0/", 349, 363 },
+  /* 55 http://creativecommons.org/licenses/nd-nc/1.0/
+   * 55 http://creativecommons.org/licenses/nd-nc/1.0/fi/
+   * 55 http://creativecommons.org/licenses/nd-nc/1.0/nl/ */
+  { 0x8000000008004000, 0x01010103, "nd-nc/1.0/", 547, -1 },
+  /* 56 http://creativecommons.org/licenses/nd-nc/2.0/jp/ */
+  { 0x0000000000200000, 0x01010103, "nd-nc/2.0/", 547, -1 },
+  /* 57 http://creativecommons.org/licenses/nd/1.0/
+   * 57 http://creativecommons.org/licenses/nd/1.0/fi/
+   * 57 http://creativecommons.org/licenses/nd/1.0/nl/ */
+  { 0x8000000008004000, 0x01000103, "nd/1.0/", 570, 579 },
+  /* 58 http://creativecommons.org/licenses/nd/2.0/jp/ */
+  { 0x0000000000200000, 0x01000103, "nd/2.0/", 570, 579 },
+  /* 59 http://creativecommons.org/licenses/publicdomain/ */
+  { 0x8000000000000000, 0x00000007, "publicdomain/", 712, -1 },
+  /* 60 http://creativecommons.org/licenses/sa/1.0/
+   * 60 http://creativecommons.org/licenses/sa/1.0/fi/
+   * 60 http://creativecommons.org/licenses/sa/1.0/nl/ */
+  { 0x8000000008004000, 0x01000507, "sa/1.0/", 726, 737 },
+  /* 61 http://creativecommons.org/licenses/sa/2.0/jp/ */
+  { 0x0000000000200000, 0x01000507, "sa/2.0/", 726, 737 },
+  /* 62 http://creativecommons.org/licenses/sampling+/1.0/
+   * 62 http://creativecommons.org/licenses/sampling+/1.0/br/
+   * 62 http://creativecommons.org/licenses/sampling+/1.0/de/
+   * 62 http://creativecommons.org/licenses/sampling+/1.0/tw/ */
+  { 0x8000000400000820, 0x0100030d, "sampling+/1.0/", 889, -1 },
+  /* 63 http://creativecommons.org/licenses/sampling/1.0/
+   * 63 http://creativecommons.org/licenses/sampling/1.0/br/
+   * 63 http://creativecommons.org/licenses/sampling/1.0/tw/ */
+  { 0x8000000400000020, 0x01000305, "sampling/1.0/", 903, -1 },
+};
+
+static const gchar license_strings[] =
+  "GPL\000LGPL\000Attribution-NonCommercial-NoDerivs\000Attribution-NonComme"
+  "rcial-ShareAlike\000Attribution-NonCommercial\000Attribution-NoDerivs-Non"
+  "Commercial\000Attribution-NoDerivs\000Attribution-ShareAlike\000Attributi"
+  "on\000You must attribute the work in the manner specified by the author o"
+  "r licensor.\000Developing Nations\000NonCommercial-ShareAlike\000NonComme"
+  "rcial Sampling Plus\000NonCommercial\000The licensor permits others to co"
+  "py, distribute and transmit the work. In return, licensees may not use th"
+  "e work for commercial purposes \342\200\224 unless they get the licensor'"
+  "s permission.\000NoDerivs-NonCommercial\000NoDerivs\000The licensor permi"
+  "ts others to copy, distribute and transmit only unaltered copies of the w"
+  "ork \342\200\224 not derivative works based on it.\000Public Domain\000Sh"
+  "areAlike\000The licensor permits others to distribute derivative works on"
+  "ly under the same license or one compatible with the one that governs the"
+  " licensor's work.\000Sampling Plus\000Sampling";
diff --git a/gst-libs/gst/tag/licenses.c b/gst-libs/gst/tag/licenses.c
new file mode 100644 (file)
index 0000000..f765cfd
--- /dev/null
@@ -0,0 +1,632 @@
+/* GStreamer media licenses utility functions
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gsttaglicenses
+ * @short_description: utility functions for Creative Commons licenses
+ * @see_also: #GstTagList
+ *
+ * Provides information about Creative Commons media licenses, which are
+ * often expressed in media files as a license URI in tags. Also useful
+ * for applications creating media files, in case the user wants to license
+ * the content under a Creative Commons license.
+ */
+
+/* FIXME: add API to check obsolete-ness / replace-by */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "tag.h"
+#include "licenses-tables.dat"
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT ensure_debug_category()
+
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("tag-licenses", 0,
+        "GstTag licenses");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+
+#else
+
+#define ensure_debug_category() /* NOOP */
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+/* -------------------------------------------------------------------------
+ *  Translations
+ * ------------------------------------------------------------------------- */
+
+#ifdef ENABLE_NLS
+static GVariant *
+gst_tag_get_license_translations_dictionary (void)
+{
+  static gsize var_gonce = 0;
+
+  if (g_once_init_enter (&var_gonce)) {
+    const gchar *dict_path;
+    GVariant *var = NULL;
+    GError *err = NULL;
+    gchar *data;
+    gsize len;
+
+    /* for gst-uninstalled */
+    dict_path = g_getenv ("GST_TAG_LICENSE_TRANSLATIONS_DICT");
+
+    if (dict_path == NULL)
+      dict_path = LICENSE_TRANSLATIONS_PATH;
+
+    GST_INFO ("Loading license translations from '%s'", dict_path);
+    if (g_file_get_contents (dict_path, &data, &len, &err)) {
+      var = g_variant_new_from_data (G_VARIANT_TYPE ("a{sa{ss}}"), data, len,
+          TRUE, (GDestroyNotify) g_free, data);
+    } else {
+      GST_WARNING ("Could not load translation dictionary %s", err->message);
+      g_error_free (err);
+      var = g_variant_new_array (G_VARIANT_TYPE ("{sa{ss}}"), NULL, 0);
+    }
+
+    g_once_init_leave (&var_gonce, (gsize) var);
+  }
+
+  return (GVariant *) var_gonce;
+}
+#endif
+
+#ifdef ENABLE_NLS
+
+#if !GLIB_CHECK_VERSION(2,28,0)
+static GVariant *
+gst_g_variant_lookup_value (GVariant * dictionary, const gchar * key,
+    const GVariantType * expected_type)
+{
+  GVariantIter iter;
+  GVariant *entry;
+  GVariant *value;
+
+  GST_ERROR ("here, using fallback");
+
+  g_assert (g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{s*}")));
+  g_assert (expected_type != NULL);
+
+  g_variant_iter_init (&iter, dictionary);
+  while ((entry = g_variant_iter_next_value (&iter))) {
+    GVariant *entry_key;
+    gboolean matches;
+
+    entry_key = g_variant_get_child_value (entry, 0);
+    matches = strcmp (g_variant_get_string (entry_key, NULL), key) == 0;
+    g_variant_unref (entry_key);
+
+    if (matches)
+      break;
+
+    g_variant_unref (entry);
+  }
+
+  if (entry == NULL)
+    return NULL;
+
+  value = g_variant_get_child_value (entry, 1);
+  g_variant_unref (entry);
+
+  if (g_variant_is_of_type (value, G_VARIANT_TYPE_VARIANT)) {
+    GVariant *tmp;
+
+    tmp = g_variant_get_variant (value);
+    g_variant_unref (value);
+
+    if (expected_type && !g_variant_is_of_type (tmp, expected_type)) {
+      g_variant_unref (tmp);
+      tmp = NULL;
+    }
+
+    value = tmp;
+  }
+
+  g_assert (value == NULL || g_variant_is_of_type (value, expected_type));
+
+  return value;
+}
+
+#define g_variant_lookup_value gst_g_variant_lookup_value
+#endif /* !GLIB_CHECK_VERSION(2,28,0) */
+
+static gboolean
+gst_variant_lookup_string_value (GVariant * dict, const gchar * lang,
+    const gchar ** translation)
+{
+  GVariant *trans;
+
+  trans = g_variant_lookup_value (dict, lang, G_VARIANT_TYPE ("s"));
+  if (trans == NULL)
+    return FALSE;
+
+  *translation = g_variant_get_string (trans, NULL);
+  /* string will stay valid */
+  g_variant_unref (trans);
+  GST_TRACE ("Result: '%s' for language '%s'", *translation, lang);
+  return TRUE;
+}
+#endif
+
+static const gchar *
+gst_license_str_translate (const gchar * s)
+{
+#ifdef ENABLE_NLS
+  GVariant *v, *dict, *trans;
+
+  v = gst_tag_get_license_translations_dictionary ();
+  g_assert (v != NULL);
+
+  dict = g_variant_lookup_value (v, s, G_VARIANT_TYPE ("a{ss}"));
+  if (dict != NULL) {
+    const gchar *const *lang;
+    const gchar *env_lang;
+
+    /* for unit tests */
+    if ((env_lang = g_getenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG"))) {
+      if (gst_variant_lookup_string_value (dict, env_lang, &s))
+        GST_TRACE ("Result: '%s' for forced language '%s'", s, env_lang);
+      goto beach;
+    }
+
+    lang = g_get_language_names ();
+    while (lang != NULL && *lang != NULL) {
+      GST_TRACE ("Looking up '%s' for language '%s'", s, *lang);
+      trans = g_variant_lookup_value (dict, *lang, G_VARIANT_TYPE ("s"));
+
+      if (trans != NULL) {
+        s = g_variant_get_string (trans, NULL);
+        /* s will stay valid */
+        g_variant_unref (trans);
+        GST_TRACE ("Result: '%s'", s);
+        break;
+      }
+
+      GST_TRACE ("No result for '%s' for language '%s'", s, *lang);
+      ++lang;
+    }
+
+  beach:
+
+    g_variant_unref (dict);
+  } else {
+    GST_WARNING ("No dict for string '%s'", s);
+  }
+#endif
+
+  return s;
+}
+
+/* -------------------------------------------------------------------------
+ *  License handling
+ * ------------------------------------------------------------------------- */
+
+#define CC_LICENSE_REF_PREFIX "http://creativecommons.org/licenses/"
+
+/* is this license 'generic' (and a base for any of the supported
+ * jurisdictions), or jurisdiction-specific only? */
+#define JURISDICTION_GENERIC (G_GUINT64_CONSTANT (1) << 63)
+
+static const gchar jurisdictions[] =
+    "ar\000at\000au\000be\000bg\000br\000ca\000ch\000cl\000cn\000co\000de\000"
+    "dk\000es\000fi\000fr\000hr\000hu\000il\000in\000it\000jp\000kr\000mk\000"
+    "mt\000mx\000my\000nl\000pe\000pl\000pt\000scotland\000se\000si\000tw\000"
+    "uk\000us\000za";
+
+/**
+ * gst_tag_get_licenses:
+ *
+ * Returns a list of known license references (in form of URIs). This is
+ * useful for UIs to build a list of available licenses for tagging purposes
+ * (e.g. to tag an audio track appropriately in a video or audio editor, or
+ * an image in a camera application).
+ *
+ * Returns: NULL-terminated array of license strings. Free with g_strfreev()
+ *     when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+gchar **
+gst_tag_get_licenses (void)
+{
+  GPtrArray *arr;
+  int i;
+
+  arr = g_ptr_array_new ();
+  for (i = 0; i < G_N_ELEMENTS (licenses); ++i) {
+    const gchar *jurs;
+    gboolean is_generic;
+    guint64 jbits;
+    gchar *ref;
+
+    jbits = licenses[i].jurisdictions;
+    is_generic = (jbits & JURISDICTION_GENERIC) != 0;
+    if (is_generic) {
+      ref = g_strconcat (CC_LICENSE_REF_PREFIX, licenses[i].ref, NULL);
+      GST_LOG ("Adding %2d %s (generic)", i, ref);
+      g_ptr_array_add (arr, ref);
+      jbits &= ~JURISDICTION_GENERIC;
+    }
+
+    jurs = jurisdictions;
+    while (jbits != 0) {
+      if ((jbits & 1)) {
+        ref = g_strconcat (CC_LICENSE_REF_PREFIX, licenses[i].ref, jurs, "/",
+            NULL);
+        GST_LOG ("Adding %2d %s (%s: %s)", i, ref,
+            (is_generic) ? "derived" : "specific", jurs);
+        g_ptr_array_add (arr, ref);
+      }
+      g_assert (jurs < (jurisdictions + sizeof (jurisdictions)));
+      jurs += strlen (jurs) + 1;
+      jbits >>= 1;
+    }
+  }
+  g_ptr_array_add (arr, NULL);
+  return (gchar **) g_ptr_array_free (arr, FALSE);
+}
+
+static gint
+gst_tag_get_license_idx (const gchar * license_ref, const gchar ** jurisdiction)
+{
+  const gchar *ref, *jur_suffix;
+  int i;
+
+  GST_TRACE ("Looking up '%s'", license_ref);
+
+  if (!g_str_has_prefix (license_ref, CC_LICENSE_REF_PREFIX)) {
+    GST_WARNING ("unknown license prefix in ref '%s'", license_ref);
+    return -1;
+  }
+
+  if (jurisdiction != NULL)
+    *jurisdiction = NULL;
+
+  ref = license_ref + sizeof (CC_LICENSE_REF_PREFIX) - 1;
+  for (i = 0; i < G_N_ELEMENTS (licenses); ++i) {
+    guint64 jbits = licenses[i].jurisdictions;
+    const gchar *jurs, *lref = licenses[i].ref;
+    gsize lref_len = strlen (lref);
+
+    /* table should have "foo/bar/" with trailing slash */
+    g_assert (lref[lref_len - 1] == '/');
+
+    if ((jbits & JURISDICTION_GENERIC)) {
+      GST_TRACE ("[%2d] %s checking generic match", i, licenses[i].ref);
+
+      /* exact match? */
+      if (strcmp (ref, lref) == 0)
+        return i;
+
+      /* exact match but without the trailing slash in ref? */
+      if (strncmp (ref, lref, lref_len - 1) == 0 && ref[lref_len - 1] == '\0')
+        return i;
+    }
+
+    if (!g_str_has_prefix (ref, lref))
+      continue;
+
+    GST_TRACE ("[%2d] %s checking jurisdictions", i, licenses[i].ref);
+
+    jbits &= ~JURISDICTION_GENERIC;
+
+    jur_suffix = ref + lref_len;
+    if (*jur_suffix == '\0')
+      continue;
+
+    jurs = jurisdictions;
+    while (jbits != 0) {
+      guint jur_len = strlen (jurs);
+
+      if ((jbits & 1)) {
+        if (strncmp (jur_suffix, jurs, jur_len) == 0 &&
+            (jur_suffix[jur_len] == '\0' || jur_suffix[jur_len] == '/')) {
+          GST_LOG ("matched %s to %s with jurisdiction %s (idx %d)",
+              license_ref, licenses[i].ref, jurs, i);
+          if (jurisdiction != NULL)
+            *jurisdiction = jurs;
+          return i;
+        }
+      }
+      g_assert (jurs < (jurisdictions + sizeof (jurisdictions)));
+      jurs += jur_len + 1;
+      jbits >>= 1;
+    }
+  }
+
+  GST_WARNING ("unhandled license ref '%s'", license_ref);
+  return -1;
+}
+
+/**
+ * gst_tag_get_license_flags:
+ * @license_ref: a license reference string in form of a URI,
+ *     e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the flags of a license, which describe most of the features of
+ * a license in their most general form.
+ *
+ * Returns: the flags of the license, or 0 if the license is unknown
+ *
+ * Since: 0.10.36
+ */
+GstTagLicenseFlags
+gst_tag_get_license_flags (const gchar * license_ref)
+{
+  int idx;
+
+  g_return_val_if_fail (license_ref != NULL, 0);
+
+  idx = gst_tag_get_license_idx (license_ref, NULL);
+  return (idx < 0) ? 0 : licenses[idx].flags;
+}
+
+/**
+ * gst_tag_get_license_nick:
+ * @license_ref: a license reference string in form of a URI,
+ *     e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the nick name of a license, which is a short (untranslated) string
+ * such as e.g. "CC BY-NC-ND 2.0 UK".
+ *
+ * Returns: the nick name of the license, or NULL if the license is unknown
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_nick (const gchar * license_ref)
+{
+  GstTagLicenseFlags flags;
+  const gchar *creator_prefix, *res;
+  gchar *nick, *c;
+
+  g_return_val_if_fail (license_ref != NULL, NULL);
+
+  flags = gst_tag_get_license_flags (license_ref);
+
+  if ((flags & GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE)) {
+    creator_prefix = "CC ";
+  } else if ((flags & GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE)) {
+    creator_prefix = "FSF ";
+  } else if (g_str_has_suffix (license_ref, "publicdomain/")) {
+    creator_prefix = "";
+  } else {
+    return NULL;
+  }
+
+  nick = g_strdup_printf ("%s%s", creator_prefix,
+      license_ref + sizeof (CC_LICENSE_REF_PREFIX) - 1);
+  g_strdelimit (nick, "/", ' ');
+  g_strchomp (nick);
+  for (c = nick; *c != '\0'; ++c)
+    *c = g_ascii_toupper (*c);
+
+  GST_LOG ("%s => nick %s", license_ref, nick);
+  res = g_intern_string (nick); /* for convenience */
+  g_free (nick);
+
+  return res;
+}
+
+/**
+ * gst_tag_get_license_title:
+ * @license_ref: a license reference string in form of a URI,
+ *     e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the title of a license, which is a short translated description
+ * of the license's features (generally not very pretty though).
+ *
+ * Returns: the title of the license, or NULL if the license is unknown or
+ *    no title is available.
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_title (const gchar * license_ref)
+{
+  int idx;
+
+  g_return_val_if_fail (license_ref != NULL, NULL);
+
+  idx = gst_tag_get_license_idx (license_ref, NULL);
+
+  if (idx < 0 || licenses[idx].title_idx < 0)
+    return NULL;
+
+  return gst_license_str_translate (&license_strings[licenses[idx].title_idx]);
+}
+
+/**
+ * gst_tag_get_license_description:
+ * @license_ref: a license reference string in form of a URI,
+ *     e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the description of a license, which is a translated description
+ * of the license's main features.
+ *
+ * Returns: the description of the license, or NULL if the license is unknown
+ *    or a description is not available.
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_description (const gchar * license_ref)
+{
+  int idx;
+
+  g_return_val_if_fail (license_ref != NULL, NULL);
+
+  idx = gst_tag_get_license_idx (license_ref, NULL);
+
+  if (idx < 0 || licenses[idx].desc_idx < 0)
+    return NULL;
+
+  return gst_license_str_translate (&license_strings[licenses[idx].desc_idx]);
+}
+
+/**
+ * gst_tag_get_license_jurisdiction:
+ * @license_ref: a license reference string in form of a URI,
+ *     e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the jurisdiction code of a license. This is usually a two-letter
+ * ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
+ * for which no code exists and which is thus represented as "scotland".
+ *
+ * Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de,
+ * dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
+ * pt, scotland, se, si, tw, uk, us, za.
+ *
+ * Returns: the jurisdiction code of the license, or NULL if the license is
+ *    unknown or is not specific to a particular jurisdiction.
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_jurisdiction (const gchar * license_ref)
+{
+  const gchar *jurisdiction;
+  int idx;
+
+  g_return_val_if_fail (license_ref != NULL, NULL);
+
+  idx = gst_tag_get_license_idx (license_ref, &jurisdiction);
+  return (idx < 0) ? NULL : jurisdiction;
+}
+
+/**
+ * gst_tag_get_license_version:
+ * @license_ref: a license reference string in form of a URI,
+ *     e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the version of a license.
+ *
+ * Returns: the version of the license, or NULL if the license is not known or
+ *    has no version
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_version (const gchar * license_ref)
+{
+  int idx;
+
+  g_return_val_if_fail (license_ref != NULL, NULL);
+
+  idx = gst_tag_get_license_idx (license_ref, NULL);
+  if (idx < 0)
+    return NULL;
+
+#define LICENSE_FLAG_CC_OR_FSF \
+ (GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE|\
+  GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE)
+
+  /* e.g. publicdomain isn't versioned */
+  if (!(licenses[idx].flags & LICENSE_FLAG_CC_OR_FSF))
+    return NULL;
+
+  /* KISS for now... */
+  if (strstr (licenses[idx].ref, "/1.0/"))
+    return "1.0";
+  else if (strstr (licenses[idx].ref, "/2.0/"))
+    return "2.0";
+  else if (strstr (licenses[idx].ref, "/2.1/"))
+    return "2.1";
+  else if (strstr (licenses[idx].ref, "/2.5/"))
+    return "2.5";
+  else if (strstr (licenses[idx].ref, "/3.0/"))
+    return "3.0";
+
+  GST_ERROR ("Could not determine version for ref '%s'", license_ref);
+  return NULL;
+}
+
+GType
+gst_tag_license_flags_get_type (void)
+{
+  /* FIXME: we should really be using glib-mkenums for this.. */
+#define C_FLAGS(v) ((guint) v)
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_TAG_LICENSE_PERMITS_REPRODUCTION),
+        "GST_TAG_LICENSE_PERMITS_REPRODUCTION", "permits-reproduction"},
+    {C_FLAGS (GST_TAG_LICENSE_PERMITS_DISTRIBUTION),
+        "GST_TAG_LICENSE_PERMITS_DISTRIBUTION", "permits-distribution"},
+    {C_FLAGS (GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS),
+          "GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS",
+        "permits-derivative-works"},
+    {C_FLAGS (GST_TAG_LICENSE_PERMITS_SHARING),
+        "GST_TAG_LICENSE_PERMITS_SHARING", "permits-sharing"},
+    {C_FLAGS (GST_TAG_LICENSE_REQUIRES_NOTICE),
+        "GST_TAG_LICENSE_REQUIRES_NOTICE", "requires-notice"},
+    {C_FLAGS (GST_TAG_LICENSE_REQUIRES_ATTRIBUTION),
+        "GST_TAG_LICENSE_REQUIRES_ATTRIBUTION", "requires-attributions"},
+    {C_FLAGS (GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE),
+        "GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE", "requires-share-alike"},
+    {C_FLAGS (GST_TAG_LICENSE_REQUIRES_SOURCE_CODE),
+        "GST_TAG_LICENSE_REQUIRES_SOURCE_CODE", "requires-source-code"},
+    {C_FLAGS (GST_TAG_LICENSE_REQUIRES_COPYLEFT),
+        "GST_TAG_LICENSE_REQUIRES_COPYLEFT", "requires-copyleft"},
+    {C_FLAGS (GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT),
+          "GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT",
+        "requires-lesser-copyleft"},
+    {C_FLAGS (GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE),
+          "GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE",
+        "prohibits-commercial-use"},
+    {C_FLAGS (GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE),
+          "GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE",
+        "prohibits-high-income-nation-use"},
+    {C_FLAGS (GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE),
+          "GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE",
+        "creative-commons-license"},
+    {C_FLAGS (GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE),
+          "GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE",
+        "free-software-foundation-license"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstTagLicenseFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
diff --git a/gst-libs/gst/tag/mklicensestables.c b/gst-libs/gst/tag/mklicensestables.c
new file mode 100644 (file)
index 0000000..66249d9
--- /dev/null
@@ -0,0 +1,890 @@
+/* GStreamer License Utility Functions
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/* mklicensestables.c:
+ * little program that reads liblicense's license RDF files and outputs tables
+ * with the most important information, so we don't have to parse megabytes
+ * of mostly redundant RDF files to get some basic information (and vendors
+ * don't have to ship it all).
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "tag.h"
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+/* TODO: we can merge some of the jurisdiction-only license table entries
+ * into one entry with multiple jurisdictions and without the 'generic' flag,
+ * .e.g. by-nc-nd/2.5/es + by-nc-nd/2.5/au => by-nc-nd/2.5/{es,au} */
+
+#define LIBLICENSE_DATA_PREFIX "/usr/share/liblicense/licenses"
+
+static GHashTable *unknown_sources;     /* NULL */
+
+static GList *licenses;         /* NULL */
+
+/* list of languages used for translations */
+static GList *langs;            /* NULL */
+
+/* keep in sync with licenses.c */
+static const gchar jurisdictions[] =
+    "ar\000at\000au\000be\000bg\000br\000ca\000ch\000cl\000cn\000co\000de\000"
+    "dk\000es\000fi\000fr\000hr\000hu\000il\000in\000it\000jp\000kr\000mk\000"
+    "mt\000mx\000my\000nl\000pe\000pl\000pt\000scotland\000se\000si\000tw\000"
+    "uk\000us\000za";
+
+/* keep in sync with gst_tag_get_license_version() */
+static const gchar known_versions[] = "1.0/2.0/2.1/2.5/3.0/";
+
+/* is this license 'generic' (and a base for any of the supported
+ * jurisdictions), or jurisdiction-specific only? */
+#define JURISDICTION_GENERIC (G_GUINT64_CONSTANT (1) << 63)
+
+typedef struct
+{
+  gchar *ref;
+  guint64 jurisdiction;
+  gchar *jurisdiction_suffix;   /* if not generic (e.g. "jp/") */
+  gchar *legalcode;
+  gchar *version;
+  gchar *replaced_by;
+  gchar *source;
+
+  GstTagLicenseFlags flags;
+
+  gboolean deprecated;
+
+  GHashTable *titles;
+  GHashTable *descriptions;
+
+  /* for processing */
+  const gchar *cur_lang;
+  gboolean packed_into_source;
+
+  /* list of licenses packed into this one (ie. this is the source of those) */
+  GList *derived;
+} License;
+
+static GstTagLicenseFlags
+ref_to_flag (const gchar * ref)
+{
+  if (strcmp (ref, "http://creativecommons.org/ns#Reproduction") == 0)
+    return GST_TAG_LICENSE_PERMITS_REPRODUCTION;
+  if (strcmp (ref, "http://creativecommons.org/ns#Distribution") == 0)
+    return GST_TAG_LICENSE_PERMITS_DISTRIBUTION;
+  if (strcmp (ref, "http://creativecommons.org/ns#DerivativeWorks") == 0)
+    return GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS;
+  if (strcmp (ref, "http://creativecommons.org/ns#Sharing") == 0)
+    return GST_TAG_LICENSE_PERMITS_SHARING;
+  if (strcmp (ref, "http://creativecommons.org/ns#Notice") == 0)
+    return GST_TAG_LICENSE_REQUIRES_NOTICE;
+  if (strcmp (ref, "http://creativecommons.org/ns#Attribution") == 0)
+    return GST_TAG_LICENSE_REQUIRES_ATTRIBUTION;
+  if (strcmp (ref, "http://creativecommons.org/ns#ShareAlike") == 0)
+    return GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE;
+  if (strcmp (ref, "http://creativecommons.org/ns#SourceCode") == 0)
+    return GST_TAG_LICENSE_REQUIRES_SOURCE_CODE;
+  if (strcmp (ref, "http://creativecommons.org/ns#Copyleft") == 0)
+    return GST_TAG_LICENSE_REQUIRES_COPYLEFT;
+  if (strcmp (ref, "http://creativecommons.org/ns#LesserCopyleft") == 0)
+    return GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT;
+  if (strcmp (ref, "http://creativecommons.org/ns#CommercialUse") == 0)
+    return GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE;
+  if (strcmp (ref, "http://creativecommons.org/ns#HighIncomeNationUse") == 0)
+    return GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE;
+
+  g_error ("Unknown permits/requires/prohibits: %s\n", ref);
+  return 0;
+};
+
+static guint64
+ref_to_jurisdiction (const gchar * ref)
+{
+  const gchar *j = jurisdictions;
+  gchar *jur;
+  guint64 bit = 1;
+
+  jur = g_strdup (ref + strlen ("http://creativecommons.org/international/"));
+  g_strdelimit (jur, "/", '\0');
+  while (j < jurisdictions + sizeof (jurisdictions)) {
+    if (strcmp (j, jur) == 0) {
+      g_free (jur);
+      g_assert (bit != 0 && bit != JURISDICTION_GENERIC);
+      return bit;
+    }
+    j += strlen (j) + 1;
+    bit <<= 1;
+  }
+  g_error ("Unknown jurisdiction '%s'\n", ref);
+}
+
+typedef enum
+{
+  TAG_CC_LICENSE,
+  TAG_CC_JURISDICTION,
+  TAG_CC_LEGALCODE,
+  TAG_CC_PROHIBITS,
+  TAG_CC_REQUIRES,
+  TAG_CC_PERMITS,
+  TAG_CC_DEPRECATED_ON,
+  TAG_DC_CREATOR,
+  TAG_DC_SOURCE,
+  TAG_DC_TITLE,
+  TAG_DC_DESCRIPTION,
+  TAG_DCQ_HAS_VERSION,
+  TAG_DCQ_IS_REPLACED_BY,
+  TAG_RDF_RDF,
+  TAG_RDF_DESCRIPTION,
+} Tag;
+
+static const struct
+{
+  const gchar *element_name;
+  const gchar *attribute;
+  const Tag element_tag;
+} tag_map[] = {
+  {
+  "cc:License", "rdf:about", TAG_CC_LICENSE}, {
+  "cc:deprecatedOn", "rdf:datatype", TAG_CC_DEPRECATED_ON}, {
+  "cc:jurisdiction", "rdf:resource", TAG_CC_JURISDICTION}, {
+  "cc:legalcode", "rdf:resource", TAG_CC_LEGALCODE}, {
+  "cc:prohibits", "rdf:resource", TAG_CC_PROHIBITS}, {
+  "cc:requires", "rdf:resource", TAG_CC_REQUIRES}, {
+  "cc:permits", "rdf:resource", TAG_CC_PERMITS}, {
+  "dc:creator", "rdf:resource", TAG_DC_CREATOR}, {
+  "dc:source", "rdf:resource", TAG_DC_SOURCE}, {
+  "dc:title", "xml:lang", TAG_DC_TITLE}, {
+  "dc:description", "xml:lang", TAG_DC_DESCRIPTION}, {
+  "dcq:hasVersion", NULL, TAG_DCQ_HAS_VERSION}, {
+  "dcq:isReplacedBy", "rdf:resource", TAG_DCQ_IS_REPLACED_BY}, {
+  "rdf:RDF", NULL, TAG_RDF_RDF}, {
+  "rdf:Description", "rdf:about", TAG_RDF_DESCRIPTION},
+      /* these three are just for by-nc-nd_2.0_jp_.rdf */
+  {
+  "dc:isBasedOn", "rdf:resource", TAG_DC_SOURCE}, {
+  "dc:hasVersion", NULL, TAG_DCQ_HAS_VERSION}, {
+  "dc:isReplacedBy", "rdf:resource", TAG_DCQ_IS_REPLACED_BY}
+};
+
+static void
+parse_start (GMarkupParseContext * ctx, const gchar * element_name,
+    const gchar ** attr_names, const gchar ** attr_vals,
+    gpointer user_data, GError ** err)
+{
+  License *license = user_data;
+  const gchar *ref = NULL;
+  int i;
+
+  for (i = 0; i < G_N_ELEMENTS (tag_map); ++i) {
+    if (strcmp (element_name, tag_map[i].element_name) == 0)
+      break;
+  }
+
+  if (i == G_N_ELEMENTS (tag_map))
+    g_error ("Unexpected tag '%s'\n", element_name);
+
+  if (tag_map[i].attribute == NULL)
+    return;
+
+  if (!g_markup_collect_attributes (element_name, attr_names, attr_vals,
+          err, G_MARKUP_COLLECT_STRING, tag_map[i].attribute, &ref,
+          G_MARKUP_COLLECT_INVALID)) {
+    return;
+  }
+
+  switch (tag_map[i].element_tag) {
+    case TAG_CC_LICENSE:
+      if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+        g_error ("Unexpected license reference: %s\n", ref);
+      /* we assume one license per file, and CC license ref */
+      g_assert (license->ref == NULL);
+      license->ref = g_strdup (ref);
+      break;
+    case TAG_CC_JURISDICTION:
+      if (!g_str_has_prefix (ref, "http://creativecommons.org/international/"))
+        g_error ("Unknown license jurisdiction: %s\n", ref);
+      /* we assume one jurisdiction per license */
+      g_assert (license->jurisdiction == JURISDICTION_GENERIC);
+      license->jurisdiction = ref_to_jurisdiction (ref);
+      license->jurisdiction_suffix =
+          g_strdup (ref + strlen ("http://creativecommons.org/international/"));
+      break;
+    case TAG_CC_LEGALCODE:
+      if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+        g_error ("Unexpected legalcode reference: %s\n", ref);
+      /* we assume one legalcode per license */
+      g_assert (license->legalcode == NULL);
+      license->legalcode = g_strdup (ref);
+      break;
+    case TAG_DC_CREATOR:
+      if (strcmp (ref, "http://creativecommons.org") == 0) {
+        license->flags |= GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE;
+      } else if (strcmp (ref, "http://fsf.org") == 0) {
+        license->flags |= GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE;
+      } else {
+        g_error ("Unknown license creator: %s\n", ref);
+      }
+      break;
+    case TAG_CC_DEPRECATED_ON:
+      break;
+    case TAG_CC_PROHIBITS:
+    case TAG_CC_REQUIRES:
+    case TAG_CC_PERMITS:
+      license->flags |= ref_to_flag (ref);
+      break;
+    case TAG_DC_TITLE:{
+      gchar *cur_lang;
+
+      cur_lang = g_strdelimit (g_strdup (ref), "-", '_');
+      license->cur_lang = g_intern_string (cur_lang);
+      if (!g_list_find_custom (langs, cur_lang, (GCompareFunc) strcmp))
+        langs = g_list_prepend (langs, (gpointer) license->cur_lang);
+
+      g_free (cur_lang);
+      break;
+    }
+    case TAG_DC_DESCRIPTION:{
+      gchar *cur_lang;
+
+      cur_lang = g_strdelimit (g_strdup (ref), "-", '_');
+      license->cur_lang = g_intern_string (cur_lang);
+      if (!g_list_find_custom (langs, cur_lang, (GCompareFunc) strcmp))
+        langs = g_list_prepend (langs, (gpointer) license->cur_lang);
+
+      g_free (cur_lang);
+      break;
+    }
+    case TAG_DCQ_IS_REPLACED_BY:
+      /* we assume one replacer per license for now */
+      g_assert (license->replaced_by == NULL);
+      license->replaced_by = g_strdup (ref);
+      break;
+    case TAG_RDF_DESCRIPTION:
+      if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+        g_error ("Unexpected license reference: %s\n", ref);
+      if (license->ref != NULL && strcmp (license->ref, ref) != 0) {
+        gchar *f, *r = g_strdup (ref);
+
+        /* work around bug in some of the RDFs ... */
+        if ((f = strstr (r, "by-nc-nd"))) {
+          memcpy (f, "by-nd-nc", 8);
+        }
+        if (strcmp (license->ref, r) != 0) {
+          g_error ("rdf:Description chunk for other than current license");
+        }
+        g_free (r);
+      }
+      break;
+    case TAG_DC_SOURCE:
+      if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+        g_error ("Unexpected source reference: %s\n", ref);
+      /* we assume one source (for jurisdiction-specific versions) */
+      g_assert (license->source == NULL);
+      license->source = g_strdup (ref);
+      break;
+    default:
+      g_printerr ("unhandled start tag: %s\n", element_name);
+      break;
+  }
+}
+
+static void
+parse_text (GMarkupParseContext * ctx, const gchar * text, gsize text_len,
+    gpointer user_data, GError ** err)
+{
+  License *license = user_data;
+  const gchar *element_name, *found;
+  int i;
+
+  element_name = g_markup_parse_context_get_element (ctx);
+  for (i = 0; i < G_N_ELEMENTS (tag_map); ++i) {
+    if (strcmp (element_name, tag_map[i].element_name) == 0)
+      break;
+  }
+
+  if (i == G_N_ELEMENTS (tag_map))
+    g_error ("Unexpected tag '%s'\n", element_name);
+
+  switch (tag_map[i].element_tag) {
+    case TAG_CC_LICENSE:
+    case TAG_CC_JURISDICTION:
+    case TAG_CC_LEGALCODE:
+    case TAG_DC_CREATOR:
+    case TAG_CC_PROHIBITS:
+    case TAG_CC_REQUIRES:
+    case TAG_CC_PERMITS:
+    case TAG_RDF_RDF:
+    case TAG_RDF_DESCRIPTION:
+      break;
+    case TAG_DC_TITLE:
+      if (license->titles == NULL) {
+        license->titles = g_hash_table_new (g_str_hash, g_str_equal);
+      }
+      g_hash_table_insert (license->titles, (gpointer) license->cur_lang,
+          (gpointer) g_intern_string (text));
+      break;
+    case TAG_DC_DESCRIPTION:{
+      gchar *txt = g_strdup (text);
+
+      if (license->descriptions == NULL) {
+        license->descriptions = g_hash_table_new (g_str_hash, g_str_equal);
+      }
+      g_strdelimit (txt, "\n", ' ');
+      g_hash_table_insert (license->descriptions, (gpointer) license->cur_lang,
+          (gpointer) g_intern_string (txt));
+      g_free (txt);
+      break;
+    }
+    case TAG_DCQ_HAS_VERSION:
+      /* we assume one version per license */
+      g_assert (license->version == NULL);
+      license->version = g_strdup (text);
+      found = strstr (known_versions, license->version);
+      if (found == NULL || found[strlen (license->version)] != '/')
+        g_error ("Unexpected version '%s', please add to table.", text);
+      break;
+    case TAG_CC_DEPRECATED_ON:
+      license->deprecated = TRUE;
+      break;
+    case TAG_DC_SOURCE:        // FIXME
+    default:
+      g_print ("text (%s) (%s): '%s'\n", element_name, license->cur_lang, text);
+  }
+}
+
+static void
+parse_passthrough (GMarkupParseContext * ctx, const gchar * text, gsize len,
+    gpointer user_data, GError ** err)
+{
+  if (!g_str_has_prefix (text, "<?xml ")) {
+    g_error ("Unexpected passthrough text: %s\n", text);
+  }
+}
+
+static void
+parse_error (GMarkupParseContext * ctx, GError * err, gpointer data)
+{
+  g_error ("parse error: %s\n", err->message);
+}
+
+static const GMarkupParser license_rdf_parser = {
+  parse_start, NULL, parse_text, parse_passthrough, parse_error
+};
+
+static void
+parse_license_rdf (const gchar * fn, const gchar * rdf)
+{
+  GMarkupParseContext *ctx;
+  License *license;
+  GError *err = NULL;
+
+  if (!g_utf8_validate (rdf, -1, NULL)) {
+    g_error ("%s is not valid UTF-8\n", fn);
+  }
+
+  license = g_new0 (License, 1);
+
+  /* mark as generic until proven otherwise */
+  license->jurisdiction = JURISDICTION_GENERIC;
+
+  ctx = g_markup_parse_context_new (&license_rdf_parser,
+      G_MARKUP_TREAT_CDATA_AS_TEXT, license, NULL);
+
+  /* g_print ("Parsing %s\n", fn); */
+
+  if (!g_markup_parse_context_parse (ctx, rdf, -1, &err)) {
+    g_error ("Error parsing file %s: %s\n", fn, err->message);
+  }
+
+  licenses = g_list_append (licenses, license);
+
+  g_markup_parse_context_free (ctx);
+}
+
+static void
+read_licenses (const gchar * licenses_dir)
+{
+  const gchar *name;
+  GError *err = NULL;
+  GDir *dir;
+
+  dir = g_dir_open (licenses_dir, 0, &err);
+
+  if (dir == NULL)
+    g_error ("Failed to g_dir_open('%s'): %s", licenses_dir, err->message);
+
+  while ((name = g_dir_read_name (dir))) {
+    gchar *fn, *rdf;
+
+    fn = g_build_filename (licenses_dir, name, NULL);
+    if (g_file_get_contents (fn, &rdf, NULL, &err)) {
+      parse_license_rdf (fn, rdf);
+      g_free (rdf);
+    } else {
+      g_printerr ("Could not read file '%s': %s\n", fn, err->message);
+      g_error_free (err);
+      err = NULL;
+    }
+    g_free (fn);
+  }
+
+  g_dir_close (dir);
+}
+
+static License *
+find_license (const gchar * ref)
+{
+  GList *l;
+
+  if (!g_str_has_prefix (ref, "http://creativecommons.org/"))
+    return NULL;
+
+  for (l = licenses; l != NULL; l = l->next) {
+    License *license = l->data;
+
+    if (strcmp (license->ref, ref) == 0)
+      return license;
+  }
+
+  return NULL;
+}
+
+static int
+license_ref_cmp (License * a, License * b)
+{
+  return strcmp (a->ref, b->ref);
+}
+
+#define STRING_TABLE_MAX_STRINGS 100
+typedef struct
+{
+  GString *s;
+  guint num_escaped;
+  guint num_strings;
+  guint indices[STRING_TABLE_MAX_STRINGS];
+  gchar *strings[STRING_TABLE_MAX_STRINGS];     /* unescaped strings */
+} StringTable;
+
+static StringTable *
+string_table_new (void)
+{
+  StringTable *t = g_new0 (StringTable, 1);
+
+  t->s = g_string_new (NULL);
+  return t;
+}
+
+static void
+string_table_free (StringTable * t)
+{
+  int i;
+
+  for (i = 0; i < t->num_strings; ++i)
+    g_free (t->strings[i]);
+
+  g_string_free (t->s, TRUE);
+  g_free (t);
+}
+
+static guint
+string_table_add_string (StringTable * t, const gchar * str)
+{
+  const gchar *s;
+  guint idx, i;
+
+  /* check if we already have this string */
+  for (i = 0; i < t->num_strings; ++i) {
+    if (strcmp (t->strings[i], str) == 0)
+      return t->indices[i];
+  }
+
+  /* save current offset */
+  idx = t->s->len;
+
+  /* adjust for fact that \000 is 4 chars now but will take up only 1 later */
+  idx -= t->num_escaped * 3;
+
+  /* append one char at a time, making sure to escape UTF-8 characters */
+  for (s = str; s != NULL && *s != '\0'; ++s) {
+    if (g_ascii_isprint (*s) && *s != '"' && *s != '\\') {
+      g_string_append_c (t->s, *s);
+    } else {
+      g_string_append_printf (t->s, "\\%03o", (unsigned char) *s);
+      t->num_escaped++;
+    }
+  }
+  g_string_append (t->s, "\\000");
+  t->num_escaped++;
+
+  t->indices[t->num_strings] = idx;
+  t->strings[t->num_strings] = g_strdup (str);
+  ++t->num_strings;
+
+  return idx;
+}
+
+static void
+string_table_print (StringTable * t)
+{
+  const gchar *s;
+
+  s = t->s->str;
+  while (s != NULL && *s != '\0') {
+    gchar line[74], *lastesc;
+    guint left;
+
+    left = strlen (s);
+    g_strlcpy (line, s, MIN (left, sizeof (line)));
+    s += sizeof (line) - 1;
+    /* avoid partial escaped codes at the end of a line */
+    if ((lastesc = strrchr (line, '\\')) && strlen (lastesc) < 4) {
+      s -= strlen (lastesc);
+      *lastesc = '\0';
+    }
+    g_print ("  \"%s\"", line);
+    if (left < 74)
+      break;
+    g_print ("\n");
+  }
+  g_print (";\n");
+}
+
+/* skip translation if translated string for e.g. "fr_ca" is same as for "fr" */
+static gboolean
+skip_translation (GHashTable * ht_strings, const gchar * lang,
+    const gchar * trans)
+{
+  const gchar *simple_trans;
+  gchar *simple_lang;
+
+  if (strchr (lang, '_') == NULL)
+    return FALSE;
+
+  simple_lang = g_strdup (lang);
+  g_strdelimit (simple_lang, "_", '\0');
+
+  simple_trans = g_hash_table_lookup (ht_strings, (gpointer) simple_lang);
+  g_free (simple_lang);
+
+  return (simple_trans != NULL && strcmp (trans, simple_trans) == 0);
+}
+
+static GVariant *
+create_translation_dict (GHashTable * ht_strings, const gchar * en)
+{
+  GVariantBuilder array;
+  guint count = 0;
+  GList *l;
+
+  g_variant_builder_init (&array, G_VARIANT_TYPE_ARRAY);
+
+  for (l = langs; l != NULL; l = l->next) {
+    const gchar *trans, *lang;
+
+    lang = (const gchar *) l->data;
+    trans = g_hash_table_lookup (ht_strings, (gpointer) lang);
+    if (trans != NULL && *trans != '\0' && strcmp (en, trans) != 0 &&
+        !skip_translation (ht_strings, lang, trans)) {
+      /* g_print ("%s (%s) => %s\n", en, lang, trans); */
+      g_variant_builder_add_value (&array,
+          g_variant_new_dict_entry (g_variant_new_string (lang),
+              g_variant_new_string (trans)));
+      ++count;
+    }
+  }
+
+  if (count == 0) {
+    g_variant_builder_clear (&array);
+    return NULL;
+  }
+
+  return g_variant_builder_end (&array);
+}
+
+static void
+write_translations_dictionary (GList * licenses, const gchar * dict_filename)
+{
+  /* maps C string => (dictionary of: locale => translation) */
+  GVariantBuilder array;
+  /* maps C string => boolean (if it's in the dictionary already */
+  GHashTable *translations;
+  GVariant *var;
+  GList *l;
+  FILE *f;
+
+  /* sort langs for prettiness / to make variant dumps easier to read */
+  langs = g_list_sort (langs, (GCompareFunc) strcmp);
+
+  g_variant_builder_init (&array, G_VARIANT_TYPE_ARRAY);
+
+  translations = g_hash_table_new (g_str_hash, g_str_equal);
+
+  for (l = licenses; l != NULL; l = l->next) {
+    const gchar *en;
+    License *license;
+
+    license = l->data;
+
+    if (license->packed_into_source)
+      continue;
+
+    /* add title + translations */
+    en = g_hash_table_lookup (license->titles, "en");
+    g_assert (en != NULL);
+
+    /* check if we already have added translations for this string */
+    if (!g_hash_table_lookup (translations, (gpointer) en)) {
+      GVariant *trans;
+
+      trans = create_translation_dict (license->titles, en);
+      if (trans != NULL) {
+        g_variant_builder_add_value (&array,
+            g_variant_new_dict_entry (g_variant_new_string (en), trans));
+        g_hash_table_insert (translations, (gpointer) en,
+            GINT_TO_POINTER (TRUE));
+      }
+    }
+
+    /* add description + translations */
+    if (license->descriptions == NULL)
+      continue;
+
+    en = g_hash_table_lookup (license->descriptions, "en");
+    g_assert (en != NULL);
+
+    /* check if we already have added translations for this string */
+    if (!g_hash_table_lookup (translations, (gpointer) en)) {
+      GVariant *trans;
+
+      trans = create_translation_dict (license->descriptions, en);
+      if (trans != NULL) {
+        g_variant_builder_add_value (&array,
+            g_variant_new_dict_entry (g_variant_new_string (en), trans));
+        g_hash_table_insert (translations, (gpointer) en,
+            GINT_TO_POINTER (TRUE));
+      }
+    }
+  }
+
+  var = g_variant_builder_end (&array);
+
+  f = fopen (dict_filename, "wb");
+  if (fwrite (g_variant_get_data (var), g_variant_get_size (var), 1, f) != 1) {
+    g_error ("failed to write dict to file: %s", g_strerror (errno));
+  }
+  fclose (f);
+
+  g_printerr ("Wrote dictionary to %s, size: %u, type: %s\n", dict_filename,
+      (guint) g_variant_get_size (var), (gchar *) g_variant_get_type (var));
+
+  g_variant_unref (var);
+  g_hash_table_destroy (translations);
+}
+
+int
+main (int argc, char **argv)
+{
+  gchar *translation_dict_fn = NULL;
+  GOptionContext *ctx;
+  GOptionEntry options[] = {
+    {"translation-dictionary", 0, 0, G_OPTION_ARG_FILENAME,
+          &translation_dict_fn, "Filename of translations dictionary to write",
+        NULL},
+    {NULL}
+  };
+  StringTable *string_table;
+  GError *err = NULL;
+  GList *l;
+  int idx = 0;
+
+  g_type_init ();
+
+  ctx = g_option_context_new ("");
+  g_option_context_add_main_entries (ctx, options, NULL);
+  if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
+    g_printerr ("Error initializing: %s\n", err->message);
+    exit (1);
+  }
+  g_option_context_free (ctx);
+
+  read_licenses (LIBLICENSE_DATA_PREFIX);
+
+  g_printerr ("%d licenses\n", g_list_length (licenses));
+
+  unknown_sources = g_hash_table_new (g_str_hash, g_str_equal);
+
+  for (l = licenses; l != NULL; l = l->next) {
+    License *license = l->data;
+
+    /* if the license has as source, check if we can 'pack' it into the
+     * original license as a jurisdiction-specific variant */
+    if (license->source != NULL) {
+      License *source = find_license (license->source);
+
+      if (source != NULL) {
+        if (source->flags != license->flags) {
+          g_printerr ("Source and derived license have different flags:\n"
+              "\t0x%08x : %s\n\t0x%08x : %s\n", source->flags, source->ref,
+              license->flags, license->ref);
+          source = NULL;
+        } else {
+          if (source->descriptions == NULL) {
+            /* neither should the derived one then */
+            g_assert (license->descriptions == NULL);
+          } else {
+            /* make sure we're not settling for fewer descriptions than
+             * there are */
+            g_assert (g_hash_table_size (license->titles) <=
+                g_hash_table_size (source->titles));
+            g_assert (g_hash_table_size (license->descriptions) <=
+                g_hash_table_size (source->descriptions));
+          }
+        }
+      } else {
+        /* a source is referenced that we haven't encountered
+         * (possibly a referencing bug? seems to happen e.g. when there's a
+         * 2.1 version of a jurisdiction license and it refers to a 2.1
+         * source version, but there's only a 2.0 or 2.5 source version. So
+         * maybe it's supposed to refer to the 2.0 source then, who knows) */
+        if (!g_hash_table_lookup (unknown_sources, license->source)) {
+          g_printerr ("Unknown source license %s\n", license->source);
+          g_hash_table_insert (unknown_sources, g_strdup (license->source),
+              GUINT_TO_POINTER (TRUE));
+        }
+        /* g_print ("Unknown source license %s referenced from %s\n",
+         * license->source, license->ref); */
+      }
+
+      /* should we pack this into the source or not */
+      if (source != NULL) {
+        source->jurisdiction |= license->jurisdiction;
+        source->derived = g_list_insert_sorted (source->derived, license,
+            (GCompareFunc) license_ref_cmp);
+        license->packed_into_source = TRUE;
+      }
+    } else {
+      /* no source license */
+      if (license->titles == NULL)
+        g_error ("License has no titles: %s\n", license->ref);
+      if (license->descriptions == NULL);
+      g_printerr ("License %s has no descriptions!\n", license->ref);
+    }
+  }
+
+  licenses = g_list_sort (licenses, (GCompareFunc) license_ref_cmp);
+
+  string_table = string_table_new ();
+
+  g_print ("/* created by mklicensestables.c */\n");
+  g_print ("static const struct {\n"
+      "  /* jurisdictions in addition to the generic version, bitfield */\n"
+      "  const guint64             jurisdictions;\n"
+      "  const GstTagLicenseFlags  flags;\n"
+      "  /* the bit after http://creativecommons.org/licenses/ */\n"
+      "  const gchar               ref[18];\n"
+      "  gint16                    title_idx;  /* index in string table */\n"
+      "  gint16                    desc_idx;   /* index in string table */\n"
+      "} licenses[] = {\n");
+
+  for (l = licenses; l != NULL; l = l->next) {
+    const gchar *title_en, *desc_en;
+    int idx_title, idx_desc;
+    License *license;
+
+    license = l->data;
+
+    if (license->packed_into_source)
+      continue;
+
+    title_en = g_hash_table_lookup (license->titles, "en");
+    g_assert (title_en != NULL);
+    idx_title = string_table_add_string (string_table, title_en);
+    g_assert (idx_title <= G_MAXINT16);
+
+    if (license->descriptions != NULL) {
+      desc_en = g_hash_table_lookup (license->descriptions, "en");
+      g_assert (desc_en != NULL);
+      idx_desc = string_table_add_string (string_table, desc_en);
+      g_assert (idx_desc <= G_MAXINT16);
+    } else {
+      idx_desc = -1;
+    }
+
+    /* output comments with license refs covered by the next stanza */
+    if (license->derived != NULL) {
+      GList *d;
+
+      g_print ("  /* %2d %s\n", idx, license->ref);
+
+      for (d = license->derived; d != NULL; d = d->next) {
+        License *derived_license = d->data;
+
+        g_print ("   * %2d %s%s\n", idx, derived_license->ref,
+            (d->next == NULL) ? " */" : "");
+      }
+    } else {
+      g_print ("  /* %2d %s */\n", idx, license->ref);
+    }
+    /* output essential data */
+    {
+      gchar *ref;
+
+      ref =
+          g_strdup (license->ref +
+          strlen ("http://creativecommons.org/licenses/"));
+
+      /* remove jurisdiction suffix from ref if this is non-generic, since
+       * the suffix is already contained in the jurisdiction flags */
+      if (license->jurisdiction_suffix != NULL) {
+        gsize suffix_len = strlen (license->jurisdiction_suffix);
+        gchar *cutoff;
+
+        cutoff = ref + strlen (ref) - suffix_len;
+        g_assert (!strncmp (cutoff, license->jurisdiction_suffix, suffix_len));
+        g_assert (cutoff[suffix_len - 1] == '/');
+        g_assert (cutoff[suffix_len] == '\0');
+        *cutoff = '\0';
+      }
+
+      g_print ("  { 0x%016" G_GINT64_MODIFIER "x, 0x%08x, \"%s\", %d, %d }%s\n",
+          license->jurisdiction, license->flags, ref, idx_title, idx_desc,
+          (l->next != NULL) ? "," : "");
+
+      g_free (ref);
+    }
+    ++idx;
+  }
+  g_print ("};\n");
+
+  g_print ("\nstatic const gchar license_strings[] =\n");
+  string_table_print (string_table);
+  string_table_free (string_table);
+  string_table = NULL;
+
+  if (translation_dict_fn != NULL) {
+    write_translations_dictionary (licenses, translation_dict_fn);
+  }
+
+  return 0;
+}
index 219fe85..057378c 100644 (file)
@@ -1,5 +1,6 @@
 /* GStreamer
  * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
+ * Copyright (C) 2006-2011 Tim-Philipp Müller <tim centricular net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -441,11 +442,20 @@ typedef enum {
 #define GST_TYPE_TAG_IMAGE_TYPE  (gst_tag_image_type_get_type ())
 GType   gst_tag_image_type_get_type (void);
 
+/**
+ * GST_TAG_ID3V2_HEADER_SIZE:
+ *
+ * ID3V2 header size considered minimum input for some functions such as
+ * gst_tag_list_from_id3v2_tag() and gst_tag_get_id3v2_tag_size() for example.
+ *
+ * Since: 0.10.36
+ */
+#define GST_TAG_ID3V2_HEADER_SIZE            10
 
 /* functions for vorbis comment manipulation */
 
-G_CONST_RETURN gchar *  gst_tag_from_vorbis_tag                 (const gchar *          vorbis_tag);
-G_CONST_RETURN gchar *  gst_tag_to_vorbis_tag                   (const gchar *          gst_tag);
+const gchar *           gst_tag_from_vorbis_tag                 (const gchar *          vorbis_tag);
+const gchar *           gst_tag_to_vorbis_tag                   (const gchar *          gst_tag);
 void                    gst_vorbis_tag_add                      (GstTagList *           list, 
                                                                  const gchar *          tag, 
                                                                  const gchar *          value);
@@ -465,20 +475,28 @@ GstBuffer *             gst_tag_list_to_vorbiscomment_buffer    (const GstTagLis
 
 /* functions for ID3 tag manipulation */
 
+/* FIXME 0.11: inconsistent API naming: gst_tag_list_new_from_id3v1(), gst_tag_list_from_*_buffer(),
+ * gst_tag_list_from_id3v2_tag(). Also, note gst.tag.list_xyz() namespace vs. gst.tag_list_xyz(),
+ * which is a bit confusing and possibly doesn't map too well */
+
 guint                   gst_tag_id3_genre_count                 (void);
-G_CONST_RETURN gchar *  gst_tag_id3_genre_get                   (const guint            id);
+const gchar *           gst_tag_id3_genre_get                   (const guint            id);
 GstTagList *            gst_tag_list_new_from_id3v1             (const guint8 *         data);
 
-G_CONST_RETURN gchar *  gst_tag_from_id3_tag                    (const gchar *          id3_tag);
-G_CONST_RETURN gchar *  gst_tag_from_id3_user_tag               (const gchar *          type,
+const gchar *           gst_tag_from_id3_tag                    (const gchar *          id3_tag);
+const gchar *           gst_tag_from_id3_user_tag               (const gchar *          type,
                                                                  const gchar *          id3_user_tag);
-G_CONST_RETURN gchar *  gst_tag_to_id3_tag                      (const gchar *          gst_tag);
+const gchar *           gst_tag_to_id3_tag                      (const gchar *          gst_tag);
 
 gboolean                gst_tag_list_add_id3_image (GstTagList   * tag_list,
                                                     const guint8 * image_data,
                                                     guint          image_data_len,
                                                     guint          id3_picture_type);
 
+GstTagList *            gst_tag_list_from_id3v2_tag (GstBuffer * buffer);
+
+guint                   gst_tag_get_id3v2_tag_size  (GstBuffer * buffer);
+
 /* functions to  convert GstBuffers with xmp packets contents to GstTagLists and back */
 GstTagList *            gst_tag_list_from_xmp_buffer  (const GstBuffer *  buffer);
 GstBuffer *             gst_tag_list_to_xmp_buffer    (const GstTagList * list,
@@ -544,6 +562,84 @@ const gchar *  gst_tag_get_language_code_iso_639_2T (const gchar * lang_code);
 #define gst_tag_get_language_code(lang_code) \
     gst_tag_get_language_code_iso_639_1(lang_code)
 
+
+/* functions to deal with (mostly) Creative Commons licenses */
+
+/**
+ * GstTagLicenseFlags:
+ * @GST_TAG_LICENSE_PERMITS_REPRODUCTION: making multiple copies
+ *     is allowed
+ * @GST_TAG_LICENSE_PERMITS_DISTRIBUTION: distribution, public display
+ *     and public performance are allowed
+ * @GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS: distribution of derivative
+ *     works is allowed
+ * @GST_TAG_LICENSE_PERMITS_SHARING: commercial derivatives are allowed,
+ *     but only non-commercial distribution is allowed
+ * @GST_TAG_LICENSE_REQUIRES_NOTICE: copyright and license notices
+ *     must be kept intact
+ * @GST_TAG_LICENSE_REQUIRES_ATTRIBUTION: credit must be given to
+ *     copyright holder and/or author
+ * @GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE: derivative works must be
+ *     licensed under the same terms or compatible terms as the original work
+ * @GST_TAG_LICENSE_REQUIRES_SOURCE_CODE: source code (the preferred
+ *     form for making modifications) must be provided when exercising some
+ *     rights granted by the license
+ * @GST_TAG_LICENSE_REQUIRES_COPYLEFT: derivative and combined works
+ *     must be licensed under specified terms, similar to those of the original
+ *     work
+ * @GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT: derivative works must be
+ *     licensed under specified terms, with at least the same conditions as
+ *     the original work; combinations with the work may be licensed under
+ *     different terms
+ * @GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE: exercising rights for
+ *     commercial purposes is prohibited
+ * @GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE: use in a
+ *     non-developing country is prohibited
+ * @GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE: this license was created
+ *     by the Creative Commons project
+ * @GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE: this license was
+ *     created by the Free Software Foundation (FSF)
+ *
+ * See http://creativecommons.org/ns for more information.
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+  GST_TAG_LICENSE_PERMITS_REPRODUCTION             = (1 << 0),
+  GST_TAG_LICENSE_PERMITS_DISTRIBUTION             = (1 << 1),
+  GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS         = (1 << 2),
+  GST_TAG_LICENSE_PERMITS_SHARING                  = (1 << 3),
+
+  GST_TAG_LICENSE_REQUIRES_NOTICE                  = (1 << 8),
+  GST_TAG_LICENSE_REQUIRES_ATTRIBUTION             = (1 << 9),
+  GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE             = (1 << 10),
+  GST_TAG_LICENSE_REQUIRES_SOURCE_CODE             = (1 << 11),
+  GST_TAG_LICENSE_REQUIRES_COPYLEFT                = (1 << 12),
+  GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT         = (1 << 13),
+
+  GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE         = (1 << 16),
+  GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE = (1 << 17),
+
+  GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE         = (1 << 24),
+  GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE = (1 << 25)
+} GstTagLicenseFlags;
+
+gchar **            gst_tag_get_licenses (void);
+
+GstTagLicenseFlags  gst_tag_get_license_flags (const gchar * license_ref);
+
+const gchar *       gst_tag_get_license_nick  (const gchar * license_ref);
+
+const gchar *       gst_tag_get_license_title (const gchar * license_ref);
+
+const gchar *       gst_tag_get_license_version (const gchar * license_ref);
+
+const gchar *       gst_tag_get_license_description  (const gchar * license_ref);
+
+const gchar *       gst_tag_get_license_jurisdiction (const gchar * license_ref);
+
+GType               gst_tag_license_flags_get_type (void);
+
 G_END_DECLS
 
 #endif /* __GST_TAG_TAG_H__ */
index 51f3bc7..80285ae 100644 (file)
@@ -26,6 +26,7 @@
 #include <gst/base/gsttypefindhelper.h>
 #include <gst/gst.h>
 #include "tag.h"
+#include "id3v2.h"
 
 #include <string.h>
 
@@ -189,6 +190,10 @@ gst_tag_register_tags_internal (gpointer unused)
       G_TYPE_DOUBLE, _("image vertical ppi"),
       _("Media (image/video) intended vertical pixel density in ppi"), NULL);
 
+  gst_tag_register (GST_TAG_ID3V2_FRAME, GST_TAG_FLAG_META,
+      GST_TYPE_BUFFER, _("ID3v2 frame"), _("unparsed id3v2 tag frame"),
+      gst_tag_merge_use_first);
+
   return NULL;
 }
 
@@ -496,6 +501,7 @@ gst_tag_freeform_string_to_utf8 (const gchar * data, gint size,
       /* fallback in case iconv implementation doesn't support windows-1252
        * for some reason */
       if (err->code == G_CONVERT_ERROR_NO_CONVERSION) {
+        g_free (utf8);
         utf8 = g_convert (data, size, "UTF-8", "ISO-8859-1", &bytes_read,
             NULL, NULL);
       }
index 23282b8..10bf1f9 100644 (file)
@@ -1,4 +1,4 @@
-/* GStreamer XmpConfig
+/* GStreamer TagXmpWriter
  * Copyright (C) 2010 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@
  */
 
 /**
- * SECTION:gstxmpconfig
+ * SECTION:gsttagxmpwriter
  * @short_description: Interface for elements that provide XMP serialization
  *
  * <refsect2>
@@ -47,9 +47,21 @@ static GQuark tag_xmp_writer_key;
 typedef struct
 {
   GSList *schemas;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   GStaticMutex lock;
+#else
+  GMutex lock;
+#endif
 } GstTagXmpWriterData;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+#define GST_TAG_XMP_WRITER_DATA_LOCK(data) g_static_mutex_lock(&data->lock)
+#define GST_TAG_XMP_WRITER_DATA_UNLOCK(data) g_static_mutex_unlock(&data->lock)
+#else
+#define GST_TAG_XMP_WRITER_DATA_LOCK(data) g_mutex_lock(&data->lock)
+#define GST_TAG_XMP_WRITER_DATA_UNLOCK(data) g_mutex_unlock(&data->lock)
+#endif
+
 GType
 gst_tag_xmp_writer_get_type (void)
 {
@@ -116,8 +128,11 @@ gst_tag_xmp_writer_data_free (gpointer p)
     }
     g_slist_free (data->schemas);
   }
-
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   g_static_mutex_free (&data->lock);
+#else
+  g_mutex_clear (&data->lock);
+#endif
 
   g_slice_free (GstTagXmpWriterData, data);
 }
@@ -129,22 +144,37 @@ gst_tag_xmp_writer_get_data (GstTagXmpWriter * xmpconfig)
 
   data = g_object_get_qdata (G_OBJECT (xmpconfig), tag_xmp_writer_key);
   if (!data) {
+    /* make sure no other thread is creating a GstTagData at the same time */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
     static GStaticMutex create_mutex = G_STATIC_MUTEX_INIT;
 
-    /* make sure no other thread is creating a GstTagXmpWriterData at the same time */
     g_static_mutex_lock (&create_mutex);
+#else
+    static GMutex create_mutex; /* no initialisation required */
+
+    g_mutex_lock (&create_mutex);
+#endif
+
     data = g_object_get_qdata (G_OBJECT (xmpconfig), tag_xmp_writer_key);
     if (!data) {
       data = g_slice_new (GstTagXmpWriterData);
-      g_static_mutex_init (&data->lock);
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+      g_static_mutex_init (&data->lock);
+#else
+      g_mutex_init (&data->lock);
+#endif
       data->schemas = NULL;
       gst_tag_xmp_writer_data_add_all_schemas_unlocked (data);
 
       g_object_set_qdata_full (G_OBJECT (xmpconfig), tag_xmp_writer_key, data,
           gst_tag_xmp_writer_data_free);
     }
+#if !GLIB_CHECK_VERSION (2, 31, 0)
     g_static_mutex_unlock (&create_mutex);
+#else
+    g_mutex_unlock (&create_mutex);
+#endif
   }
 
   return data;
@@ -168,9 +198,9 @@ gst_tag_xmp_writer_add_all_schemas (GstTagXmpWriter * config)
 
   data = gst_tag_xmp_writer_get_data (config);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_LOCK (data);
   gst_tag_xmp_writer_data_add_all_schemas_unlocked (data);
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
 }
 
 /**
@@ -191,9 +221,9 @@ gst_tag_xmp_writer_add_schema (GstTagXmpWriter * config, const gchar * schema)
 
   data = gst_tag_xmp_writer_get_data (config);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_LOCK (data);
   gst_tag_xmp_writer_data_add_schema_unlocked (data, schema);
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
 }
 
 /**
@@ -217,14 +247,14 @@ gst_tag_xmp_writer_has_schema (GstTagXmpWriter * config, const gchar * schema)
 
   data = gst_tag_xmp_writer_get_data (config);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_LOCK (data);
   for (iter = data->schemas; iter; iter = g_slist_next (iter)) {
     if (strcmp ((const gchar *) iter->data, schema) == 0) {
       ret = TRUE;
       break;
     }
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
 
   return ret;
 }
@@ -250,7 +280,7 @@ gst_tag_xmp_writer_remove_schema (GstTagXmpWriter * config,
 
   data = gst_tag_xmp_writer_get_data (config);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_LOCK (data);
   for (iter = data->schemas; iter; iter = g_slist_next (iter)) {
     if (strcmp ((const gchar *) iter->data, schema) == 0) {
       g_free (iter->data);
@@ -258,7 +288,7 @@ gst_tag_xmp_writer_remove_schema (GstTagXmpWriter * config,
       break;
     }
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
 }
 
 /**
@@ -280,7 +310,7 @@ gst_tag_xmp_writer_remove_all_schemas (GstTagXmpWriter * config)
 
   data = gst_tag_xmp_writer_get_data (config);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_LOCK (data);
   if (data->schemas) {
     for (iter = data->schemas; iter; iter = g_slist_next (iter)) {
       g_free (iter->data);
@@ -288,7 +318,7 @@ gst_tag_xmp_writer_remove_all_schemas (GstTagXmpWriter * config)
     g_slist_free (data->schemas);
   }
   data->schemas = NULL;
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
 }
 
 GstBuffer *
@@ -304,7 +334,7 @@ gst_tag_xmp_writer_tag_list_to_xmp_buffer (GstTagXmpWriter * config,
 
   data = gst_tag_xmp_writer_get_data (config);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_LOCK (data);
   if (data->schemas) {
     gchar **array = g_new0 (gchar *, g_slist_length (data->schemas) + 1);
     if (array) {
@@ -316,7 +346,7 @@ gst_tag_xmp_writer_tag_list_to_xmp_buffer (GstTagXmpWriter * config,
       g_free (array);
     }
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
 
   return buf;
 }
index 6c89072..a7f6e4a 100644 (file)
@@ -27,11 +27,11 @@ G_BEGIN_DECLS
 #define GST_TYPE_TAG_XMP_WRITER \
   (gst_tag_xmp_writer_get_type ())
 #define GST_TAG_XMP_WRITER(obj) \
-  (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter))
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter))
 #define GST_TAG_XMP_WRITER_INTERFACE(iface) \
   (G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriterInterface))
 #define GST_IS_TAG_XMP_WRITER(obj) \
-  (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER))
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER))
 #define GST_IS_TAG_XMP_WRITER_INTERFACE(iface) \
   (G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_TAG_XMP_WRITER))
 #define GST_TAG_XMP_WRITER_GET_INTERFACE(inst) \
index 21ce6e4..7306995 100644 (file)
@@ -4,26 +4,45 @@ glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
 glib_gen_basename = video
 
+lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
+
+ORC_SOURCE=videoblendorc
+include $(top_srcdir)/common/orc.mak
+
 built_sources = video-enumtypes.c
 built_headers = video-enumtypes.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
 
-lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
+# orc.mak sets BUILT_SOURCES as well
+BUILT_SOURCES += $(built_sources) $(built_headers)
 
 CLEANFILES = $(BUILT_SOURCES)
 
+# video-blend.h should be disted but not installed into the includedir
 libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
-       video.c gstvideosink.c gstvideofilter.c convertframe.c
-nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
-
+       video.c gstvideosink.c gstvideofilter.c convertframe.c \
+       video-blend.c video-blend.h video-overlay-composition.c
+nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
+       $(built_sources) $(built_headers) \
+       $(ORC_NODIST_SOURCES)
 libgstvideo_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/video
 libgstvideo_@GST_MAJORMINOR@include_HEADERS = \
-       video.h gstvideosink.h gstvideofilter.h
+       video.h gstvideosink.h gstvideofilter.h video-overlay-composition.h
 nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS = $(built_headers)
 
-libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
-libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = \
+       $(GST_PLUGINS_BASE_CFLAGS)\
+       $(GST_BASE_CFLAGS) \
+       $(GST_CFLAGS) \
+       $(ORC_CFLAGS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) \
+       $(GST_LIBS) \
+       $(ORC_LIBS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = \
+       $(GST_LIB_LDFLAGS) \
+       $(GST_ALL_LDFLAGS) \
+       $(GST_LT_LDFLAGS)
 
 include $(top_srcdir)/common/gst-glib-gen.mak
 
@@ -31,9 +50,10 @@ if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = GstVideo-@GST_MAJORMINOR@.gir
 
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
-gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
+gir_headers+=$(patsubst %,$(builddir)/%, $(built_headers))
+video_gir_sources=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
+video_gir_sources+=$(patsubst %,$(builddir)/%, $(built_sources))
+gir_sources=$(subst $(srcdir)/video-blend.h,,$(subst $(srcdir)/video-blend.c,,$(video_gir_sources)))
 gir_cincludes=$(patsubst %,--c-include='gst/video/%',$(libgstvideo_@GST_MAJORMINOR@include_HEADERS))
 gir_cincludes+=$(patsubst %,--c-include='gst/video/%',$(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS))
 
@@ -87,7 +107,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
                   $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
         -:LDFLAGS $(libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS) \
                   $(libgstvideo_@GST_MAJORMINOR@_la_LIBADD) \
                   -ldl \
index 78defa9..33f707e 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
+#
+# This is a makefile.am fragment to build Orc code.
+#
+# Define ORC_SOURCE and then include this file, such as:
+#
+#  ORC_SOURCE=gstadderorc
+#  include $(top_srcdir)/common/orc.mak
+#
+# This fragment will create tmp-orc.c and gstadderorc.h from
+# gstadderorc.orc.
+#
+# When 'make dist' is run at the top level, or 'make orc-update'
+# in a directory including this fragment, the generated source 
+# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
+# should be checked in to git, since they are used if Orc is
+# disabled.
+# 
+# Note that this file defines BUILT_SOURCES, so any later usage
+# of BUILT_SOURCES in the Makefile.am that includes this file
+# must use '+='.
+#
+
 # these are the variables your Makefile.am should set
 # the example is based on the colorbalance interface
 
@@ -46,7 +68,8 @@ build_triplet = @build@
 host_triplet = @host@
 DIST_COMMON = $(libgstvideo_@GST_MAJORMINOR@include_HEADERS) \
        $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(top_srcdir)/common/gst-glib-gen.mak
+       $(top_srcdir)/common/gst-glib-gen.mak \
+       $(top_srcdir)/common/orc.mak
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/video
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -68,6 +91,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -113,6 +137,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
        "$(DESTDIR)$(typelibsdir)" \
        "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)" \
@@ -120,21 +150,24 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-       $(am__DEPENDENCIES_1)
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS =  \
        libgstvideo_@GST_MAJORMINOR@_la-video.lo \
        libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo \
        libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo \
-       libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo
+       libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo \
+       libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo \
+       libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo
 am__objects_1 = libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo
 am__objects_2 =
-am__objects_3 = $(am__objects_1) $(am__objects_2)
-nodist_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_3)
+am__objects_3 = libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo
+nodist_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1) \
+       $(am__objects_2) $(am__objects_3)
 libgstvideo_@GST_MAJORMINOR@_la_OBJECTS =  \
        $(am_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) \
        $(nodist_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstvideo_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -150,21 +183,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
        $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES)
@@ -235,6 +268,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -295,6 +329,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -304,9 +339,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -329,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -401,10 +440,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -438,7 +480,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -465,33 +506,64 @@ glib_enum_headers = video.h
 glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
 glib_gen_basename = video
+lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
+ORC_SOURCE = videoblendorc
+EXTRA_DIST = $(ORC_SOURCE).orc
+ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
+
+# orc.mak sets BUILT_SOURCES as well
+BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h $(built_sources) \
+       $(built_headers)
+orcc_v_gen = $(orcc_v_gen_$(V))
+orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
+orcc_v_gen_0 = @echo "  ORCC   $@";
+cp_v_gen = $(cp_v_gen_$(V))
+cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
+cp_v_gen_0 = @echo "  CP     $@";
 built_sources = video-enumtypes.c
 built_headers = video-enumtypes.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
-lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
 CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
+
+# video-blend.h should be disted but not installed into the includedir
 libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
-       video.c gstvideosink.c gstvideofilter.c convertframe.c
+       video.c gstvideosink.c gstvideofilter.c convertframe.c \
+       video-blend.c video-blend.h video-overlay-composition.c
+
+nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
+       $(built_sources) $(built_headers) \
+       $(ORC_NODIST_SOURCES)
 
-nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
 libgstvideo_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/video
 libgstvideo_@GST_MAJORMINOR@include_HEADERS = \
-       video.h gstvideosink.h gstvideofilter.h
+       video.h gstvideosink.h gstvideofilter.h video-overlay-composition.h
 
 nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS = $(built_headers)
-libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
-libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = \
+       $(GST_PLUGINS_BASE_CFLAGS)\
+       $(GST_BASE_CFLAGS) \
+       $(GST_CFLAGS) \
+       $(ORC_CFLAGS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) \
+       $(GST_LIBS) \
+       $(ORC_LIBS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = \
+       $(GST_LIB_LDFLAGS) \
+       $(GST_ALL_LDFLAGS) \
+       $(GST_LT_LDFLAGS)
+
 enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstVideo-@GST_MAJORMINOR@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, \
 @HAVE_INTROSPECTION_TRUE@      $(libgstvideo_@GST_MAJORMINOR@include_HEADERS)) \
 @HAVE_INTROSPECTION_TRUE@      $(patsubst %,$(builddir)/%, \
-@HAVE_INTROSPECTION_TRUE@      $(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, \
+@HAVE_INTROSPECTION_TRUE@      $(built_headers))
+@HAVE_INTROSPECTION_TRUE@video_gir_sources = $(patsubst %,$(srcdir)/%, \
 @HAVE_INTROSPECTION_TRUE@      $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES)) \
 @HAVE_INTROSPECTION_TRUE@      $(patsubst %,$(builddir)/%, \
-@HAVE_INTROSPECTION_TRUE@      $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@      $(built_sources))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(subst $(srcdir)/video-blend.h,,$(subst $(srcdir)/video-blend.c,,$(video_gir_sources)))
 @HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
 @HAVE_INTROSPECTION_TRUE@      %,--c-include='gst/video/%',$(libgstvideo_@GST_MAJORMINOR@include_HEADERS)) \
 @HAVE_INTROSPECTION_TRUE@      $(patsubst \
@@ -508,7 +580,7 @@ all: $(BUILT_SOURCES)
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -529,6 +601,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/orc.mak $(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -569,7 +642,7 @@ clean-libLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstvideo-@GST_MAJORMINOR@.la: $(libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES) 
+libgstvideo-@GST_MAJORMINOR@.la: $(libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvideo_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvideo_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -581,72 +654,88 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideo_@GST_MAJORMINOR@_la-video.lo: video.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='video.c' object='libgstvideo_@GST_MAJORMINOR@_la-video.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='video.c' object='libgstvideo_@GST_MAJORMINOR@_la-video.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.c
 
 libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo: gstvideosink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo `test -f 'gstvideosink.c' || echo '$(srcdir)/'`gstvideosink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvideosink.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvideosink.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo `test -f 'gstvideosink.c' || echo '$(srcdir)/'`gstvideosink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo `test -f 'gstvideosink.c' || echo '$(srcdir)/'`gstvideosink.c
 
 libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo: gstvideofilter.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo `test -f 'gstvideofilter.c' || echo '$(srcdir)/'`gstvideofilter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvideofilter.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvideofilter.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo `test -f 'gstvideofilter.c' || echo '$(srcdir)/'`gstvideofilter.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo `test -f 'gstvideofilter.c' || echo '$(srcdir)/'`gstvideofilter.c
 
 libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo: convertframe.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='convertframe.c' object='libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='convertframe.c' object='libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.c
+
+libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo: video-blend.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo `test -f 'video-blend.c' || echo '$(srcdir)/'`video-blend.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='video-blend.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo `test -f 'video-blend.c' || echo '$(srcdir)/'`video-blend.c
+
+libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo: video-overlay-composition.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo `test -f 'video-overlay-composition.c' || echo '$(srcdir)/'`video-overlay-composition.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='video-overlay-composition.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo `test -f 'video-overlay-composition.c' || echo '$(srcdir)/'`video-overlay-composition.c
 
 libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo: video-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='video-enumtypes.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='video-enumtypes.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
+
+libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo: tmp-orc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmp-orc.c' object='libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -670,9 +759,7 @@ uninstall-girDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(girdir)" && rm -f $$files
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@@ -690,9 +777,7 @@ uninstall-typelibsDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 install-libgstvideo_@GST_MAJORMINOR@includeHEADERS: $(libgstvideo_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstvideo_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)"
@@ -710,9 +795,7 @@ uninstall-libgstvideo_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(libgstvideo_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstvideo_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 install-nodist_libgstvideo_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS)
        @$(NORMAL_INSTALL)
        test -z "$(libgstvideo_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)"
@@ -730,9 +813,7 @@ uninstall-nodist_libgstvideo_@GST_MAJORMINOR@includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstvideo_@GST_MAJORMINOR@includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -816,6 +897,9 @@ distdir: $(DISTFILES)
            || exit 1; \
          fi; \
        done
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="$(top_distdir)" distdir="$(distdir)" \
+         dist-hook
 check-am: all-am
 check: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) check-am
@@ -835,10 +919,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -854,7 +943,7 @@ maintainer-clean-generic:
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
        mostlyclean-am
 
 distclean: distclean-am
@@ -932,13 +1021,13 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
 .MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libLTLIBRARIES clean-libtool ctags distclean \
-       distclean-compile distclean-generic distclean-libtool \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-girDATA \
-       install-html install-html-am install-info install-info-am \
-       install-libLTLIBRARIES \
+       clean-libLTLIBRARIES clean-libtool clean-local ctags dist-hook \
+       distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-girDATA install-html install-html-am \
+       install-info install-info-am install-libLTLIBRARIES \
        install-libgstvideo_@GST_MAJORMINOR@includeHEADERS install-man \
        install-nodist_libgstvideo_@GST_MAJORMINOR@includeHEADERS \
        install-pdf install-pdf-am install-ps install-ps-am \
@@ -953,6 +1042,42 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
        uninstall-typelibsDATA
 
 
+orc-update: tmp-orc.c $(ORC_SOURCE).h
+       $(top_srcdir)/common/gst-indent tmp-orc.c
+       cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
+       cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
+
+@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
+@HAVE_ORCC_TRUE@       $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
+
+@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
+@HAVE_ORCC_TRUE@       $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
+@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
+@HAVE_ORCC_FALSE@      $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
+
+@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
+@HAVE_ORCC_FALSE@      $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
+
+clean-local: clean-orc
+.PHONY: clean-orc
+clean-orc:
+       rm -f tmp-orc.c $(ORC_SOURCE).h
+
+dist-hook: dist-hook-orc
+.PHONY: dist-hook-orc
+
+# we try and copy updated orc -dist files below, but don't fail if it
+# doesn't work as the srcdir might not be writable
+dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
+       $(top_srcdir)/common/gst-indent tmp-orc.c
+       rm -f tmp-orc.c~
+       cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
+         cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true
+       cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
+         cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true
+       cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
+       cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
+
 # these are all the rules generating the relevant files
 $(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
        $(AM_V_GEN)glib-genmarshal --header --prefix=$(glib_gen_prefix)_marshal $^ > $(glib_gen_basename)-marshal.h.tmp && \
@@ -1027,7 +1152,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
                   $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
         -:LDFLAGS $(libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS) \
                   $(libgstvideo_@GST_MAJORMINOR@_la_LIBADD) \
                   -ldl \
index c04f2ca..756ce71 100644 (file)
@@ -22,6 +22,8 @@
 #include <string.h>
 #include "video.h"
 
+#include "gst/glib-compat-private.h"
+
 static gboolean
 caps_are_raw (const GstCaps * caps)
 {
@@ -235,7 +237,7 @@ link_failed:
  * @buf: a #GstBuffer
  * @to_caps: the #GstCaps to convert to
  * @timeout: the maximum amount of time allowed for the processing.
- * @err: pointer to a #GError. Can be %NULL.
+ * @error: pointer to a #GError. Can be %NULL.
  *
  * Converts a raw video buffer into the specified output caps.
  *
@@ -251,11 +253,11 @@ link_failed:
  */
 GstBuffer *
 gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps,
-    GstClockTime timeout, GError ** err)
+    GstClockTime timeout, GError ** error)
 {
   GstMessage *msg;
   GstBuffer *result = NULL;
-  GError *error = NULL;
+  GError *err = NULL;
   GstBus *bus;
   GstCaps *from_caps, *to_caps_copy = NULL;
   GstFlowReturn ret;
@@ -279,8 +281,7 @@ gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps,
   }
 
   pipeline =
-      build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy,
-      &error);
+      build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err);
   if (!pipeline)
     goto no_pipeline;
 
@@ -318,14 +319,14 @@ gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps,
       case GST_MESSAGE_ERROR:{
         gchar *dbg = NULL;
 
-        gst_message_parse_error (msg, &error, &dbg);
-        if (error) {
-          GST_ERROR ("Could not convert video frame: %s", error->message);
-          GST_DEBUG ("%s [debug: %s]", error->message, GST_STR_NULL (dbg));
-          if (err)
-            *err = error;
+        gst_message_parse_error (msg, &err, &dbg);
+        if (err) {
+          GST_ERROR ("Could not convert video frame: %s", err->message);
+          GST_DEBUG ("%s [debug: %s]", err->message, GST_STR_NULL (dbg));
+          if (error)
+            *error = err;
           else
-            g_error_free (error);
+            g_error_free (err);
         }
         g_free (dbg);
         break;
@@ -337,8 +338,8 @@ gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps,
     gst_message_unref (msg);
   } else {
     GST_ERROR ("Could not convert video frame: timeout during conversion");
-    if (err)
-      *err = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_FAILED,
+    if (error)
+      *error = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_FAILED,
           "Could not convert video frame: timeout during conversion");
   }
 
@@ -354,10 +355,10 @@ no_pipeline:
   {
     gst_caps_unref (to_caps_copy);
 
-    if (err)
-      *err = error;
+    if (error)
+      *error = err;
     else
-      g_error_free (error);
+      g_error_free (err);
 
     return NULL;
   }
@@ -577,6 +578,7 @@ done:
  * @to_caps: the #GstCaps to convert to
  * @timeout: the maximum amount of time allowed for the processing.
  * @callback: %GstVideoConvertFrameCallback that will be called after conversion.
+ * @user_data: extra data that will be passed to the @callback
  * @destroy_notify: %GDestroyNotify to be called after @user_data is not needed anymore
  *
  * Converts a raw video buffer into the specified output caps.
index 1c02061..bb0183e 100644 (file)
@@ -47,6 +47,12 @@ struct _GstVideoFilter {
   gboolean inited;
 };
 
+/**
+ * GstVideoFilterClass:
+ * @parent_class: the parent class structure
+ *
+ * The video filter class structure.
+ */
 struct _GstVideoFilterClass {
   GstBaseTransformClass parent_class;
 };
index d03a285..4a115e4 100644 (file)
@@ -27,7 +27,7 @@
 #include <gst/base/gstbasesink.h>
 
 G_BEGIN_DECLS
-  
+
 #define GST_TYPE_VIDEO_SINK (gst_video_sink_get_type())
 #define GST_VIDEO_SINK(obj) \
   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_SINK, GstVideoSink))
@@ -60,7 +60,7 @@ G_BEGIN_DECLS
 
 #define GST_VIDEO_SINK_WIDTH(obj) (GST_VIDEO_SINK_CAST (obj)->width)
 #define GST_VIDEO_SINK_HEIGHT(obj) (GST_VIDEO_SINK_CAST (obj)->height)
-  
+
 typedef struct _GstVideoSink GstVideoSink;
 typedef struct _GstVideoSinkClass GstVideoSinkClass;
 typedef struct _GstVideoRectangle GstVideoRectangle;
@@ -84,7 +84,6 @@ struct _GstVideoRectangle {
 
 /**
  * GstVideoSink:
- * @element: the parent object structure (which is GstBaseSink)
  * @height: video height (derived class needs to set this)
  * @width: video width (derived class needs to set this)
  *
@@ -93,9 +92,10 @@ struct _GstVideoRectangle {
  */
 struct _GstVideoSink {
   GstBaseSink element;    /* FIXME 0.11: this should not be called 'element' */
-  
+
+  /*< public >*/
   gint width, height;
-  
+
   /*< private >*/
   GstVideoSinkPrivate *priv;
 
@@ -105,10 +105,10 @@ struct _GstVideoSink {
 /**
  * GstVideoSinkClass:
  * @parent_class: the parent class structure
- * @show_frame: render a video frame. Maps to #GstBaseSink::render and
- *     #GstBaseSink::preroll vfuncs. Rendering during preroll will be
- *     suppressed if the 'show-preroll-frame' property is set to #FALSE.
- *     Since: 0.10.25
+ * @show_frame: render a video frame. Maps to #GstBaseSinkClass.render() and
+ *     #GstBaseSinkClass.preroll() vfuncs. Rendering during preroll will be
+ *     suppressed if the #GstVideoSink:show-preroll-frame property is set to 
+ *     %FALSE. Since: 0.10.25
  *
  * The video sink class structure. Derived classes should override the
  * @show_frame virtual function.
diff --git a/gst-libs/gst/video/video-blend.c b/gst-libs/gst/video/video-blend.c
new file mode 100644 (file)
index 0000000..8dc21c3
--- /dev/null
@@ -0,0 +1,1423 @@
+/* Gstreamer video blending utility functions
+ *
+ * Copied/pasted from gst/videoconvert/videoconvert.c
+ *    Copyright (C) 2010 David Schleef <ds@schleef.org>
+ *    Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * Copyright (C) <2011> Intel Corporation
+ * Copyright (C) <2011> Collabora Ltd.
+ * Copyright (C) <2011> Thibault Saunier <thibault.saunier@collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "video-blend.h"
+#include "videoblendorc.h"
+
+#include <string.h>
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT ensure_debug_category()
+
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("video-blending", 0,
+        "video blending");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+
+#else
+
+#define ensure_debug_category() /* NOOP */
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+# define ARGB_A 3
+# define ARGB_R 2
+# define ARGB_G 1
+# define ARGB_B 0
+#else
+# define ARGB_A 0
+# define ARGB_R 1
+# define ARGB_G 2
+# define ARGB_B 3
+#endif
+
+/* Copy/pasted from 0.11 video.c */
+static int
+fill_planes (GstBlendVideoFormatInfo * info)
+{
+  gint width, height;
+
+  width = info->width;
+  height = info->height;
+
+  switch (info->fmt) {
+    case GST_VIDEO_FORMAT_YUY2:
+    case GST_VIDEO_FORMAT_YVYU:
+    case GST_VIDEO_FORMAT_UYVY:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_AYUV:
+    case GST_VIDEO_FORMAT_RGBx:
+    case GST_VIDEO_FORMAT_RGBA:
+    case GST_VIDEO_FORMAT_BGRx:
+    case GST_VIDEO_FORMAT_BGRA:
+    case GST_VIDEO_FORMAT_xRGB:
+    case GST_VIDEO_FORMAT_ARGB:
+    case GST_VIDEO_FORMAT_xBGR:
+    case GST_VIDEO_FORMAT_ABGR:
+    case GST_VIDEO_FORMAT_r210:
+      info->stride[0] = width * 4;
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_RGB16:
+    case GST_VIDEO_FORMAT_BGR16:
+    case GST_VIDEO_FORMAT_RGB15:
+    case GST_VIDEO_FORMAT_BGR15:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_RGB:
+    case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_v308:
+      info->stride[0] = GST_ROUND_UP_4 (width * 3);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_v210:
+      info->stride[0] = ((width + 47) / 48) * 128;
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_v216:
+      info->stride[0] = GST_ROUND_UP_8 (width * 4);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_GRAY8:
+    case GST_VIDEO_FORMAT_Y800:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_GRAY16_BE:
+    case GST_VIDEO_FORMAT_GRAY16_LE:
+    case GST_VIDEO_FORMAT_Y16:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_UYVP:
+      info->stride[0] = GST_ROUND_UP_4 ((width * 2 * 5 + 3) / 4);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_RGB8_PALETTED:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_IYU1:
+      info->stride[0] = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) +
+          GST_ROUND_UP_4 (width) / 2);
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_ARGB64:
+    case GST_VIDEO_FORMAT_AYUV64:
+      info->stride[0] = width * 8;
+      info->offset[0] = 0;
+      break;
+    case GST_VIDEO_FORMAT_I420:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+      info->stride[2] = info->stride[1];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+      info->offset[2] = info->offset[1] +
+          info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
+      break;
+    case GST_VIDEO_FORMAT_YV12:        /* same as I420, but plane 1+2 swapped */
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+      info->stride[2] = info->stride[1];
+      info->offset[0] = 0;
+      info->offset[2] = info->stride[0] * GST_ROUND_UP_2 (height);
+      info->offset[1] = info->offset[2] +
+          info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
+      break;
+    case GST_VIDEO_FORMAT_Y41B:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_16 (width) / 4;
+      info->stride[2] = info->stride[1];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->offset[2] = info->offset[1] + info->stride[1] * height;
+      /* simplification of ROUNDUP4(w)*h + 2*((ROUNDUP16(w)/4)*h */
+      break;
+    case GST_VIDEO_FORMAT_Y42B:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_8 (width) / 2;
+      info->stride[2] = info->stride[1];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->offset[2] = info->offset[1] + info->stride[1] * height;
+      /* simplification of ROUNDUP4(w)*h + 2*(ROUNDUP8(w)/2)*h */
+      break;
+    case GST_VIDEO_FORMAT_Y444:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = info->stride[0];
+      info->stride[2] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->offset[2] = info->offset[1] * 2;
+      break;
+    case GST_VIDEO_FORMAT_NV12:
+    case GST_VIDEO_FORMAT_NV21:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+      break;
+    case GST_VIDEO_FORMAT_A420:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+      info->stride[2] = info->stride[1];
+      info->stride[3] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+      info->offset[2] = info->offset[1] +
+          info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
+      info->offset[3] = info->offset[2] +
+          info->stride[2] * (GST_ROUND_UP_2 (height) / 2);
+      break;
+    case GST_VIDEO_FORMAT_YUV9:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4);
+      info->stride[2] = info->stride[1];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->offset[2] = info->offset[1] +
+          info->stride[1] * (GST_ROUND_UP_4 (height) / 4);
+      break;
+    case GST_VIDEO_FORMAT_YVU9:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4);
+      info->stride[2] = info->stride[1];
+      info->offset[0] = 0;
+      info->offset[2] = info->stride[0] * height;
+      info->offset[1] = info->offset[2] +
+          info->stride[1] * (GST_ROUND_UP_4 (height) / 4);
+      break;
+    case GST_VIDEO_FORMAT_UNKNOWN:
+      GST_ERROR ("invalid format");
+      g_warning ("invalid format");
+      break;
+  }
+  return 0;
+}
+
+typedef struct
+{
+  GstVideoFormat format;
+  void (*getline) (guint8 * dest, const GstBlendVideoFormatInfo * src,
+      guint xoff, int j);
+  void (*putline) (GstBlendVideoFormatInfo * dest,
+      GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff,
+      int j);
+  void (*matrix) (guint8 * tmpline, guint width);
+} GetPutLine;
+
+
+#define GET_LINE(info, comp, line) \
+  (info)->pixels + info->offset[(comp)] + ((info)->stride[(comp)] * (line))
+
+/* Line conversion to AYUV */
+
+/* Supports YV12 as well */
+static void
+getline_I420 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_I420 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (src, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2), src->width);
+}
+
+/* Supports YV12 as well */
+static void
+putline_I420 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_I420 (GET_LINE (dest, 0, j) + xoff,
+      GET_LINE (dest, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (dest, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      line, srcinfo->width / 2);
+}
+
+static void
+getline_YUY2 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_YUY2 (dest, GET_LINE (src, 0, j) +
+      (GST_ROUND_UP_2 (xoff * 4) / 2), src->width / 2);
+}
+
+static void
+putline_YUY2 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_YUY2 (GET_LINE (dest, 0,
+          j) + (GST_ROUND_UP_2 (xoff * 4) / 2), line, srcinfo->width / 2);
+}
+
+
+static void
+getline_AYUV (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  memcpy (dest, GET_LINE (src, 0, j) + (xoff * 4), (src->width - xoff) * 4);
+}
+
+static void
+putline_AYUV (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  memcpy (GET_LINE (dest, 0, j) + (xoff * 4), line, srcinfo->width * 4);
+}
+
+static void
+getline_UYVY (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_UYVY (dest, GET_LINE (src, 0, j) + xoff * 2, src->width / 2);
+}
+
+static void
+putline_UYVY (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_UYVY (GET_LINE (dest, 0, j) +
+      (GST_ROUND_UP_2 (xoff * 4) / 2), line, srcinfo->width / 2);
+}
+
+static void
+getline_v308 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline = GET_LINE (src, 0, j) + GST_ROUND_UP_2 (xoff * 3);
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = srcline[i * 3 + 0];
+    dest[i * 4 + 2] = srcline[i * 3 + 1];
+    dest[i * 4 + 3] = srcline[i * 3 + 2];
+  }
+}
+
+static void
+putline_v308 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 (xoff * 3);
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i * 3 + 0] = line[i * 4 + 1];
+    destline[i * 3 + 1] = line[i * 4 + 2];
+    destline[i * 3 + 2] = line[i * 4 + 3];
+  }
+}
+
+static void
+getline_v210 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline = GET_LINE (src, 0, j) + GST_ROUND_UP_2 (xoff * 4) / 5;
+
+  for (i = 0; i < src->width; i += 6) {
+    guint32 a0, a1, a2, a3;
+    guint16 y0, y1, y2, y3, y4, y5;
+    guint16 u0, u2, u4;
+    guint16 v0, v2, v4;
+
+    a0 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 0);
+    a1 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 4);
+    a2 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 8);
+    a3 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 12);
+
+    u0 = ((a0 >> 0) & 0x3ff) >> 2;
+    y0 = ((a0 >> 10) & 0x3ff) >> 2;
+    v0 = ((a0 >> 20) & 0x3ff) >> 2;
+    y1 = ((a1 >> 0) & 0x3ff) >> 2;
+
+    u2 = ((a1 >> 10) & 0x3ff) >> 2;
+    y2 = ((a1 >> 20) & 0x3ff) >> 2;
+    v2 = ((a2 >> 0) & 0x3ff) >> 2;
+    y3 = ((a2 >> 10) & 0x3ff) >> 2;
+
+    u4 = ((a2 >> 20) & 0x3ff) >> 2;
+    y4 = ((a3 >> 0) & 0x3ff) >> 2;
+    v4 = ((a3 >> 10) & 0x3ff) >> 2;
+    y5 = ((a3 >> 20) & 0x3ff) >> 2;
+
+    dest[4 * (i + 0) + 0] = 0xff;
+    dest[4 * (i + 0) + 1] = y0;
+    dest[4 * (i + 0) + 2] = u0;
+    dest[4 * (i + 0) + 3] = v0;
+
+    dest[4 * (i + 1) + 0] = 0xff;
+    dest[4 * (i + 1) + 1] = y1;
+    dest[4 * (i + 1) + 2] = u0;
+    dest[4 * (i + 1) + 3] = v0;
+
+    dest[4 * (i + 2) + 0] = 0xff;
+    dest[4 * (i + 2) + 1] = y2;
+    dest[4 * (i + 2) + 2] = u2;
+    dest[4 * (i + 2) + 3] = v2;
+
+    dest[4 * (i + 3) + 0] = 0xff;
+    dest[4 * (i + 3) + 1] = y3;
+    dest[4 * (i + 3) + 2] = u2;
+    dest[4 * (i + 3) + 3] = v2;
+
+    dest[4 * (i + 4) + 0] = 0xff;
+    dest[4 * (i + 4) + 1] = y4;
+    dest[4 * (i + 4) + 2] = u4;
+    dest[4 * (i + 4) + 3] = v4;
+
+    dest[4 * (i + 5) + 0] = 0xff;
+    dest[4 * (i + 5) + 1] = y5;
+    dest[4 * (i + 5) + 2] = u4;
+    dest[4 * (i + 5) + 3] = v4;
+
+  }
+
+}
+
+static void
+putline_v210 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 (xoff * 4) / 5;
+
+
+  for (i = 0; i < srcinfo->width + 5; i += 6) {
+    guint32 a0, a1, a2, a3;
+    guint16 y0, y1, y2, y3, y4, y5;
+    guint16 u0, u1, u2;
+    guint16 v0, v1, v2;
+
+    y0 = line[4 * (i + 0) + 1] << 2;
+    y1 = line[4 * (i + 1) + 1] << 2;
+    y2 = line[4 * (i + 2) + 1] << 2;
+    y3 = line[4 * (i + 3) + 1] << 2;
+    y4 = line[4 * (i + 4) + 1] << 2;
+    y5 = line[4 * (i + 5) + 1] << 2;
+
+    u0 = (line[4 * (i + 0) + 2] + line[4 * (i + 1) + 2]) << 1;
+    u1 = (line[4 * (i + 2) + 2] + line[4 * (i + 3) + 2]) << 1;
+    u2 = (line[4 * (i + 4) + 2] + line[4 * (i + 5) + 2]) << 1;
+
+    v0 = (line[4 * (i + 0) + 3] + line[4 * (i + 1) + 3]) << 1;
+    v1 = (line[4 * (i + 2) + 3] + line[4 * (i + 3) + 3]) << 1;
+    v2 = (line[4 * (i + 4) + 3] + line[4 * (i + 5) + 3]) << 1;
+
+    a0 = u0 | (y0 << 10) | (v0 << 20);
+    a1 = y1 | (u1 << 10) | (y2 << 20);
+    a2 = v1 | (y3 << 10) | (u2 << 20);
+    a3 = y4 | (v2 << 10) | (y5 << 20);
+
+    GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 0, a0);
+    GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 4, a1);
+    GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 8, a2);
+    GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 12, a3);
+  }
+}
+
+static void
+getline_v216 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline = GET_LINE (src, 0, j) + GST_ROUND_UP_2 (xoff + 3);
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = GST_READ_UINT16_LE (srcline + i * 4 + 2) >> 8;
+    dest[i * 4 + 2] = GST_READ_UINT16_LE (srcline + (i >> 1) * 8 + 0) >> 8;
+    dest[i * 4 + 3] = GST_READ_UINT16_LE (srcline + (i >> 1) * 8 + 4) >> 8;
+  }
+}
+
+static void
+putline_v216 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 (xoff + 3);
+
+  for (i = 0; i < srcinfo->width / 2; i++) {
+    GST_WRITE_UINT16_LE (destline + i * 8 + 0, line[(i * 2 + 0) * 4 + 2] << 8);
+    GST_WRITE_UINT16_LE (destline + i * 8 + 2, line[(i * 2 + 0) * 4 + 1] << 8);
+    GST_WRITE_UINT16_LE (destline + i * 8 + 4, line[(i * 2 + 1) * 4 + 3] << 8);
+    GST_WRITE_UINT16_LE (destline + i * 8 + 8, line[(i * 2 + 0) * 4 + 1] << 8);
+  }
+}
+
+static void
+getline_Y41B (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_YUV9 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j) + (xoff / 4), GET_LINE (src, 2, j) + (xoff / 4),
+      src->width / 2);
+}
+
+static void
+putline_Y41B (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destlineY = GET_LINE (dest, 0, j) + xoff;
+  guint8 *destlineU = GET_LINE (dest, 1, j) + (xoff / 4);
+  guint8 *destlineV = GET_LINE (dest, 2, j) + (xoff / 4);
+
+  for (i = 0; i < srcinfo->width - 3; i += 4) {
+    destlineY[i] = line[i * 4 + 1];
+    destlineY[i + 1] = line[i * 4 + 5];
+    destlineY[i + 2] = line[i * 4 + 9];
+    destlineY[i + 3] = line[i * 4 + 13];
+
+    destlineU[i >> 2] =
+        (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + line[i * 4 +
+            14] + 2) >> 2;
+    destlineV[i >> 2] =
+        (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + line[i * 4 +
+            15] + 2) >> 2;
+  }
+
+  if (i == srcinfo->width - 3) {
+    destlineY[i] = line[i * 4 + 1];
+    destlineY[i + 1] = line[i * 4 + 5];
+    destlineY[i + 2] = line[i * 4 + 9];
+
+    destlineU[i >> 2] =
+        (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + 1) / 3;
+    destlineV[i >> 2] =
+        (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + 1) / 3;
+  } else if (i == srcinfo->width - 2) {
+    destlineY[i] = line[i * 4 + 1];
+    destlineY[i + 1] = line[i * 4 + 5];
+
+    destlineU[i >> 2] = (line[i * 4 + 2] + line[i * 4 + 6] + 1) >> 1;
+    destlineV[i >> 2] = (line[i * 4 + 3] + line[i * 4 + 7] + 1) >> 1;
+  } else if (i == srcinfo->width - 1) {
+    destlineY[i + 1] = line[i * 4 + 5];
+
+    destlineU[i >> 2] = line[i * 4 + 2];
+    destlineV[i >> 2] = line[i * 4 + 3];
+  }
+}
+
+static void
+getline_Y42B (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_Y42B (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (src, 2, j) + GST_ROUND_UP_2 (xoff / 2), src->width / 2);
+}
+
+static void
+putline_Y42B (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_Y42B (GET_LINE (dest, 0, j) + xoff,
+      GET_LINE (dest, 1, j) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (dest, 2, j) + GST_ROUND_UP_2 (xoff / 2), line,
+      srcinfo->width / 2);
+}
+
+static void
+getline_Y444 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_Y444 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j) + xoff, GET_LINE (src, 2, j) + xoff, src->width);
+}
+
+static void
+putline_Y444 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_Y444 (GET_LINE (dest, 0, j) + xoff,
+      GET_LINE (dest, 1, j) + xoff,
+      GET_LINE (dest, 2, j) + xoff, line, srcinfo->width);
+}
+
+static void
+getline_Y800 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_Y800 (dest, GET_LINE (src, 0, j) + xoff, src->width);
+}
+
+static void
+putline_Y800 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_Y800 (GET_LINE (dest, 0, j) + xoff, line, srcinfo->width);
+}
+
+static void
+getline_Y16 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_Y16 (dest, GET_LINE (src, 0, j) + xoff * 2, src->width);
+}
+
+static void
+putline_Y16 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_Y16 (GET_LINE (dest, 0, j) + xoff * 2, line, srcinfo->width);
+}
+
+static void
+getline_NV12 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_NV12 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j >> 1) + xoff, src->width / 2);
+}
+
+static void
+putline_NV12 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_NV12 (GET_LINE (dest, 0, j) + xoff,
+      GET_LINE (dest, 1, j >> 1) + xoff, line, srcinfo->width / 2);
+}
+
+static void
+getline_NV21 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_NV21 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j >> 1) + xoff, src->width / 2);
+}
+
+static void
+putline_NV21 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_NV21 (GET_LINE (dest, 0, j) + xoff,
+      GET_LINE (dest, 1, j >> 1) + xoff, line, srcinfo->width / 2);
+}
+
+static void
+getline_UYVP (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline = GET_LINE (src, 0, j)
+      + xoff * 3;
+
+  for (i = 0; i < src->width; i += 2) {
+    guint16 y0, y1;
+    guint16 u0;
+    guint16 v0;
+
+    u0 = (srcline[(i / 2) * 5 + 0] << 2) | (srcline[(i / 2) * 5 + 1] >> 6);
+
+    y0 = ((srcline[(i / 2) * 5 + 1] & 0x3f) << 4) |
+        (srcline[(i / 2) * 5 + 2] >> 4);
+
+    v0 = ((srcline[(i / 2) * 5 + 2] & 0x0f) << 6) |
+        (srcline[(i / 2) * 5 + 3] >> 2);
+
+    y1 = ((srcline[(i / 2) * 5 + 3] & 0x03) << 8) | srcline[(i / 2) * 5 + 4];
+
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = y0 >> 2;
+    dest[i * 4 + 2] = u0 >> 2;
+    dest[i * 4 + 3] = v0 >> 2;
+    dest[i * 4 + 4] = 0xff;
+    dest[i * 4 + 5] = y1 >> 2;
+    dest[i * 4 + 6] = u0 >> 2;
+    dest[i * 4 + 7] = v0 >> 2;
+  }
+}
+
+static void
+putline_UYVP (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + xoff * 3;
+
+  for (i = 0; i < srcinfo->width; i += 2) {
+    guint16 y0, y1;
+    guint16 u0;
+    guint16 v0;
+
+    y0 = line[4 * (i + 0) + 1];
+    y1 = line[4 * (i + 1) + 1];
+    u0 = (line[4 * (i + 0) + 2] + line[4 * (i + 1) + 2] + 1) >> 1;
+    v0 = (line[4 * (i + 0) + 3] + line[4 * (i + 1) + 3] + 1) >> 1;
+
+    destline[(i / 2) * 5 + 0] = u0;
+    destline[(i / 2) * 5 + 1] = y0 >> 2;
+    destline[(i / 2) * 5 + 2] = (y0 << 6) | (v0 >> 4);
+    destline[(i / 2) * 5 + 3] = (v0 << 4) | (y1 >> 2);
+    destline[(i / 2) * 5 + 4] = (y1 << 2);
+  }
+}
+
+static void
+getline_A420 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_A420 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (src, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (src, 3, j) + GST_ROUND_UP_2 (xoff / 2), src->width);
+}
+
+static void
+putline_A420 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_A420 (GET_LINE (dest, 0, j) + xoff,
+      GET_LINE (dest, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (dest, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+      GET_LINE (dest, 3, j) + GST_ROUND_UP_2 (xoff / 2), line,
+      srcinfo->width / 2);
+}
+
+static void
+getline_YUV9 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_YUV9 (dest,
+      GET_LINE (src, 0, j) + xoff,
+      GET_LINE (src, 1, j >> 2) + GST_ROUND_UP_4 (xoff / 4),
+      GET_LINE (src, 2, j >> 2) + GST_ROUND_UP_4 (xoff / 4), src->width / 2);
+}
+
+static void
+putline_YUV9 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destY = GET_LINE (dest, 0, j) + xoff;
+  guint8 *destU = GET_LINE (dest, 1, j >> 2) + GST_ROUND_UP_4 (xoff / 4);
+  guint8 *destV = GET_LINE (dest, 2, j >> 2) + GST_ROUND_UP_4 (xoff / 4);
+  guint width = srcinfo->width;
+
+  for (i = 0; i < width - 3; i += 4) {
+    destY[i] = line[i * 4 + 1];
+    destY[i + 1] = line[i * 4 + 5];
+    destY[i + 2] = line[i * 4 + 9];
+    destY[i + 3] = line[i * 4 + 13];
+    if (j % 4 == 0) {
+      destU[i >> 2] =
+          (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + line[i * 4 +
+              14]) >> 2;
+      destV[i >> 2] =
+          (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + line[i * 4 +
+              15]) >> 2;
+    }
+  }
+
+  if (i == width - 3) {
+    destY[i] = line[i * 4 + 1];
+    destY[i + 1] = line[i * 4 + 5];
+    destY[i + 2] = line[i * 4 + 9];
+    if (j % 4 == 0) {
+      destU[i >> 2] =
+          (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10]) / 3;
+      destV[i >> 2] =
+          (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11]) / 3;
+    }
+  } else if (i == width - 2) {
+    destY[i] = line[i * 4 + 1];
+    destY[i + 1] = line[i * 4 + 5];
+    if (j % 4 == 0) {
+      destU[i >> 2] = (line[i * 4 + 2] + line[i * 4 + 6]) >> 1;
+      destV[i >> 2] = (line[i * 4 + 3] + line[i * 4 + 7]) >> 1;
+    }
+  } else if (i == width - 1) {
+    destY[i] = line[i * 4 + 1];
+    destU[i >> 2] = line[i * 4 + 2];
+    destV[i >> 2] = line[i * 4 + 3];
+  }
+}
+
+static void
+getline_IYU1 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline =
+      GET_LINE (src, 0, j) + GST_ROUND_UP_2 ((xoff * 3) / 2);
+  guint width = src->width;
+
+  for (i = 0; i < width - 3; i += 4) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 4] = 0xff;
+    dest[i * 4 + 8] = 0xff;
+    dest[i * 4 + 12] = 0xff;
+    dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+    dest[i * 4 + 5] = srcline[(i >> 2) * 6 + 2];
+    dest[i * 4 + 9] = srcline[(i >> 2) * 6 + 4];
+    dest[i * 4 + 13] = srcline[(i >> 2) * 6 + 5];
+    dest[i * 4 + 2] = dest[i * 4 + 6] = dest[i * 4 + 10] = dest[i * 4 + 14] =
+        srcline[(i >> 2) * 6 + 0];
+    dest[i * 4 + 3] = dest[i * 4 + 7] = dest[i * 4 + 11] = dest[i * 4 + 15] =
+        srcline[(i >> 2) * 6 + 3];
+  }
+
+  if (i == width - 3) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 4] = 0xff;
+    dest[i * 4 + 8] = 0xff;
+    dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+    dest[i * 4 + 5] = srcline[(i >> 2) * 6 + 2];
+    dest[i * 4 + 9] = srcline[(i >> 2) * 6 + 4];
+    dest[i * 4 + 2] = dest[i * 4 + 6] = dest[i * 4 + 10] =
+        srcline[(i >> 2) * 6 + 0];
+    dest[i * 4 + 3] = dest[i * 4 + 7] = dest[i * 4 + 11] =
+        srcline[(i >> 2) * 6 + 3];
+  } else if (i == width - 2) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 4] = 0xff;
+    dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+    dest[i * 4 + 5] = srcline[(i >> 2) * 6 + 2];
+    dest[i * 4 + 2] = dest[i * 4 + 6] = srcline[(i >> 2) * 6 + 0];
+    dest[i * 4 + 3] = dest[i * 4 + 7] = srcline[(i >> 2) * 6 + 3];
+  } else if (i == width - 1) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+    dest[i * 4 + 2] = srcline[(i >> 2) * 6 + 0];
+    dest[i * 4 + 3] = srcline[(i >> 2) * 6 + 3];
+  }
+}
+
+static void
+putline_IYU1 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 ((xoff * 3) / 2);
+  guint width = srcinfo->width;
+
+  for (i = 0; i < width - 3; i += 4) {
+    destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+    destline[(i >> 2) * 6 + 2] = line[i * 4 + 5];
+    destline[(i >> 2) * 6 + 4] = line[i * 4 + 9];
+    destline[(i >> 2) * 6 + 5] = line[i * 4 + 13];
+    destline[(i >> 2) * 6 + 0] =
+        (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + line[i * 4 +
+            14]) >> 2;
+    destline[(i >> 2) * 6 + 3] =
+        (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + line[i * 4 +
+            15]) >> 2;
+  }
+
+  if (i == width - 3) {
+    destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+    destline[(i >> 2) * 6 + 2] = line[i * 4 + 5];
+    destline[(i >> 2) * 6 + 4] = line[i * 4 + 9];
+    destline[(i >> 2) * 6 + 0] =
+        (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10]) / 3;
+    destline[(i >> 2) * 6 + 3] =
+        (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11]) / 3;
+  } else if (i == width - 2) {
+    destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+    destline[(i >> 2) * 6 + 2] = line[i * 4 + 5];
+    destline[(i >> 2) * 6 + 0] = (line[i * 4 + 2] + line[i * 4 + 6]) >> 1;
+    destline[(i >> 2) * 6 + 3] = (line[i * 4 + 3] + line[i * 4 + 7]) >> 1;
+  } else if (i == width - 1) {
+    destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+    destline[(i >> 2) * 6 + 0] = line[i * 4 + 2];
+    destline[(i >> 2) * 6 + 3] = line[i * 4 + 3];
+  }
+}
+
+
+/* Line conversion to ARGB */
+static void
+getline_RGB (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline = GET_LINE (src, 0, j) + xoff * 3;
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = srcline[i * 3 + 0];
+    dest[i * 4 + 2] = srcline[i * 3 + 1];
+    dest[i * 4 + 3] = srcline[i * 3 + 2];
+  }
+}
+
+static void
+putline_RGB (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + xoff * 3;
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i * 3 + 0] = line[i * 4 + 1];
+    destline[i * 3 + 1] = line[i * 4 + 2];
+    destline[i * 3 + 2] = line[i * 4 + 3];
+  }
+}
+
+static void
+getline_BGR (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint8 *srcline = GET_LINE (src, 0, j) + xoff * 3;
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = srcline[i * 3 + 2];
+    dest[i * 4 + 2] = srcline[i * 3 + 1];
+    dest[i * 4 + 3] = srcline[i * 3 + 0];
+  }
+}
+
+static void
+putline_BGR (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint8 *destline = GET_LINE (dest, 0, j) + xoff * 3;
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i * 3 + 0] = line[i * 4 + 3];
+    destline[i * 3 + 1] = line[i * 4 + 2];
+    destline[i * 3 + 2] = line[i * 4 + 1];
+  }
+}
+
+static void
+getline_RGBA (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_RGBA (dest, GET_LINE (src, 0, j) + (4 * xoff), src->width);
+}
+
+static void
+putline_RGBA (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_RGBA (GET_LINE (dest, 0, j) + (4 * xoff),
+      line, srcinfo->width);
+}
+
+static void
+getline_ARGB (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+
+  memcpy (dest, GET_LINE (src, 0, j), (src->width - xoff) * 4);
+}
+
+static void
+putline_ARGB (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+    const guint8 * line, guint xoff, int j)
+{
+  memcpy (GET_LINE (dest, 0, j) + (xoff * 4), line, srcinfo->width * 4);
+}
+
+static void
+getline_RGB16 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+      + (xoff * 3);
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = ((srcline[i] >> 11) & 0x1f) << 3;
+    dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x3f) << 2;
+    dest[i * 4 + 3] = ((srcline[i]) & 0x1f) << 3;
+  }
+}
+
+static void
+putline_RGB16 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i] = ((line[i * 4 + 1] >> 3) << 11) | ((line[i * 4 +
+                2] >> 2) << 5) | (line[i * 4 + 3] >> 3);
+  }
+}
+
+static void
+getline_RGB15 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+      + (xoff * 3);
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 1] = ((srcline[i] >> 10) & 0x1f) << 3;
+    dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x1f) << 3;
+    dest[i * 4 + 3] = ((srcline[i]) & 0x1f) << 3;
+  }
+}
+
+static void
+putline_RGB15 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i] = ((line[i * 4 + 1] >> 3) << 10) | ((line[i * 4 +
+                2] >> 3) << 5) | (line[i * 4 + 3] >> 3);
+  }
+}
+
+static void
+getline_BGR15 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+      + (xoff * 3);
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 3] = ((srcline[i] >> 10) & 0x1f) << 3;
+    dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x1f) << 3;
+    dest[i * 4 + 1] = ((srcline[i]) & 0x1f) << 3;
+  }
+}
+
+static void
+putline_BGR15 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i] = ((line[i * 4 + 3] >> 3) << 10) | ((line[i * 4 +
+                2] >> 3) << 5) | (line[i * 4 + 1] >> 3);
+  }
+}
+
+static void
+getline_BGR16 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  int i;
+  const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+      + (xoff * 3);
+
+  for (i = 0; i < src->width; i++) {
+    dest[i * 4 + 0] = 0xff;
+    dest[i * 4 + 3] = ((srcline[i] >> 11) & 0x1f) << 3;
+    dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x3f) << 2;
+    dest[i * 4 + 1] = ((srcline[i]) & 0x1f) << 3;
+  }
+}
+
+static void
+putline_BGR16 (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  int i;
+  guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+  for (i = 0; i < srcinfo->width; i++) {
+    destline[i] = ((line[i * 4 + 3] >> 3) << 11) | ((line[i * 4 +
+                2] >> 2) << 5) | (line[i * 4 + 1] >> 3);
+  }
+}
+
+static void
+getline_BGRA (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_BGRA (dest, GET_LINE (src, 0, j) + xoff * 4, src->width);
+}
+
+static void
+putline_BGRA (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_BGRA (GET_LINE (dest, 0, j) + xoff * 4, line, srcinfo->width);
+}
+
+static void
+getline_ABGR (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+    int j)
+{
+  cogorc_getline_ABGR (dest, GET_LINE (src, 0, j) + (xoff * 4), src->width);
+}
+
+static void
+putline_ABGR (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+  cogorc_putline_ABGR (GET_LINE (dest, 0, j) + (xoff * 4),
+      line, srcinfo->width);
+}
+
+static const GetPutLine lines[] = {
+  /* YUV lines conversion */
+  {GST_VIDEO_FORMAT_I420, getline_I420, putline_I420},
+  {GST_VIDEO_FORMAT_YV12, getline_I420, putline_I420},
+  {GST_VIDEO_FORMAT_AYUV, getline_AYUV, putline_AYUV},
+  {GST_VIDEO_FORMAT_YUY2, getline_YUY2, putline_YUY2},
+  {GST_VIDEO_FORMAT_UYVY, getline_UYVY, putline_UYVY},
+  {GST_VIDEO_FORMAT_v308, getline_v308, putline_v308},
+  {GST_VIDEO_FORMAT_v210, getline_v210, putline_v210},
+  {GST_VIDEO_FORMAT_v216, getline_v216, putline_v216},
+  {GST_VIDEO_FORMAT_Y41B, getline_Y41B, putline_Y41B},
+  {GST_VIDEO_FORMAT_Y42B, getline_Y42B, putline_Y42B},
+  {GST_VIDEO_FORMAT_Y444, getline_Y444, putline_Y444},
+  {GST_VIDEO_FORMAT_Y800, getline_Y800, putline_Y800},
+  {GST_VIDEO_FORMAT_Y16, getline_Y16, putline_Y16},
+  {GST_VIDEO_FORMAT_NV12, getline_NV12, putline_NV12},
+  {GST_VIDEO_FORMAT_NV21, getline_NV21, putline_NV21},
+  {GST_VIDEO_FORMAT_UYVP, getline_UYVP, putline_UYVP},
+  {GST_VIDEO_FORMAT_A420, getline_A420, putline_A420},
+  {GST_VIDEO_FORMAT_YUV9, getline_YUV9, putline_YUV9},
+  {GST_VIDEO_FORMAT_IYU1, getline_IYU1, putline_IYU1},
+
+  /* ARGB lines conversion */
+  {GST_VIDEO_FORMAT_RGB, getline_RGB, putline_RGB},
+  {GST_VIDEO_FORMAT_BGR, getline_BGR, putline_BGR},
+  {GST_VIDEO_FORMAT_RGBx, getline_RGBA, putline_RGBA},
+  {GST_VIDEO_FORMAT_RGBA, getline_RGBA, putline_RGBA},
+  {GST_VIDEO_FORMAT_ARGB, getline_ARGB, putline_ARGB},
+  {GST_VIDEO_FORMAT_RGB16, getline_RGB16, putline_RGB16},
+  {GST_VIDEO_FORMAT_BGR16, getline_BGR16, putline_BGR16},
+  {GST_VIDEO_FORMAT_BGR15, getline_BGR15, putline_BGR15},
+  {GST_VIDEO_FORMAT_RGB15, getline_RGB15, putline_RGB15},
+  {GST_VIDEO_FORMAT_BGRA, getline_BGRA, putline_BGRA},
+  {GST_VIDEO_FORMAT_ABGR, getline_ABGR, putline_ABGR},
+  {GST_VIDEO_FORMAT_BGRx, getline_BGRA, putline_BGRA}
+};
+
+static void
+matrix_identity (guint8 * tmpline, guint width)
+{
+}
+
+static void
+matrix_rgb_to_yuv (guint8 * tmpline, guint width)
+{
+  int i;
+  int r, g, b;
+  int y, u, v;
+
+  for (i = 0; i < width; i++) {
+    r = tmpline[i * 4 + 1];
+    g = tmpline[i * 4 + 2];
+    b = tmpline[i * 4 + 3];
+
+    y = (47 * r + 157 * g + 16 * b + 4096) >> 8;
+    u = (-26 * r - 87 * g + 112 * b + 32768) >> 8;
+    v = (112 * r - 102 * g - 10 * b + 32768) >> 8;
+
+    tmpline[i * 4 + 1] = CLAMP (y, 0, 255);
+    tmpline[i * 4 + 2] = CLAMP (u, 0, 255);
+    tmpline[i * 4 + 3] = CLAMP (v, 0, 255);
+  }
+}
+
+static void
+matrix_yuv_to_rgb (guint8 * tmpline, guint width)
+{
+  int i;
+  int r, g, b;
+  int y, u, v;
+
+  for (i = 0; i < width; i++) {
+    y = tmpline[i * 4 + 1];
+    u = tmpline[i * 4 + 2];
+    v = tmpline[i * 4 + 3];
+
+    r = (298 * y + 459 * v - 63514) >> 8;
+    g = (298 * y - 55 * u - 136 * v + 19681) >> 8;
+    b = (298 * y + 541 * u - 73988) >> 8;
+
+    tmpline[i * 4 + 1] = CLAMP (r, 0, 255);
+    tmpline[i * 4 + 2] = CLAMP (g, 0, 255);
+    tmpline[i * 4 + 3] = CLAMP (b, 0, 255);
+  }
+}
+
+static gboolean
+lookup_getput (GetPutLine * getput, GstVideoFormat fmt)
+{
+  int i;
+
+  getput->getline = NULL;
+  getput->putline = NULL;
+  getput->matrix = matrix_identity;
+
+  for (i = 0; i < sizeof (lines) / sizeof (lines[0]); i++) {
+    if (lines[i].format == fmt) {
+      getput->getline = lines[i].getline;
+      getput->putline = lines[i].putline;
+
+      return TRUE;
+    }
+  }
+  GST_WARNING ("Conversion from %i not supported", fmt);
+
+  return FALSE;
+}
+
+#define BLEND(ret, alpha, v0, v1) \
+{ \
+  ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \
+}
+
+void
+video_blend_scale_linear_RGBA (GstBlendVideoFormatInfo * src,
+    gint dest_height, gint dest_width)
+{
+  int acc;
+  int y_increment;
+  int x_increment;
+  int y1;
+  int i;
+  int j;
+  int x;
+  int dest_size;
+  guint dest_stride = dest_width * 4;
+  guint src_stride = src->width * 4;
+
+  guint8 *tmpbuf = g_malloc (dest_width * 8 * 4);
+  guint8 *dest_pixels =
+      g_malloc (gst_video_format_get_size (src->fmt, dest_height,
+          dest_width));
+
+  if (dest_height == 1)
+    y_increment = 0;
+  else
+    y_increment = ((src->height - 1) << 16) / (dest_height - 1) - 1;
+
+  if (dest_width == 1)
+    x_increment = 0;
+  else
+    x_increment = ((src->width - 1) << 16) / (dest_width - 1) - 1;
+
+  dest_size = dest_width * 4;
+
+#define LINE(x) ((tmpbuf) + (dest_size)*((x)&1))
+
+  acc = 0;
+  orc_resample_bilinear_u32 (LINE (0), src->pixels, 0, x_increment, dest_width);
+  y1 = 0;
+  for (i = 0; i < dest_height; i++) {
+    j = acc >> 16;
+    x = acc & 0xffff;
+
+    if (x == 0) {
+      memcpy (dest_pixels + i * dest_stride, LINE (j), dest_size);
+    } else {
+      if (j > y1) {
+        orc_resample_bilinear_u32 (LINE (j),
+            src->pixels + j * src_stride, 0, x_increment, dest_width);
+        y1++;
+      }
+      if (j >= y1) {
+        orc_resample_bilinear_u32 (LINE (j + 1),
+            src->pixels + (j + 1) * src_stride, 0, x_increment, dest_width);
+        y1++;
+      }
+      orc_merge_linear_u8 (dest_pixels + i * dest_stride,
+          LINE (j), LINE (j + 1), (x >> 8), dest_width * 4);
+    }
+
+    acc += y_increment;
+  }
+
+  /* Update src, our reference to the old src->pixels is lost */
+  video_blend_format_info_init (src, dest_pixels, dest_height, dest_width,
+      src->fmt);
+
+  g_free (tmpbuf);
+}
+
+/* video_blend:
+ * @dest: The #GstBlendVideoFormatInfo where to blend @src in
+ * @src: the #GstBlendVideoFormatInfo that we want to blend into
+ * @dest
+ * @x: The x offset in pixel where the @src image should be blended
+ * @y: the y offset in pixel where the @src image should be blended
+ *
+ * Lets you blend the @src image into the @dest image
+ */
+gboolean
+video_blend (GstBlendVideoFormatInfo * dest,
+    GstBlendVideoFormatInfo * src, guint x, guint y)
+{
+  guint i, j;
+  guint8 alpha;
+  GetPutLine getputdest, getputsrc;
+
+  gint src_stride = src->width * 4;
+  guint8 *tmpdestline = g_malloc (sizeof (guint8) * (dest->width + 8) * 4);
+  guint8 *tmpsrcline = g_malloc (sizeof (guint8) * (dest->width + 8) * 4);
+
+  ensure_debug_category ();
+
+
+  if (!lookup_getput (&getputdest, dest->fmt))
+    goto failed;
+
+  if (!lookup_getput (&getputsrc, src->fmt))
+    goto failed;
+
+  if (gst_video_format_is_rgb (src->fmt) != gst_video_format_is_rgb (dest->fmt))
+    getputsrc.matrix = gst_video_format_is_rgb (src->fmt) ?
+        matrix_rgb_to_yuv : matrix_yuv_to_rgb;
+
+  /* adjust src pointers for negative sizes */
+  if (x < 0) {
+    src += -x * 4;
+    src->width -= -x;
+    x = 0;
+  }
+
+  if (y < 0) {
+    src += -y * src_stride;
+    src->height -= -y;
+    y = 0;
+  }
+
+  /* adjust width/height if the src is bigger than dest */
+  if (x + src->width > dest->width)
+    src->width = dest->width - x;
+
+  if (y + src->height > dest->height)
+    src->height = dest->height - y;
+
+  /* Mainloop doing the needed conversions, and blending */
+  for (i = y; i < y + src->height; i++) {
+
+    getputdest.getline (tmpdestline, dest, x, i);
+    getputsrc.getline (tmpsrcline, src, 0, (i - y));
+
+    getputsrc.matrix (tmpsrcline, src->width);
+
+    /* Here dest and src are both either in AYUV or ARGB
+     * TODO: Make the orc version working properly*/
+    for (j = 0; j < src->width * 4; j += 4) {
+      alpha = tmpsrcline[j];
+
+      BLEND (tmpdestline[j + 1], alpha, tmpsrcline[j + 1], tmpdestline[j + 1]);
+      BLEND (tmpdestline[j + 2], alpha, tmpsrcline[j + 2], tmpdestline[j + 2]);
+      BLEND (tmpdestline[j + 3], alpha, tmpsrcline[j + 3], tmpdestline[j + 3]);
+    }
+
+    /* FIXME
+     * #if G_BYTE_ORDER == LITTLE_ENDIAN
+     * orc_blend_little (tmpdestline, tmpsrcline, dest->width);
+     * #else
+     * orc_blend_big (tmpdestline, tmpsrcline, src->width);
+     * #endif
+     */
+
+    getputdest.putline (dest, src, tmpdestline, x, i);
+
+  }
+
+  g_free (tmpdestline);
+  g_free (tmpsrcline);
+
+  return TRUE;
+
+failed:
+  GST_WARNING ("Could not do the blending");
+  g_free (tmpdestline);
+  g_free (tmpsrcline);
+
+  return FALSE;
+}
+
+/* video_blend_format_info_init:
+ * @info: The #GstBlendVideoFormatInfo to initialize
+ * @pixels: The pixels data in @fmt format
+ * @height: The height of the image
+ * @width: the width of the image
+ * @fmt: The #GstVideoFormat of the image
+ *
+ * Initializes a GstBlendVideoFormatInfo.
+ * This function can be called on already initialized instances.
+ */
+void
+video_blend_format_info_init (GstBlendVideoFormatInfo * info,
+    guint8 * pixels, guint height, guint width, GstVideoFormat fmt)
+{
+  guint nb_component = gst_video_format_has_alpha (fmt) ? 4 : 3;
+
+  ensure_debug_category ();
+
+  GST_DEBUG
+      ("Initializing video bleding info, height %i, width %i, fmt %i nb_component %i",
+      height, width, fmt, nb_component);
+
+  info->width = width;
+  info->height = height;
+  info->pixels = pixels;
+  info->fmt = fmt;
+  info->size = gst_video_format_get_size (fmt, height, width);
+
+  fill_planes (info);
+}
diff --git a/gst-libs/gst/video/video-blend.h b/gst-libs/gst/video/video-blend.h
new file mode 100644 (file)
index 0000000..3f5e0cd
--- /dev/null
@@ -0,0 +1,73 @@
+/* Gstreamer video blending utility functions
+ *
+ * Copyright (C) <2011> Intel Corporation
+ * Copyright (C) <2011> Collabora Ltd.
+ * Copyright (C) <2011> Thibault Saunier <thibault.saunier@collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+#ifndef  __GST_VIDEO_BLEND__
+#define  __GST_VIDEO_BLEND__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+#define MAX_VIDEO_PLANES 4
+
+typedef struct _GstBlendVideoFormatInfo GstBlendVideoFormatInfo;
+
+/* GstBlendVideoFormatInfo:
+ * @fmt: The #GstVideoFormat describing the video format
+ * @width: The width of the video
+ * @height: The height of the video
+ * @pixels: The buffer containing the pixels of the video
+ * @size: The size in byte of @pixels
+ * @offset: The offsets of the different component of the video
+ * @stride: The stride of the different component of the video
+ *
+ * Information describing image properties containing necessary
+ * fields to do video blending.
+ */
+struct _GstBlendVideoFormatInfo
+{
+    GstVideoFormat  fmt;
+
+    gint            width;
+    gint            height;
+
+    guint8        * pixels;
+    gsize           size;
+
+    /* YUV components: Y=0, U=1, V=2, A=3
+     * RGB components: R=0, G=1, B=2, A=3 */
+    gint            offset[MAX_VIDEO_PLANES];
+    gint            stride[MAX_VIDEO_PLANES];
+};
+
+void       video_blend_format_info_init   (GstBlendVideoFormatInfo * info,
+                                           guint8 *pixels, guint height,
+                                           guint width, GstVideoFormat fmt);
+
+void       video_blend_scale_linear_RGBA  (GstBlendVideoFormatInfo * src,
+                                           gint dest_height, gint dest_width);
+
+gboolean   video_blend                    (GstBlendVideoFormatInfo * dest,
+                                           GstBlendVideoFormatInfo * src,
+                                           guint x, guint y);
+
+#endif
diff --git a/gst-libs/gst/video/video-overlay-composition.c b/gst-libs/gst/video/video-overlay-composition.c
new file mode 100644 (file)
index 0000000..3bfbad1
--- /dev/null
@@ -0,0 +1,1019 @@
+/* GStreamer Video Overlay Composition
+ * Copyright (C) 2011 Intel Corporation
+ * Copyright (C) 2011 Collabora Ltd.
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstvideooverlaycomposition
+ * @short_description: Video Buffer Overlay Compositions (Subtitles, Logos)
+ *
+ * <refsect2>
+ * <para>
+ * Functions to create and handle overlay compositions on video buffers.
+ * </para>
+ * <para>
+ * An overlay composition describes one or more overlay rectangles to be
+ * blended on top of a video buffer.
+ * </para>
+ * <para>
+ * This API serves two main purposes:
+ * <itemizedlist>
+ * <listitem>
+ * it can be used to attach overlay information (subtitles or logos)
+ * to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
+ * blending of the overlay can then be done by e.g. the video sink that
+ * processes these non-raw buffers.
+ * </listitem>
+ * <listitem>
+ * it can also be used to blend overlay rectangles on top of raw video
+ * buffers, thus consolidating blending functionality for raw video in
+ * one place.
+ * </listitem>
+ * Together, this allows existing overlay elements to easily handle raw
+ * and non-raw video as input in without major changes (once the overlays
+ * have been put into a #GstOverlayComposition object anyway) - for raw
+ * video the overlay can just use the blending function to blend the data
+ * on top of the video, and for surface buffers it can just attach them to
+ * the buffer and let the sink render the overlays.
+ * </itemizedlist>
+ * </para>
+ * </refsect2>
+ *
+ * Since: 0.10.36
+ */
+
+/* TODO:
+ *  - provide accessors for seq_num and other fields (as needed)
+ *  - allow overlay to set/get original pango markup string on/from rectangle
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "video-overlay-composition.h"
+#include "video-blend.h"
+
+struct _GstVideoOverlayComposition
+{
+  GstMiniObject parent;
+
+  guint num_rectangles;
+  GstVideoOverlayRectangle **rectangles;
+
+  /* lowest rectangle sequence number still used by the upstream
+   * overlay element. This way a renderer maintaining some kind of
+   * rectangles <-> surface cache can know when to free cached
+   * surfaces/rectangles. */
+  guint min_seq_num_used;
+
+  /* sequence number for the composition (same series as rectangles) */
+  guint seq_num;
+};
+
+struct _GstVideoOverlayCompositionClass
+{
+  GstMiniObjectClass parent_class;
+};
+
+struct _GstVideoOverlayRectangle
+{
+  GstMiniObject parent;
+
+  /* Position on video frame and dimension of output rectangle in
+   * output frame terms (already adjusted for the PAR of the output
+   * frame). x/y can be negative (overlay will be clipped then) */
+  gint x, y;
+  guint render_width, render_height;
+
+  /* Dimensions of overlay pixels */
+  guint width, height, stride;
+
+  /* The format of the data in pixels */
+  GstVideoFormat format;
+
+  /* Refcounted blob of memory, no caps or timestamps */
+  GstBuffer *pixels;
+
+  /* FIXME: how to express source like text or pango markup?
+   *        (just add source type enum + source buffer with data)
+   *
+   * FOR 0.10: always send pixel blobs, but attach source data in
+   * addition (reason: if downstream changes, we can't renegotiate
+   * that properly, if we just do a query of supported formats from
+   * the start). Sink will just ignore pixels and use pango markup
+   * from source data if it supports that.
+   *
+   * FOR 0.11: overlay should query formats (pango markup, pixels)
+   * supported by downstream and then only send that. We can
+   * renegotiate via the reconfigure event.
+   */
+
+  /* sequence number: useful for backends/renderers/sinks that want
+   * to maintain a cache of rectangles <-> surfaces. The value of
+   * the min_seq_num_used in the composition tells the renderer which
+   * rectangles have expired. */
+  guint seq_num;
+
+  /* FIXME: we may also need a (private) way to cache converted/scaled
+   * pixel blobs */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+  GStaticMutex lock;
+#else
+  GMutex lock;
+#endif
+
+  GList *scaled_rectangles;
+};
+
+struct _GstVideoOverlayRectangleClass
+{
+  GstMiniObjectClass parent_class;
+};
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+#define GST_RECTANGLE_LOCK(rect)   g_static_mutex_lock(&rect->lock)
+#define GST_RECTANGLE_UNLOCK(rect) g_static_mutex_unlock(&rect->lock)
+#else
+#define GST_RECTANGLE_LOCK(rect)   g_mutex_lock(&rect->lock)
+#define GST_RECTANGLE_UNLOCK(rect) g_mutex_unlock(&rect->lock)
+#endif
+
+static void gst_video_overlay_composition_class_init (GstMiniObjectClass * k);
+static void gst_video_overlay_composition_finalize (GstMiniObject * comp);
+static void gst_video_overlay_rectangle_class_init (GstMiniObjectClass * klass);
+static void gst_video_overlay_rectangle_finalize (GstMiniObject * rect);
+
+/* --------------------------- utility functions --------------------------- */
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT ensure_debug_category()
+
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    gsize cat_done;
+
+    cat_done = (gsize) _gst_debug_category_new ("video-composition", 0,
+        "video overlay composition");
+
+    g_once_init_leave (&cat_gonce, cat_done);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+
+#else
+
+#define ensure_debug_category() /* NOOP */
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+static guint
+gst_video_overlay_get_seqnum (void)
+{
+  static gint seqnum;           /* 0 */
+
+#if GLIB_CHECK_VERSION(2,29,5)
+  return (guint) g_atomic_int_add (&seqnum, 1);
+#else
+  return (guint) g_atomic_int_exchange_and_add (&seqnum, 1);
+#endif
+}
+
+#define GST_OVERLAY_COMPOSITION_QUARK gst_overlay_composition_quark_get()
+static GQuark
+gst_overlay_composition_quark_get (void)
+{
+  static gsize quark_gonce = 0;
+
+  if (g_once_init_enter (&quark_gonce)) {
+    gsize quark;
+
+    quark = (gsize) g_quark_from_static_string ("GstVideoOverlayComposition");
+
+    g_once_init_leave (&quark_gonce, quark);
+  }
+
+  return (GQuark) quark_gonce;
+}
+
+#define COMPOSITION_QUARK composition_quark_get()
+static GQuark
+composition_quark_get (void)
+{
+  static gsize quark_gonce = 0;
+
+  if (g_once_init_enter (&quark_gonce)) {
+    gsize quark;
+
+    quark = (gsize) g_quark_from_static_string ("composition");
+
+    g_once_init_leave (&quark_gonce, quark);
+  }
+
+  return (GQuark) quark_gonce;
+}
+
+/**
+ * gst_video_buffer_set_overlay_composition:
+ * @buf: a #GstBuffer
+ * @comp: (allow-none): a #GstVideoOverlayComposition, or NULL to clear a
+ *     previously-set composition
+ *
+ * Sets an overlay composition on a buffer. The buffer will obtain its own
+ * reference to the composition, meaning this function does not take ownership
+ * of @comp.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_buffer_set_overlay_composition (GstBuffer * buf,
+    GstVideoOverlayComposition * comp)
+{
+  gst_buffer_set_qdata (buf, GST_OVERLAY_COMPOSITION_QUARK,
+      gst_structure_id_new (GST_OVERLAY_COMPOSITION_QUARK,
+          COMPOSITION_QUARK, GST_TYPE_VIDEO_OVERLAY_COMPOSITION, comp, NULL));
+}
+
+/**
+ * gst_video_buffer_get_overlay_composition:
+ * @buf: a #GstBuffer
+ *
+ * Get the overlay composition that has previously been attached to a buffer
+ * with gst_video_buffer_get_overlay_composition(), usually by another element
+ * upstream.
+ *
+ * Returns: (transfer none): the #GstVideoOverlayComposition attached to
+ *    this buffer, or NULL. Does not return a reference to the composition,
+ *    caller must obtain her own ref via gst_video_overlay_composition_ref()
+ *    if needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_buffer_get_overlay_composition (GstBuffer * buf)
+{
+  const GstStructure *s;
+  const GValue *val;
+
+  s = gst_buffer_get_qdata (buf, GST_OVERLAY_COMPOSITION_QUARK);
+  if (s == NULL)
+    return NULL;
+
+  val = gst_structure_id_get_value (s, COMPOSITION_QUARK);
+  if (val == NULL)
+    return NULL;
+
+  return GST_VIDEO_OVERLAY_COMPOSITION (gst_value_get_mini_object (val));
+}
+
+/* ------------------------------ composition ------------------------------ */
+
+#define RECTANGLE_ARRAY_STEP 4  /* premature optimization */
+
+GType
+gst_video_overlay_composition_get_type (void)
+{
+  static volatile gsize type_id = 0;
+
+  if (g_once_init_enter (&type_id)) {
+    GType new_type_id = g_type_register_static_simple (GST_TYPE_MINI_OBJECT,
+        g_intern_static_string ("GstVideoOverlayComposition"),
+        sizeof (GstVideoOverlayCompositionClass),
+        (GClassInitFunc) gst_video_overlay_composition_class_init,
+        sizeof (GstVideoOverlayComposition),
+        NULL,
+        (GTypeFlags) 0);
+
+    g_once_init_leave (&type_id, new_type_id);
+  }
+
+  return type_id;
+}
+
+static void
+gst_video_overlay_composition_finalize (GstMiniObject * mini_obj)
+{
+  GstVideoOverlayComposition *comp = (GstVideoOverlayComposition *) mini_obj;
+  guint num;
+
+  num = comp->num_rectangles;
+
+  while (num > 0) {
+    gst_video_overlay_rectangle_unref (comp->rectangles[num - 1]);
+    --num;
+  }
+
+  g_free (comp->rectangles);
+  comp->rectangles = NULL;
+  comp->num_rectangles = 0;
+
+  /* not chaining up to GstMiniObject's finalize for now, we know it's empty */
+}
+
+static void
+gst_video_overlay_composition_class_init (GstMiniObjectClass * klass)
+{
+  klass->finalize = gst_video_overlay_composition_finalize;
+  klass->copy = (GstMiniObjectCopyFunction) gst_video_overlay_composition_copy;
+}
+
+/**
+ * gst_video_overlay_composition_new:
+ * @rectangle: (transfer none): a #GstVideoOverlayRectangle to add to the
+ *     composition
+ *
+ * Creates a new video overlay composition object to hold one or more
+ * overlay rectangles.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayComposition. Unref with
+ *     gst_video_overlay_composition_unref() when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_overlay_composition_new (GstVideoOverlayRectangle * rectangle)
+{
+  GstVideoOverlayComposition *comp;
+
+
+  /* FIXME: should we allow empty compositions? Could also be expressed as
+   * buffer without a composition on it. Maybe there are cases where doing
+   * an empty new + _add() in a loop is easier? */
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+
+  comp = (GstVideoOverlayComposition *)
+      gst_mini_object_new (GST_TYPE_VIDEO_OVERLAY_COMPOSITION);
+
+  comp->rectangles = g_new0 (GstVideoOverlayRectangle *, RECTANGLE_ARRAY_STEP);
+  comp->rectangles[0] = gst_video_overlay_rectangle_ref (rectangle);
+  comp->num_rectangles = 1;
+
+  comp->seq_num = gst_video_overlay_get_seqnum ();
+
+  /* since the rectangle was created earlier, its seqnum is smaller than ours */
+  comp->min_seq_num_used = rectangle->seq_num;
+
+  GST_LOG ("new composition %p: seq_num %u with rectangle %p", comp,
+      comp->seq_num, rectangle);
+
+  return comp;
+}
+
+/**
+ * gst_video_overlay_composition_add_rectangle:
+ * @comp: a #GstVideoOverlayComposition
+ * @rectangle: (transfer none): a #GstVideoOverlayRectangle to add to the
+ *     composition
+ *
+ * Adds an overlay rectangle to an existing overlay composition object. This
+ * must be done right after creating the overlay composition.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_overlay_composition_add_rectangle (GstVideoOverlayComposition * comp,
+    GstVideoOverlayRectangle * rectangle)
+{
+  g_return_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp));
+  g_return_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle));
+  g_return_if_fail (GST_MINI_OBJECT_REFCOUNT_VALUE (comp) == 1);
+
+  if (comp->num_rectangles % RECTANGLE_ARRAY_STEP == 0) {
+    comp->rectangles =
+        g_renew (GstVideoOverlayRectangle *, comp->rectangles,
+        comp->num_rectangles + RECTANGLE_ARRAY_STEP);
+  }
+
+  comp->rectangles[comp->num_rectangles] =
+      gst_video_overlay_rectangle_ref (rectangle);
+  comp->num_rectangles += 1;
+
+  comp->min_seq_num_used = MIN (comp->min_seq_num_used, rectangle->seq_num);
+
+  GST_LOG ("composition %p: added rectangle %p", comp, rectangle);
+}
+
+/**
+ * gst_video_overlay_composition_n_rectangles:
+ * @comp: a #GstVideoOverlayComposition
+ *
+ * Returns the number of #GstVideoOverlayRectangle<!-- -->s contained in @comp.
+ *
+ * Returns: the number of rectangles
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_video_overlay_composition_n_rectangles (GstVideoOverlayComposition * comp)
+{
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), 0);
+
+  return comp->num_rectangles;
+}
+
+/**
+ * gst_video_overlay_composition_get_rectangle:
+ * @comp: a #GstVideoOverlayComposition
+ * @n: number of the rectangle to get
+ *
+ * Returns the @n-th #GstVideoOverlayRectangle contained in @comp.
+ *
+ * Returns: (transfer none): the @n-th rectangle, or NULL if @n is out of
+ *     bounds. Will not return a new reference, the caller will need to
+ *     obtain her own reference using gst_video_overlay_rectangle_ref()
+ *     if needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayRectangle *
+gst_video_overlay_composition_get_rectangle (GstVideoOverlayComposition * comp,
+    guint n)
+{
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), NULL);
+
+  if (n >= comp->num_rectangles)
+    return NULL;
+
+  return comp->rectangles[n];
+}
+
+static gboolean
+gst_video_overlay_rectangle_needs_scaling (GstVideoOverlayRectangle * r)
+{
+  return (r->width != r->render_width || r->height != r->render_height);
+}
+
+/**
+ * gst_video_overlay_composition_blend:
+ * @comp: a #GstVideoOverlayComposition
+ * @video_buf: a #GstBuffer containing raw video data in a supported format
+ *
+ * Blends the overlay rectangles in @comp on top of the raw video data
+ * contained in @video_buf. The data in @video_buf must be writable. If
+ * needed, use gst_buffer_make_writable() before calling this function to
+ * ensure a buffer is writable. @video_buf must also have valid raw video
+ * caps set on it.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_overlay_composition_blend (GstVideoOverlayComposition * comp,
+    GstBuffer * video_buf)
+{
+  GstBlendVideoFormatInfo video_info, rectangle_info;
+  GstVideoFormat fmt;
+  gboolean ret = TRUE;
+  guint n, num;
+  int w, h;
+
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), FALSE);
+  g_return_val_if_fail (GST_IS_BUFFER (video_buf), FALSE);
+  g_return_val_if_fail (gst_buffer_is_writable (video_buf), FALSE);
+  g_return_val_if_fail (GST_BUFFER_CAPS (video_buf) != NULL, FALSE);
+
+  if (!gst_video_format_parse_caps (GST_BUFFER_CAPS (video_buf), &fmt, &w, &h)) {
+    gchar *str = gst_caps_to_string (GST_BUFFER_CAPS (video_buf));
+    g_warning ("%s: could not parse video buffer caps '%s'", GST_FUNCTION, str);
+    g_free (str);
+    return FALSE;
+  }
+
+  video_blend_format_info_init (&video_info, GST_BUFFER_DATA (video_buf),
+      h, w, fmt);
+
+  num = comp->num_rectangles;
+  GST_LOG ("Blending composition %p with %u rectangles onto video buffer %p "
+      "(%ux%u, format %u)", comp, num, video_buf, w, h, fmt);
+
+  for (n = 0; n < num; ++n) {
+    GstVideoOverlayRectangle *rect;
+    gboolean needs_scaling;
+
+    rect = comp->rectangles[n];
+
+    GST_LOG (" rectangle %u %p: %ux%u, format %u", n, rect, rect->height,
+        rect->width, rect->format);
+
+    video_blend_format_info_init (&rectangle_info,
+        GST_BUFFER_DATA (rect->pixels), rect->height, rect->width,
+        rect->format);
+
+    needs_scaling = gst_video_overlay_rectangle_needs_scaling (rect);
+    if (needs_scaling) {
+      video_blend_scale_linear_RGBA (&rectangle_info, rect->render_height,
+          rect->render_width);
+    }
+
+    ret = video_blend (&video_info, &rectangle_info, rect->x, rect->y);
+    if (!ret) {
+      GST_WARNING ("Could not blend overlay rectangle onto video buffer");
+    }
+
+    /* FIXME: should cache scaled pixels in the rectangle struct */
+    if (needs_scaling)
+      g_free (rectangle_info.pixels);
+  }
+
+  return ret;
+}
+
+/**
+ * gst_video_overlay_composition_copy:
+ * @comp: (transfer none): a #GstVideoOverlayComposition to copy
+ *
+ * Makes a copy of @comp and all contained rectangles, so that it is possible
+ * to modify the composition and contained rectangles (e.g. add additional
+ * rectangles or change the render co-ordinates or render dimension). The
+ * actual overlay pixel data buffers contained in the rectangles are not
+ * copied.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayComposition equivalent
+ *     to @comp.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_overlay_composition_copy (GstVideoOverlayComposition * comp)
+{
+  GstVideoOverlayComposition *copy;
+  GstVideoOverlayRectangle *rect;
+  guint n;
+
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), NULL);
+
+  if (G_LIKELY (comp->num_rectangles == 0))
+    return gst_video_overlay_composition_new (NULL);
+
+  rect = gst_video_overlay_rectangle_copy (comp->rectangles[0]);
+  copy = gst_video_overlay_composition_new (rect);
+  gst_video_overlay_rectangle_unref (rect);
+
+  for (n = 1; n < comp->num_rectangles; ++n) {
+    rect = gst_video_overlay_rectangle_copy (comp->rectangles[n]);
+    gst_video_overlay_composition_add_rectangle (copy, rect);
+    gst_video_overlay_rectangle_unref (rect);
+  }
+
+  return copy;
+}
+
+/**
+ * gst_video_overlay_composition_make_writable:
+ * @comp: (transfer full): a #GstVideoOverlayComposition to copy
+ *
+ * Takes ownership of @comp and returns a version of @comp that is writable
+ * (i.e. can be modified). Will either return @comp right away, or create a
+ * new writable copy of @comp and unref @comp itself. All the contained
+ * rectangles will also be copied, but the actual overlay pixel data buffers
+ * contained in the rectangles are not copied.
+ *
+ * Returns: (transfer full): a writable #GstVideoOverlayComposition
+ *     equivalent to @comp.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_overlay_composition_make_writable (GstVideoOverlayComposition * comp)
+{
+  GstVideoOverlayComposition *writable_comp;
+
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), NULL);
+
+  if (GST_MINI_OBJECT_REFCOUNT_VALUE (comp) == 1) {
+    guint n;
+
+    for (n = 0; n < comp->num_rectangles; ++n) {
+      if (GST_MINI_OBJECT_REFCOUNT_VALUE (comp->rectangles[n]) != 1)
+        goto copy;
+    }
+    return comp;
+  }
+
+copy:
+
+  writable_comp = gst_video_overlay_composition_copy (comp);
+  gst_video_overlay_composition_unref (comp);
+
+  return writable_comp;
+}
+
+/**
+ * gst_video_overlay_composition_get_seqnum:
+ * @comp: a #GstVideoOverlayComposition
+ *
+ * Returns the sequence number of this composition. Sequence numbers are
+ * monotonically increasing and unique for overlay compositions and rectangles
+ * (meaning there will never be a rectangle with the same sequence number as
+ * a composition).
+ *
+ * Returns: the sequence number of @comp
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_video_overlay_composition_get_seqnum (GstVideoOverlayComposition * comp)
+{
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), 0);
+
+  return comp->seq_num;
+}
+
+/* ------------------------------ rectangles ------------------------------ -*/
+
+static void gst_video_overlay_rectangle_instance_init (GstMiniObject * miniobj);
+
+GType
+gst_video_overlay_rectangle_get_type (void)
+{
+  static volatile gsize type_id = 0;
+
+  if (g_once_init_enter (&type_id)) {
+    GType new_type_id = g_type_register_static_simple (GST_TYPE_MINI_OBJECT,
+        g_intern_static_string ("GstVideoOverlayRectangle"),
+        sizeof (GstVideoOverlayRectangleClass),
+        (GClassInitFunc) gst_video_overlay_rectangle_class_init,
+        sizeof (GstVideoOverlayRectangle),
+        (GInstanceInitFunc) gst_video_overlay_rectangle_instance_init,
+        (GTypeFlags) 0);
+
+    g_once_init_leave (&type_id, new_type_id);
+  }
+
+  return type_id;
+}
+
+static void
+gst_video_overlay_rectangle_finalize (GstMiniObject * mini_obj)
+{
+  GstVideoOverlayRectangle *rect = (GstVideoOverlayRectangle *) mini_obj;
+
+  gst_buffer_replace (&rect->pixels, NULL);
+
+  while (rect->scaled_rectangles != NULL) {
+    GstVideoOverlayRectangle *scaled_rect = rect->scaled_rectangles->data;
+
+    gst_video_overlay_rectangle_unref (scaled_rect);
+
+    rect->scaled_rectangles =
+        g_list_delete_link (rect->scaled_rectangles, rect->scaled_rectangles);
+  }
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+  g_static_mutex_free (&rect->lock);
+#else
+  g_mutex_clear (&rect->lock);
+#endif
+  /* not chaining up to GstMiniObject's finalize for now, we know it's empty */
+}
+
+static void
+gst_video_overlay_rectangle_class_init (GstMiniObjectClass * klass)
+{
+  klass->finalize = gst_video_overlay_rectangle_finalize;
+  klass->copy = (GstMiniObjectCopyFunction) gst_video_overlay_rectangle_copy;
+}
+
+static void
+gst_video_overlay_rectangle_instance_init (GstMiniObject * mini_obj)
+{
+  GstVideoOverlayRectangle *rect = (GstVideoOverlayRectangle *) mini_obj;
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+  g_static_mutex_init (&rect->lock);
+#else
+  g_mutex_init (&rect->lock);
+#endif
+}
+
+/**
+ * gst_video_overlay_rectangle_new_argb:
+ * @pixels: (transfer none): a #GstBuffer pointing to the pixel memory
+ * @width: the width of the rectangle in @pixels
+ * @height: the height of the rectangle in @pixels
+ * @stride: the stride of the rectangle in @pixels in bytes (&gt;= 4*width)
+ * @x: the X co-ordinate on the video where the top-left corner of this
+ *     overlay rectangle should be rendered to
+ * @y: the Y co-ordinate on the video where the top-left corner of this
+ *     overlay rectangle should be rendered to
+ * @render_width: the render width of this rectangle on the video
+ * @render_height: the render height of this rectangle on the video
+ * @flags: flags (currently unused)
+ *
+ * Creates a new video overlay rectangle with ARGB pixel data. The layout
+ * of the components in memory is B-G-R-A on little-endian platforms
+ * (corresponding to #GST_VIDEO_FORMAT_BGRA) and A-R-G-B on big-endian
+ * platforms (corresponding to #GST_VIDEO_FORMAT_ARGB). In other words,
+ * pixels are treated as 32-bit words and the lowest 8 bits then contain
+ * the blue component value and the highest 8 bits contain the alpha
+ * component value. The RGB values are non-premultiplied. This is the
+ * format that is used by most hardware, and also many rendering libraries
+ * such as Cairo, for example.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayRectangle. Unref with
+ *     gst_video_overlay_rectangle_unref() when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_new_argb (GstBuffer * pixels,
+    guint width, guint height, guint stride, gint render_x, gint render_y,
+    guint render_width, guint render_height, GstVideoOverlayFormatFlags flags)
+{
+  GstVideoOverlayRectangle *rect;
+
+  g_return_val_if_fail (GST_IS_BUFFER (pixels), NULL);
+  /* technically ((height-1)*stride)+width might be okay too */
+  g_return_val_if_fail (GST_BUFFER_SIZE (pixels) >= height * stride, NULL);
+  g_return_val_if_fail (stride >= (4 * width), NULL);
+  g_return_val_if_fail (height > 0 && width > 0, NULL);
+  g_return_val_if_fail (render_height > 0 && render_width > 0, NULL);
+  g_return_val_if_fail (flags == 0, NULL);
+
+  rect = (GstVideoOverlayRectangle *)
+      gst_mini_object_new (GST_TYPE_VIDEO_OVERLAY_RECTANGLE);
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  rect->format = GST_VIDEO_FORMAT_BGRA;
+#else
+  rect->format = GST_VIDEO_FORMAT_ARGB;
+#endif
+  rect->pixels = gst_buffer_ref (pixels);
+
+  rect->width = width;
+  rect->height = height;
+  rect->stride = stride;
+
+  rect->x = render_x;
+  rect->y = render_y;
+  rect->render_width = render_width;
+  rect->render_height = render_height;
+
+  rect->seq_num = gst_video_overlay_get_seqnum ();
+
+  GST_LOG ("new rectangle %p: %ux%u => %ux%u @ %u,%u, seq_num %u, format %u, "
+      "pixels %p", rect, width, height, render_width, render_height, render_x,
+      render_y, rect->seq_num, rect->format, pixels);
+
+  return rect;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_render_rectangle:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @render_x: (out) (allow-none): address where to store the X render offset
+ * @render_y: (out) (allow-none): address where to store the Y render offset
+ * @render_width: (out) (allow-none): address where to store the render width
+ * @render_height: (out) (allow-none): address where to store the render height
+ *
+ * Retrieves the render position and render dimension of the overlay
+ * rectangle on the video.
+ *
+ * Returns: TRUE if valid render dimensions were retrieved.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_overlay_rectangle_get_render_rectangle (GstVideoOverlayRectangle *
+    rectangle, gint * render_x, gint * render_y, guint * render_width,
+    guint * render_height)
+{
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), FALSE);
+
+  if (render_x)
+    *render_x = rectangle->x;
+  if (render_y)
+    *render_y = rectangle->y;
+  if (render_width)
+    *render_width = rectangle->render_width;
+  if (render_height)
+    *render_height = rectangle->render_height;
+
+  return TRUE;
+}
+
+/**
+ * gst_video_overlay_rectangle_set_render_rectangle:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @render_x: render X position of rectangle on video
+ * @render_y: render Y position of rectangle on video
+ * @render_width: render width of rectangle
+ * @render_height: render height of rectangle
+ *
+ * Sets the render position and dimensions of the rectangle on the video.
+ * This function is mainly for elements that modify the size of the video
+ * in some way (e.g. through scaling or cropping) and need to adjust the
+ * details of any overlays to match the operation that changed the size.
+ *
+ * @rectangle must be writable, meaning its refcount must be 1. You can
+ * make the rectangles inside a #GstVideoOverlayComposition writable using
+ * gst_video_overlay_composition_make_writable() or
+ * gst_video_overlay_composition_copy().
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_overlay_rectangle_set_render_rectangle (GstVideoOverlayRectangle *
+    rectangle, gint render_x, gint render_y, guint render_width,
+    guint render_height)
+{
+  g_return_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle));
+  g_return_if_fail (GST_MINI_OBJECT_REFCOUNT_VALUE (rectangle) == 1);
+
+  rectangle->x = render_x;
+  rectangle->y = render_y;
+  rectangle->render_width = render_width;
+  rectangle->render_height = render_height;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_pixels_argb:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @stride: (out) (allow-none): address of guint variable where to store the
+ *    row stride of the ARGB pixel data in the buffer
+ * @flags: flags (unused)
+ *
+ * Returns: (transfer none): a #GstBuffer holding the ARGB pixel data with
+ *    row stride @stride and width and height of the render dimensions as per
+ *    gst_video_overlay_rectangle_get_render_rectangle(). This function does
+ *    not return a reference, the caller should obtain a reference of her own
+ *    with gst_buffer_ref() if needed.
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_video_overlay_rectangle_get_pixels_argb (GstVideoOverlayRectangle *
+    rectangle, guint * stride, GstVideoOverlayFormatFlags flags)
+{
+  GstVideoOverlayRectangle *scaled_rect = NULL;
+  GstBlendVideoFormatInfo info;
+  GstBuffer *buf;
+  GList *l;
+
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+  g_return_val_if_fail (flags == 0, NULL);
+  g_return_val_if_fail (stride != NULL, NULL);
+
+  /* This assumes we don't need to adjust the format */
+  if (rectangle->render_width == rectangle->width &&
+      rectangle->render_height == rectangle->height) {
+    *stride = rectangle->stride;
+    return rectangle->pixels;
+  }
+
+  /* see if we've got one cached already */
+  GST_RECTANGLE_LOCK (rectangle);
+  for (l = rectangle->scaled_rectangles; l != NULL; l = l->next) {
+    GstVideoOverlayRectangle *r = l->data;
+
+    if (r->width == rectangle->render_width &&
+        r->height == rectangle->render_height) {
+      /* we'll keep these rectangles around until finalize, so it's ok not
+       * to take our own ref here */
+      scaled_rect = r;
+      break;
+    }
+  }
+  GST_RECTANGLE_UNLOCK (rectangle);
+
+  if (scaled_rect != NULL)
+    goto done;
+
+  /* not cached yet, do the scaling and put the result into our cache */
+  video_blend_format_info_init (&info, GST_BUFFER_DATA (rectangle->pixels),
+      rectangle->height, rectangle->width, rectangle->format);
+
+  video_blend_scale_linear_RGBA (&info, rectangle->render_height,
+      rectangle->render_width);
+
+  buf = gst_buffer_new ();
+  GST_BUFFER_DATA (buf) = info.pixels;
+  GST_BUFFER_MALLOCDATA (buf) = info.pixels;
+  GST_BUFFER_SIZE (buf) = info.size;
+
+  scaled_rect = gst_video_overlay_rectangle_new_argb (buf,
+      rectangle->render_width, rectangle->render_height, info.stride[0],
+      0, 0, rectangle->render_width, rectangle->render_height, 0);
+
+  gst_buffer_unref (buf);
+
+  GST_RECTANGLE_LOCK (rectangle);
+  rectangle->scaled_rectangles =
+      g_list_prepend (rectangle->scaled_rectangles, scaled_rect);
+  GST_RECTANGLE_UNLOCK (rectangle);
+
+done:
+
+  *stride = scaled_rect->stride;
+  return scaled_rect->pixels;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_pixels_unscaled_argb:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @width: (out): address where to store the width of the unscaled
+ *    rectangle in pixels
+ * @width: (out): address where to store the height of the unscaled
+ *    rectangle in pixels
+ * @stride: (out): address of guint variable where to store the row
+ *    stride of the ARGB pixel data in the buffer
+ * @flags: flags for future use (unused)
+ *
+ * Retrieves the pixel data as it is. This is useful if the caller can
+ * do the scaling itself when handling the overlaying. The rectangle will
+ * need to be scaled to the render dimensions, which can be retrieved using
+ * gst_video_overlay_rectangle_get_render_rectangle().
+ *
+ * Returns: (transfer none): a #GstBuffer holding the ARGB pixel data with
+ *    row stride @stride. This function does not return a reference, the caller
+ *    should obtain a reference of her own with gst_buffer_ref() if needed.
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_video_overlay_rectangle_get_pixels_unscaled_argb (GstVideoOverlayRectangle *
+    rectangle, guint * width, guint * height, guint * stride,
+    GstVideoOverlayFormatFlags flags)
+{
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+  g_return_val_if_fail (width != NULL, NULL);
+  g_return_val_if_fail (height != NULL, NULL);
+  g_return_val_if_fail (stride != NULL, NULL);
+  g_return_val_if_fail (flags == 0, NULL);
+
+  *width = rectangle->width;
+  *height = rectangle->height;
+  *stride = rectangle->stride;
+
+  return rectangle->pixels;
+}
+
+/**
+ * gst_video_overlay_rectangle_copy:
+ * @rectangle: (transfer none): a #GstVideoOverlayRectangle to copy
+ *
+ * Makes a copy of @rectangle, so that it is possible to modify it
+ * (e.g. to change the render co-ordinates or render dimension). The
+ * actual overlay pixel data buffers contained in the rectangle are not
+ * copied.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayRectangle equivalent
+ *     to @rectangle.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_copy (GstVideoOverlayRectangle * rectangle)
+{
+  GstVideoOverlayRectangle *copy;
+
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+
+  copy = gst_video_overlay_rectangle_new_argb (rectangle->pixels,
+      rectangle->width, rectangle->height, rectangle->stride,
+      rectangle->x, rectangle->y,
+      rectangle->render_width, rectangle->render_height, 0);
+
+  return copy;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_seqnum:
+ * @rectangle: a #GstVideoOverlayRectangle
+ *
+ * Returns the sequence number of this rectangle. Sequence numbers are
+ * monotonically increasing and unique for overlay compositions and rectangles
+ * (meaning there will never be a rectangle with the same sequence number as
+ * a composition).
+ *
+ * Returns: the sequence number of @rectangle
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_video_overlay_rectangle_get_seqnum (GstVideoOverlayRectangle * rectangle)
+{
+  g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), 0);
+
+  return rectangle->seq_num;
+}
diff --git a/gst-libs/gst/video/video-overlay-composition.h b/gst-libs/gst/video/video-overlay-composition.h
new file mode 100644 (file)
index 0000000..5ff7ce3
--- /dev/null
@@ -0,0 +1,235 @@
+/* GStreamer Video Overlay Composition
+ * Copyright (C) 2011 Intel Corporation
+ * Copyright (C) 2011 Collabora Ltd.
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_VIDEO_OVERLAY_COMPOSITION_H__
+#define __GST_VIDEO_OVERLAY_COMPOSITION_H__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GstVideoOverlayRectangle:
+ *
+ * An opaque video overlay rectangle object. A rectangle contains a single
+ * overlay rectangle which can be added to a composition.
+ *
+ * Since: 0.10.36
+ */
+#define GST_TYPE_VIDEO_OVERLAY_RECTANGLE                       \
+  (gst_video_overlay_rectangle_get_type ())
+#define GST_VIDEO_OVERLAY_RECTANGLE(obj)                       \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VIDEO_OVERLAY_RECTANGLE, GstVideoOverlayRectangle))
+#define GST_IS_VIDEO_OVERLAY_RECTANGLE(obj)                    \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_OVERLAY_RECTANGLE))
+
+typedef struct _GstVideoOverlayRectangle      GstVideoOverlayRectangle;
+typedef struct _GstVideoOverlayRectangleClass GstVideoOverlayRectangleClass;
+
+/**
+ * gst_video_overlay_rectangle_ref:
+ * @comp: a a #GstVideoOverlayRectangle.
+ *
+ * Increases the refcount of the given rectangle by one.
+ *
+ * Note that the refcount affects the writeability
+ * of @comp, use gst_video_overlay_rectangle_copy() to ensure a rectangle can
+ * be modified (there is no gst_video_overlay_rectangle_make_writable() because
+ * it is unlikely that someone will hold the single reference to the rectangle
+ * and not know that that's the case).
+ *
+ * Returns: (transfer full): @comp
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_ref (GstVideoOverlayRectangle * comp);
+#endif
+
+static inline GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_ref (GstVideoOverlayRectangle * comp)
+{
+  return (GstVideoOverlayRectangle *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (comp));
+}
+
+/**
+ * gst_video_overlay_rectangle_unref:
+ * @comp: (transfer full): a #GstVideoOverlayRectangle.
+ *
+ * Decreases the refcount of the rectangle. If the refcount reaches 0, the
+ * rectangle will be freed.
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void
+gst_video_overlay_rectangle_unref (GstVideoOverlayRectangle * comp);
+#endif
+
+static inline void
+gst_video_overlay_rectangle_unref (GstVideoOverlayRectangle * comp)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (comp));
+}
+
+/**
+ * GstVideoOverlayFormatFlags:
+ * @GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE: no flags
+ *
+ * Overlay format flags.
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+  GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE = 0
+} GstVideoOverlayFormatFlags;
+
+GType                        gst_video_overlay_rectangle_get_type (void);
+
+GstVideoOverlayRectangle *   gst_video_overlay_rectangle_new_argb (GstBuffer * pixels,
+                                                                   guint width, guint height, guint stride,
+                                                                   gint  render_x, gint render_y,
+                                                                   guint render_width, guint render_height,
+                                                                   GstVideoOverlayFormatFlags flags);
+
+GstVideoOverlayRectangle *   gst_video_overlay_rectangle_copy     (GstVideoOverlayRectangle * rectangle);
+
+guint                        gst_video_overlay_rectangle_get_seqnum (GstVideoOverlayRectangle  * rectangle);
+
+void                         gst_video_overlay_rectangle_set_render_rectangle     (GstVideoOverlayRectangle  * rectangle,
+                                                                                   gint                        render_x,
+                                                                                   gint                        render_y,
+                                                                                   guint                       render_width,
+                                                                                   guint                       render_height);
+
+gboolean                     gst_video_overlay_rectangle_get_render_rectangle     (GstVideoOverlayRectangle  * rectangle,
+                                                                                   gint                      * render_x,
+                                                                                   gint                      * render_y,
+                                                                                   guint                     * render_width,
+                                                                                   guint                     * render_height);
+
+GstBuffer *                  gst_video_overlay_rectangle_get_pixels_argb          (GstVideoOverlayRectangle  * rectangle,
+                                                                                   guint                     * stride,
+                                                                                   GstVideoOverlayFormatFlags  flags);
+
+GstBuffer *                  gst_video_overlay_rectangle_get_pixels_unscaled_argb (GstVideoOverlayRectangle  * rectangle,
+                                                                                   guint                     * width,
+                                                                                   guint                     * height,
+                                                                                   guint                     * stride,
+                                                                                   GstVideoOverlayFormatFlags  flags);
+
+/**
+ * GstVideoOverlayComposition:
+ *
+ * An opaque video overlay composition object. A composition contains
+ * multiple overlay rectangles.
+ *
+ * Since: 0.10.36
+ */
+#define GST_TYPE_VIDEO_OVERLAY_COMPOSITION                     \
+  (gst_video_overlay_composition_get_type ())
+#define GST_VIDEO_OVERLAY_COMPOSITION(obj)                     \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VIDEO_OVERLAY_COMPOSITION, GstVideoOverlayComposition))
+#define GST_IS_VIDEO_OVERLAY_COMPOSITION(obj)                  \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_OVERLAY_COMPOSITION))
+
+typedef struct _GstVideoOverlayComposition      GstVideoOverlayComposition;
+typedef struct _GstVideoOverlayCompositionClass GstVideoOverlayCompositionClass;
+
+/**
+ * gst_video_overlay_composition_ref:
+ * @comp: a a #GstVideoOverlayComposition.
+ *
+ * Increases the refcount of the given composition by one.
+ *
+ * Note that the refcount affects the writeability
+ * of @comp, use gst_video_overlay_composition_make_writable() to ensure
+ * a composition and its rectangles can be modified.
+ *
+ * Returns: (transfer full): @comp
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstVideoOverlayComposition *
+gst_video_overlay_composition_ref (GstVideoOverlayComposition * comp);
+#endif
+
+static inline GstVideoOverlayComposition *
+gst_video_overlay_composition_ref (GstVideoOverlayComposition * comp)
+{
+  return (GstVideoOverlayComposition *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (comp));
+}
+
+/**
+ * gst_video_overlay_composition_unref:
+ * @comp: (transfer full): a #GstVideoOverlayComposition.
+ *
+ * Decreases the refcount of the composition. If the refcount reaches 0, the
+ * composition will be freed.
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void
+gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp);
+#endif
+
+static inline void
+gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (comp));
+}
+
+GType                        gst_video_overlay_composition_get_type (void);
+
+GstVideoOverlayComposition * gst_video_overlay_composition_copy          (GstVideoOverlayComposition * comp);
+
+GstVideoOverlayComposition * gst_video_overlay_composition_make_writable (GstVideoOverlayComposition * comp);
+
+GstVideoOverlayComposition * gst_video_overlay_composition_new           (GstVideoOverlayRectangle * rectangle);
+
+void                         gst_video_overlay_composition_add_rectangle (GstVideoOverlayComposition * comp,
+                                                                          GstVideoOverlayRectangle   * rectangle);
+
+guint                        gst_video_overlay_composition_n_rectangles  (GstVideoOverlayComposition * comp);
+
+GstVideoOverlayRectangle *   gst_video_overlay_composition_get_rectangle (GstVideoOverlayComposition * comp, guint n);
+
+guint                        gst_video_overlay_composition_get_seqnum    (GstVideoOverlayComposition * comp);
+
+/* blend composition onto raw video buffer */
+
+gboolean                     gst_video_overlay_composition_blend         (GstVideoOverlayComposition * comp,
+                                                                          GstBuffer                  * video_buf);
+
+/* attach/retrieve composition from buffers */
+
+void                         gst_video_buffer_set_overlay_composition (GstBuffer                  * buf,
+                                                                       GstVideoOverlayComposition * comp);
+
+GstVideoOverlayComposition * gst_video_buffer_get_overlay_composition (GstBuffer * buf);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_OVERLAY_COMPOSITION_H__ */
index a369387..f22ff4c 100644 (file)
@@ -31,7 +31,7 @@
  *
  * <refsect2>
  * <para>
- * This library contains some helper functions and includes the 
+ * This library contains some helper functions and includes the
  * videosink and videofilter base classes.
  * </para>
  * </refsect2>
@@ -53,7 +53,7 @@ static GstVideoFormat gst_video_format_from_rgb16_masks (int red_mask,
  *
  * A convenience function to retrieve a GValue holding the framerate
  * from the caps on a pad.
- * 
+ *
  * The pad needs to have negotiated caps containing a framerate property.
  *
  * Returns: NULL if the pad has no configured caps or the configured caps
@@ -106,7 +106,7 @@ gst_video_frame_rate (GstPad * pad)
  *
  * Inspect the caps of the provided pad and retrieve the width and height of
  * the video frames it is configured for.
- * 
+ *
  * The pad needs to have negotiated caps containing width and height properties.
  *
  * Returns: TRUE if the width and height could be retrieved.
@@ -158,13 +158,13 @@ gst_video_get_size (GstPad * pad, gint * width, gint * height)
  * @display_par_n: Numerator of the pixel aspect ratio of the display device
  * @display_par_d: Denominator of the pixel aspect ratio of the display device
  *
- * Given the Pixel Aspect Ratio and size of an input video frame, and the 
- * pixel aspect ratio of the intended display device, calculates the actual 
+ * Given the Pixel Aspect Ratio and size of an input video frame, and the
+ * pixel aspect ratio of the intended display device, calculates the actual
  * display ratio the video will be rendered with.
  *
- * Returns: A boolean indicating success and a calculated Display Ratio in the 
- * dar_n and dar_d parameters. 
- * The return value is FALSE in the case of integer overflow or other error. 
+ * Returns: A boolean indicating success and a calculated Display Ratio in the
+ * dar_n and dar_d parameters.
+ * The return value is FALSE in the case of integer overflow or other error.
  *
  * Since: 0.10.7
  */
@@ -276,7 +276,7 @@ gst_video_parse_caps_color_matrix (GstCaps * caps)
  * halfway-sited vertically), "jpeg" for JPEG and Theora style
  * chroma siting (halfway-sited both horizontally and vertically).
  * Other chroma site values are possible, but uncommon.
- * 
+ *
  * When no chroma site is specified in the caps, it should be assumed
  * to be "mpeg2".
  *
@@ -317,15 +317,17 @@ gst_video_parse_caps_chroma_site (GstCaps * caps)
  * Determines the #GstVideoFormat of @caps and places it in the location
  * pointed to by @format.  Extracts the size of the video and places it
  * in the location pointed to by @width and @height.  If @caps does not
- * represent one of the raw video formats listed in #GstVideoFormat, the
- * function will fail and return FALSE.
+ * represent a video format or does not contain height and width, the
+ * function will fail and return FALSE. If @caps does not represent a raw
+ * video format listed in #GstVideoFormat, but still contains video caps,
+ * this function will return TRUE and set @format to #GST_VIDEO_FORMAT_UNKNOWN.
  *
  * Since: 0.10.16
  *
  * Returns: TRUE if @caps was parsed correctly.
  */
 gboolean
-gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
+gst_video_format_parse_caps (const GstCaps * caps, GstVideoFormat * format,
     int *width, int *height)
 {
   GstStructure *structure;
@@ -429,6 +431,8 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
       } else {
         ok = FALSE;
       }
+    } else if (g_str_has_prefix (gst_structure_get_name (structure), "video/")) {
+      *format = GST_VIDEO_FORMAT_UNKNOWN;
     } else {
       ok = FALSE;
     }
@@ -658,10 +662,10 @@ gst_video_format_new_caps_raw (GstVideoFormat format)
           blue_mask = GST_VIDEO_COMP1_MASK_15_INT;
           break;
         default:
-          return NULL;
+          g_assert_not_reached ();
       }
     } else if (bpp != 8) {
-      return NULL;
+      g_assert_not_reached ();
     }
 
     caps = gst_caps_new_simple ("video/x-raw-rgb",
@@ -762,11 +766,9 @@ gst_video_format_new_template_caps (GstVideoFormat format)
     gst_value_list_append_value (&value, &v);
     g_value_set_boolean (&v, FALSE);
     gst_value_list_append_value (&value, &v);
+    g_value_unset (&v);
 
-    gst_structure_set_value (structure, "interlaced", &value);
-
-    g_value_reset (&value);
-    g_value_reset (&v);
+    gst_structure_take_value (structure, "interlaced", &value);
   }
 
   return caps;
@@ -954,7 +956,7 @@ gst_video_format_to_fourcc (GstVideoFormat format)
  * @blue_mask: blue bit mask
  *
  * Converts red, green, blue bit masks into the corresponding
- * #GstVideoFormat.  
+ * #GstVideoFormat.
  *
  * Since: 0.10.16
  *
@@ -1193,7 +1195,7 @@ gst_video_format_is_gray (GstVideoFormat format)
 /**
  * gst_video_format_has_alpha:
  * @format: a #GstVideoFormat
- * 
+ *
  * Returns TRUE or FALSE depending on if the video format provides an
  * alpha channel.
  *
@@ -1255,9 +1257,10 @@ gst_video_format_has_alpha (GstVideoFormat format)
 /**
  * gst_video_format_get_component_depth:
  * @format: a #GstVideoFormat
- * 
+ * @component: the video component (e.g. 0 for 'R' in RGB)
+ *
  * Returns the number of bits used to encode an individual pixel of
- * a given component.  Typically this is 8, although higher and lower
+ * a given @component.  Typically this is 8, although higher and lower
  * values are possible for some formats.
  *
  * Since: 0.10.33
@@ -1744,7 +1747,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
             GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) *
             (GST_ROUND_UP_2 (height) / 2);
       }
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_YV12:        /* same as I420, but components 1+2 swapped */
       if (component == 0)
         return 0;
@@ -1755,7 +1758,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
             GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) *
             (GST_ROUND_UP_2 (height) / 2);
       }
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_YUY2:
       if (component == 0)
         return 0;
@@ -1763,7 +1766,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 1;
       if (component == 2)
         return 3;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_YVYU:
       if (component == 0)
         return 0;
@@ -1771,7 +1774,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 3;
       if (component == 2)
         return 1;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_UYVY:
       if (component == 0)
         return 1;
@@ -1779,7 +1782,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 0;
       if (component == 2)
         return 2;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_AYUV:
       if (component == 0)
         return 1;
@@ -1789,7 +1792,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 3;
       if (component == 3)
         return 0;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_RGBx:
     case GST_VIDEO_FORMAT_RGBA:
       if (component == 0)
@@ -1800,7 +1803,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 2;
       if (component == 3)
         return 3;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_BGRx:
     case GST_VIDEO_FORMAT_BGRA:
       if (component == 0)
@@ -1811,7 +1814,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 0;
       if (component == 3)
         return 3;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_xRGB:
     case GST_VIDEO_FORMAT_ARGB:
       if (component == 0)
@@ -1822,7 +1825,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 3;
       if (component == 3)
         return 0;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_xBGR:
     case GST_VIDEO_FORMAT_ABGR:
       if (component == 0)
@@ -1833,7 +1836,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 1;
       if (component == 3)
         return 0;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_v308:
       if (component == 0)
@@ -1842,7 +1845,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 1;
       if (component == 2)
         return 2;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_BGR:
       if (component == 0)
         return 2;
@@ -1850,7 +1853,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 1;
       if (component == 2)
         return 0;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_Y41B:
       if (component == 0)
         return 0;
@@ -1859,7 +1862,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
       if (component == 2)
         return (GST_ROUND_UP_4 (width) +
             (GST_ROUND_UP_16 (width) / 4)) * height;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_Y42B:
       if (component == 0)
         return 0;
@@ -1867,7 +1870,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return GST_ROUND_UP_4 (width) * height;
       if (component == 2)
         return (GST_ROUND_UP_4 (width) + (GST_ROUND_UP_8 (width) / 2)) * height;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_Y444:
       return GST_ROUND_UP_4 (width) * height * component;
     case GST_VIDEO_FORMAT_v210:
@@ -1881,7 +1884,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 2;
       if (component == 2)
         return 6;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_NV12:
       if (component == 0)
         return 0;
@@ -1889,6 +1892,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height);
       if (component == 2)
         return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height) + 1;
+      break;
     case GST_VIDEO_FORMAT_NV21:
       if (component == 0)
         return 0;
@@ -1896,6 +1900,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height) + 1;
       if (component == 2)
         return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height);
+      break;
     case GST_VIDEO_FORMAT_GRAY8:
     case GST_VIDEO_FORMAT_GRAY16_BE:
     case GST_VIDEO_FORMAT_GRAY16_LE:
@@ -1920,6 +1925,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
             2 * GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) *
             (GST_ROUND_UP_2 (height) / 2);
       }
+      break;
     case GST_VIDEO_FORMAT_RGB8_PALETTED:
       return 0;
     case GST_VIDEO_FORMAT_YUV9:
@@ -1932,7 +1938,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
             GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4) *
             (GST_ROUND_UP_4 (height) / 4);
       }
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_YVU9:
       if (component == 0)
         return 0;
@@ -1943,7 +1949,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
       }
       if (component == 2)
         return GST_ROUND_UP_4 (width) * height;
-      return 0;
+      break;
     case GST_VIDEO_FORMAT_IYU1:
       if (component == 0)
         return 1;
@@ -1951,6 +1957,7 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 0;
       if (component == 2)
         return 4;
+      break;
     case GST_VIDEO_FORMAT_ARGB64:
     case GST_VIDEO_FORMAT_AYUV64:
       if (component == 0)
@@ -1961,10 +1968,12 @@ gst_video_format_get_component_offset (GstVideoFormat format,
         return 6;
       if (component == 3)
         return 0;
-      return 0;
+      break;
     default:
-      return 0;
+      break;
   }
+  GST_WARNING ("unhandled format %d or component %d", format, component);
+  return 0;
 }
 
 /**
@@ -2067,6 +2076,36 @@ gst_video_format_get_size (GstVideoFormat format, int width, int height)
 }
 
 /**
+ * gst_video_get_size_from_caps:
+ * @caps: a pointer to #GstCaps
+ * @size: a pointer to a gint that will be assigned the size (in bytes) of a video frame with the given caps
+ *
+ * Calculates the total number of bytes in the raw video format for the given
+ * caps.  This number should be used when allocating a buffer for raw video.
+ *
+ * Since: 0.10.36
+ *
+ * Returns: %TRUE if the size could be calculated from the caps
+ */
+gboolean
+gst_video_get_size_from_caps (const GstCaps * caps, gint * size)
+{
+  GstVideoFormat format = 0;
+  gint width = 0, height = 0;
+
+  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+  g_return_val_if_fail (size != NULL, FALSE);
+
+  if (gst_video_format_parse_caps (caps, &format, &width, &height) == FALSE) {
+    GST_WARNING ("Could not parse caps: %" GST_PTR_FORMAT, caps);
+    return FALSE;
+  }
+
+  *size = gst_video_format_get_size (format, width, height);
+  return TRUE;
+}
+
+/**
  * gst_video_format_convert:
  * @format: a #GstVideoFormat
  * @width: the width of video
@@ -2293,3 +2332,227 @@ gst_video_parse_caps_palette (GstCaps * caps)
 
   return p;
 }
+
+#define GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME "GstForceKeyUnit"
+
+/**
+ * gst_video_event_new_downstream_force_key_unit:
+ * @timestamp: the timestamp of the buffer that starts a new key unit
+ * @stream_time: the stream_time of the buffer that starts a new key unit
+ * @running_time: the running_time of the buffer that starts a new key unit
+ * @all_headers: %TRUE to produce headers when starting a new key unit
+ * @count: integer that can be used to number key units
+ *
+ * Creates a new downstream force key unit event. A downstream force key unit
+ * event can be sent down the pipeline to request downstream elements to produce
+ * a key unit. A downstream force key unit event must also be sent when handling
+ * an upstream force key unit event to notify downstream that the latter has been
+ * handled.
+ *
+ * To parse an event created by gst_video_event_new_downstream_force_key_unit() use
+ * gst_video_event_parse_downstream_force_key_unit().
+ *
+ * Returns: The new GstEvent
+ * Since: 0.10.36
+ */
+GstEvent *
+gst_video_event_new_downstream_force_key_unit (GstClockTime timestamp,
+    GstClockTime stream_time, GstClockTime running_time, gboolean all_headers,
+    guint count)
+{
+  GstEvent *force_key_unit_event;
+  GstStructure *s;
+
+  s = gst_structure_new (GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME,
+      "timestamp", G_TYPE_UINT64, timestamp,
+      "stream-time", G_TYPE_UINT64, stream_time,
+      "running-time", G_TYPE_UINT64, running_time,
+      "all-headers", G_TYPE_BOOLEAN, all_headers,
+      "count", G_TYPE_UINT, count, NULL);
+  force_key_unit_event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s);
+
+  return force_key_unit_event;
+}
+
+/**
+ * gst_video_event_new_upstream_force_key_unit:
+ * @running_time: the running_time at which a new key unit should be produced
+ * @all_headers: %TRUE to produce headers when starting a new key unit
+ * @count: integer that can be used to number key units
+ *
+ * Creates a new upstream force key unit event. An upstream force key unit event
+ * can be sent to request upstream elements to produce a key unit. 
+ *
+ * @running_time can be set to request a new key unit at a specific
+ * running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
+ * new key unit as soon as possible.
+ *
+ * To parse an event created by gst_video_event_new_downstream_force_key_unit() use
+ * gst_video_event_parse_downstream_force_key_unit().
+ *
+ * Returns: The new GstEvent
+ * Since: 0.10.36
+ */
+GstEvent *
+gst_video_event_new_upstream_force_key_unit (GstClockTime running_time,
+    gboolean all_headers, guint count)
+{
+  GstEvent *force_key_unit_event;
+  GstStructure *s;
+
+  s = gst_structure_new (GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME,
+      "running-time", GST_TYPE_CLOCK_TIME, running_time,
+      "all-headers", G_TYPE_BOOLEAN, all_headers,
+      "count", G_TYPE_UINT, count, NULL);
+  force_key_unit_event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s);
+
+  return force_key_unit_event;
+}
+
+/**
+ * gst_video_event_is_force_key_unit:
+ * @event: A #GstEvent to check
+ *
+ * Checks if an event is a force key unit event. Returns true for both upstream
+ * and downstream force key unit events.
+ *
+ * Returns: %TRUE if the event is a valid force key unit event
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_event_is_force_key_unit (GstEvent * event)
+{
+  const GstStructure *s;
+
+  g_return_val_if_fail (event != NULL, FALSE);
+
+  if (GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_DOWNSTREAM &&
+      GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_UPSTREAM)
+    return FALSE;               /* Not a force key unit event */
+
+  s = gst_event_get_structure (event);
+  if (s == NULL
+      || !gst_structure_has_name (s, GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME))
+    return FALSE;
+
+  return TRUE;
+}
+
+/**
+ * gst_video_event_parse_downstream_force_key_unit:
+ * @event: A #GstEvent to parse
+ * @timestamp: (out): A pointer to the timestamp in the event
+ * @stream_time: (out): A pointer to the stream-time in the event
+ * @running_time: (out): A pointer to the running-time in the event
+ * @all_headers: (out): A pointer to the all_headers flag in the event
+ * @count: (out): A pointer to the count field of the event
+ *
+ * Get timestamp, stream-time, running-time, all-headers and count in the force
+ * key unit event. See gst_video_event_new_downstream_force_key_unit() for a
+ * full description of the downstream force key unit event.
+ *
+ * Returns: %TRUE if the event is a valid downstream force key unit event.
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_event_parse_downstream_force_key_unit (GstEvent * event,
+    GstClockTime * timestamp, GstClockTime * stream_time,
+    GstClockTime * running_time, gboolean * all_headers, guint * count)
+{
+  const GstStructure *s;
+  GstClockTime ev_timestamp, ev_stream_time, ev_running_time;
+  gboolean ev_all_headers;
+  guint ev_count;
+
+  g_return_val_if_fail (event != NULL, FALSE);
+
+  if (GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_DOWNSTREAM)
+    return FALSE;               /* Not a force key unit event */
+
+  s = gst_event_get_structure (event);
+  if (s == NULL
+      || !gst_structure_has_name (s, GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME))
+    return FALSE;
+
+  if (!gst_structure_get_clock_time (s, "timestamp", &ev_timestamp))
+    return FALSE;               /* Not a force key unit event */
+  if (!gst_structure_get_clock_time (s, "stream-time", &ev_stream_time))
+    return FALSE;               /* Not a force key unit event */
+  if (!gst_structure_get_clock_time (s, "running-time", &ev_running_time))
+    return FALSE;               /* Not a force key unit event */
+  if (!gst_structure_get_boolean (s, "all-headers", &ev_all_headers))
+    return FALSE;               /* Not a force key unit event */
+  if (!gst_structure_get_uint (s, "count", &ev_count))
+    return FALSE;               /* Not a force key unit event */
+
+  if (timestamp)
+    *timestamp = ev_timestamp;
+
+  if (stream_time)
+    *stream_time = ev_stream_time;
+
+  if (running_time)
+    *running_time = ev_running_time;
+
+  if (all_headers)
+    *all_headers = ev_all_headers;
+
+  if (count)
+    *count = ev_count;
+
+  return TRUE;
+}
+
+/**
+ * gst_video_event_parse_upstream_force_key_unit:
+ * @event: A #GstEvent to parse
+ * @running_time: (out): A pointer to the running_time in the event
+ * @all_headers: (out): A pointer to the all_headers flag in the event
+ * @count: (out): A pointer to the count field in the event
+ *
+ * Get running-time, all-headers and count in the force key unit event. See
+ * gst_video_event_new_upstream_force_key_unit() for a full description of the
+ * upstream force key unit event.
+ *
+ * Create an upstream force key unit event using  gst_video_event_new_upstream_force_key_unit()
+ *
+ * Returns: %TRUE if the event is a valid upstream force-key-unit event. %FALSE if not
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_event_parse_upstream_force_key_unit (GstEvent * event,
+    GstClockTime * running_time, gboolean * all_headers, guint * count)
+{
+  const GstStructure *s;
+  GstClockTime ev_running_time;
+  gboolean ev_all_headers;
+  guint ev_count;
+
+  g_return_val_if_fail (event != NULL, FALSE);
+
+  if (GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_UPSTREAM)
+    return FALSE;               /* Not a force key unit event */
+
+  s = gst_event_get_structure (event);
+  if (s == NULL
+      || !gst_structure_has_name (s, GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME))
+    return FALSE;
+
+  if (!gst_structure_get_clock_time (s, "running-time", &ev_running_time))
+    return FALSE;               /* Not a force key unit event */
+  if (!gst_structure_get_boolean (s, "all-headers", &ev_all_headers))
+    return FALSE;               /* Not a force key unit event */
+  if (!gst_structure_get_uint (s, "count", &ev_count))
+    return FALSE;               /* Not a force key unit event */
+
+  if (running_time)
+    *running_time = ev_running_time;
+
+  if (all_headers)
+    *all_headers = ev_all_headers;
+
+  if (count)
+    *count = ev_count;
+
+  return TRUE;
+}
index fdd6b43..36750e9 100644 (file)
@@ -436,65 +436,163 @@ typedef enum {
 #define GST_VIDEO_BUFFER_PROGRESSIVE GST_BUFFER_FLAG_MEDIA4
 
 /* functions */
-const GValue *gst_video_frame_rate (GstPad *pad);
-gboolean gst_video_get_size   (GstPad *pad,
-                               gint   *width,
-                               gint   *height);
-
-gboolean gst_video_calculate_display_ratio (guint *dar_n, guint *dar_d,
-            guint video_width, guint video_height, 
-            guint video_par_n, guint video_par_d, 
-            guint display_par_n, guint display_par_d);
-
-gboolean gst_video_format_parse_caps (GstCaps *caps, GstVideoFormat *format,
-    int *width, int *height);
-gboolean gst_video_format_parse_caps_interlaced (GstCaps *caps, gboolean *interlaced);
-gboolean gst_video_parse_caps_framerate (GstCaps *caps,
-    int *fps_n, int *fps_d);
-gboolean gst_video_parse_caps_pixel_aspect_ratio (GstCaps *caps,
-    int *par_n, int *par_d);
-const char *gst_video_parse_caps_color_matrix (GstCaps * caps);
-const char *gst_video_parse_caps_chroma_site (GstCaps * caps);
-GstBuffer *gst_video_parse_caps_palette (GstCaps * caps);
-GstCaps * gst_video_format_new_caps (GstVideoFormat format,
-    int width, int height, int framerate_n, int framerate_d,
-    int par_n, int par_d);
-GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
-    int width, int height, int framerate_n, int framerate_d,
-    int par_n, int par_d, gboolean interlaced);
-GstCaps * gst_video_format_new_template_caps (GstVideoFormat format);
-GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc);
-guint32 gst_video_format_to_fourcc (GstVideoFormat format);
-gboolean gst_video_format_is_rgb (GstVideoFormat format);
-gboolean gst_video_format_is_yuv (GstVideoFormat format);
-gboolean gst_video_format_is_gray (GstVideoFormat format);
-gboolean gst_video_format_has_alpha (GstVideoFormat format);
-int gst_video_format_get_component_depth (GstVideoFormat format, int component);
-int gst_video_format_get_row_stride (GstVideoFormat format, int component,
-    int width);
-int gst_video_format_get_pixel_stride (GstVideoFormat format, int component);
-int gst_video_format_get_component_width (GstVideoFormat format, int component,
-    int width);
-int gst_video_format_get_component_height (GstVideoFormat format, int component,
-    int height);
-int gst_video_format_get_component_offset (GstVideoFormat format, int component,
-    int width, int height);
-int gst_video_format_get_size (GstVideoFormat format, int width, int height);
-gboolean gst_video_format_convert (GstVideoFormat format, int width, int height,
-    int fps_n, int fps_d,
-    GstFormat src_format, gint64 src_value,
-    GstFormat dest_format, gint64 * dest_value);
-
-GstEvent *gst_video_event_new_still_frame (gboolean in_still);
-gboolean gst_video_event_parse_still_frame (GstEvent *event, gboolean *in_still);
-
-GstBuffer *gst_video_convert_frame(GstBuffer *buf, const GstCaps *to_caps,
-                                  GstClockTime timeout, GError **error);
-
-typedef void (*GstVideoConvertFrameCallback) (GstBuffer *buf, GError *error, gpointer user_data);
-void gst_video_convert_frame_async(GstBuffer *buf, const GstCaps *to_caps,
-                                  GstClockTime timeout, GstVideoConvertFrameCallback callback,
-                                   gpointer user_data, GDestroyNotify destroy_notify);
+
+const GValue * gst_video_frame_rate (GstPad * pad);
+
+gboolean       gst_video_get_size   (GstPad * pad,
+                                     gint   * width,
+                                     gint   * height);
+
+gboolean       gst_video_calculate_display_ratio (guint * dar_n,
+                                                  guint * dar_d,
+                                                  guint   video_width,
+                                                  guint   video_height,
+                                                  guint   video_par_n,
+                                                  guint   video_par_d,
+                                                  guint   display_par_n,
+                                                  guint   display_par_d);
+
+gboolean       gst_video_format_parse_caps (const GstCaps  * caps,
+                                            GstVideoFormat * format,
+                                            int            * width,
+                                            int            * height);
+
+gboolean       gst_video_format_parse_caps_interlaced  (GstCaps  * caps,
+                                                        gboolean * interlaced);
+
+
+gboolean       gst_video_parse_caps_pixel_aspect_ratio (GstCaps  * caps,
+                                                        int      * par_n,
+                                                        int      * par_d);
+
+gboolean       gst_video_parse_caps_framerate    (GstCaps * caps,
+                                                  int     * fps_n,
+                                                  int     * fps_d);
+
+const char *   gst_video_parse_caps_color_matrix (GstCaps * caps);
+
+const char *   gst_video_parse_caps_chroma_site  (GstCaps * caps);
+
+GstBuffer *    gst_video_parse_caps_palette      (GstCaps * caps);
+
+/* create caps given format and details */
+
+GstCaps *      gst_video_format_new_caps (GstVideoFormat format,
+                                          int width, int height,
+                                          int framerate_n,
+                                          int framerate_d,
+                                          int par_n, int par_d);
+
+GstCaps *      gst_video_format_new_caps_interlaced (GstVideoFormat format,
+                                                     int width, int height,
+                                                     int framerate_n,
+                                                     int framerate_d,
+                                                     int par_n, int par_d,
+                                                     gboolean interlaced);
+
+GstCaps *      gst_video_format_new_template_caps (GstVideoFormat format);
+
+/* format properties */
+
+GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc) G_GNUC_CONST;
+
+guint32        gst_video_format_to_fourcc (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean       gst_video_format_is_rgb    (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean       gst_video_format_is_yuv    (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean       gst_video_format_is_gray   (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean       gst_video_format_has_alpha (GstVideoFormat format) G_GNUC_CONST;
+
+
+int            gst_video_format_get_component_depth  (GstVideoFormat format,
+                                                      int            component) G_GNUC_CONST;
+
+int            gst_video_format_get_row_stride       (GstVideoFormat format,
+                                                      int            component,
+                                                      int            width) G_GNUC_CONST;
+
+int            gst_video_format_get_pixel_stride     (GstVideoFormat format,
+                                                      int            component) G_GNUC_CONST;
+
+int            gst_video_format_get_component_width  (GstVideoFormat format,
+                                                      int            component,
+                                                      int            width) G_GNUC_CONST;
+
+int            gst_video_format_get_component_height (GstVideoFormat format,
+                                                      int            component,
+                                                      int            height) G_GNUC_CONST;
+
+int            gst_video_format_get_component_offset (GstVideoFormat format,
+                                                      int            component,
+                                                      int            width,
+                                                      int            height) G_GNUC_CONST;
+
+int            gst_video_format_get_size             (GstVideoFormat format,
+                                                      int            width,
+                                                      int            height) G_GNUC_CONST;
+
+gboolean       gst_video_get_size_from_caps (const GstCaps * caps, gint * size);
+
+gboolean       gst_video_format_convert (GstVideoFormat  format,
+                                         int             width,
+                                         int             height,
+                                         int             fps_n,
+                                         int             fps_d,
+                                         GstFormat       src_format,
+                                         gint64          src_value,
+                                         GstFormat       dest_format,
+                                         gint64        * dest_value);
+
+/* video still frame event creation and parsing */
+
+GstEvent *     gst_video_event_new_still_frame   (gboolean in_still);
+
+gboolean       gst_video_event_parse_still_frame (GstEvent * event, gboolean * in_still);
+
+/* video force key unit event creation and parsing */
+
+GstEvent * gst_video_event_new_downstream_force_key_unit (GstClockTime timestamp,
+                                                          GstClockTime streamtime,
+                                                          GstClockTime runningtime,
+                                                          gboolean all_headers,
+                                                          guint count);
+
+gboolean gst_video_event_parse_downstream_force_key_unit (GstEvent * event,
+                                                          GstClockTime * timestamp,
+                                                          GstClockTime * streamtime,
+                                                          GstClockTime * runningtime,
+                                                          gboolean * all_headers,
+                                                          guint * count);
+
+GstEvent * gst_video_event_new_upstream_force_key_unit (GstClockTime running_time,
+                                                        gboolean all_headers,
+                                                        guint count);
+
+gboolean gst_video_event_parse_upstream_force_key_unit (GstEvent * event,
+                                                        GstClockTime * running_time,
+                                                        gboolean * all_headers,
+                                                        guint * count);
+
+gboolean gst_video_event_is_force_key_unit(GstEvent *event);
+
+/* convert/encode video frame from one format to another */
+
+typedef void (*GstVideoConvertFrameCallback) (GstBuffer * buf, GError *error, gpointer user_data);
+
+void           gst_video_convert_frame_async (GstBuffer                    * buf,
+                                              const GstCaps                * to_caps,
+                                              GstClockTime                   timeout,
+                                              GstVideoConvertFrameCallback   callback,
+                                              gpointer                       user_data,
+                                              GDestroyNotify                 destroy_notify);
+
+GstBuffer *    gst_video_convert_frame       (GstBuffer     * buf,
+                                              const GstCaps * to_caps,
+                                              GstClockTime    timeout,
+                                              GError       ** error);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/video/videoblendorc-dist.c b/gst-libs/gst/video/videoblendorc-dist.c
new file mode 100644 (file)
index 0000000..01b73f1
--- /dev/null
@@ -0,0 +1,6118 @@
+
+/* autogenerated from videoblendorc.orc */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <glib.h>
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+typedef int8_t orc_int8;
+typedef int16_t orc_int16;
+typedef int32_t orc_int32;
+typedef int64_t orc_int64;
+typedef uint8_t orc_uint8;
+typedef uint16_t orc_uint16;
+typedef uint32_t orc_uint32;
+typedef uint64_t orc_uint64;
+#define ORC_UINT64_C(x) UINT64_C(x)
+#elif defined(_MSC_VER)
+typedef signed __int8 orc_int8;
+typedef signed __int16 orc_int16;
+typedef signed __int32 orc_int32;
+typedef signed __int64 orc_int64;
+typedef unsigned __int8 orc_uint8;
+typedef unsigned __int16 orc_uint16;
+typedef unsigned __int32 orc_uint32;
+typedef unsigned __int64 orc_uint64;
+#define ORC_UINT64_C(x) (x##Ui64)
+#define inline __inline
+#else
+#include <limits.h>
+typedef signed char orc_int8;
+typedef short orc_int16;
+typedef int orc_int32;
+typedef unsigned char orc_uint8;
+typedef unsigned short orc_uint16;
+typedef unsigned int orc_uint32;
+#if INT_MAX == LONG_MAX
+typedef long long orc_int64;
+typedef unsigned long long orc_uint64;
+#define ORC_UINT64_C(x) (x##ULL)
+#else
+typedef long orc_int64;
+typedef unsigned long orc_uint64;
+#define ORC_UINT64_C(x) (x##UL)
+#endif
+#endif
+typedef union
+{
+  orc_int16 i;
+  orc_int8 x2[2];
+} orc_union16;
+typedef union
+{
+  orc_int32 i;
+  float f;
+  orc_int16 x2[2];
+  orc_int8 x4[4];
+} orc_union32;
+typedef union
+{
+  orc_int64 i;
+  double f;
+  orc_int32 x2[2];
+  float x2f[2];
+  orc_int16 x4[4];
+} orc_union64;
+#endif
+#ifndef ORC_RESTRICT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define ORC_RESTRICT restrict
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ORC_RESTRICT __restrict__
+#else
+#define ORC_RESTRICT
+#endif
+#endif
+
+#ifndef DISABLE_ORC
+#include <orc/orc.h>
+#endif
+void orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n);
+void orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n);
+void cogorc_getline_I420 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_A420 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, int n);
+void orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
+void orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
+    const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
+    int p1, int n);
+
+
+/* begin Orc C target preamble */
+#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
+#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
+#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
+#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
+#define ORC_SB_MAX 127
+#define ORC_SB_MIN (-1-ORC_SB_MAX)
+#define ORC_UB_MAX 255
+#define ORC_UB_MIN 0
+#define ORC_SW_MAX 32767
+#define ORC_SW_MIN (-1-ORC_SW_MAX)
+#define ORC_UW_MAX 65535
+#define ORC_UW_MIN 0
+#define ORC_SL_MAX 2147483647
+#define ORC_SL_MIN (-1-ORC_SL_MAX)
+#define ORC_UL_MAX 4294967295U
+#define ORC_UL_MIN 0
+#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
+#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
+#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
+#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
+#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
+#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
+#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
+#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
+#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
+#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
+#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
+#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
+#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
+#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
+#ifndef ORC_RESTRICT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define ORC_RESTRICT restrict
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ORC_RESTRICT __restrict__
+#else
+#define ORC_RESTRICT
+#endif
+#endif
+/* end Orc C target preamble */
+
+
+
+/* orc_blend_little */
+#ifdef DISABLE_ORC
+void
+orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_int8 var42;
+  orc_union32 var43;
+  orc_union64 var44;
+  orc_union64 var45;
+  orc_union64 var46;
+  orc_union32 var47;
+  orc_union64 var48;
+  orc_union64 var49;
+  orc_union64 var50;
+  orc_union64 var51;
+  orc_union64 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 14: loadpl */
+  var39.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: convlw */
+    var41.i = var40.i;
+    /* 2: convwb */
+    var42 = var41.i;
+    /* 3: splatbl */
+    var43.i =
+        ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
+        | (var42 & 0xff);
+    /* 4: convubw */
+    var44.x4[0] = (orc_uint8) var43.x4[0];
+    var44.x4[1] = (orc_uint8) var43.x4[1];
+    var44.x4[2] = (orc_uint8) var43.x4[2];
+    var44.x4[3] = (orc_uint8) var43.x4[3];
+    /* 5: shruw */
+    var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
+    var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
+    var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
+    var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
+    /* 6: convubw */
+    var46.x4[0] = (orc_uint8) var40.x4[0];
+    var46.x4[1] = (orc_uint8) var40.x4[1];
+    var46.x4[2] = (orc_uint8) var40.x4[2];
+    var46.x4[3] = (orc_uint8) var40.x4[3];
+    /* 7: loadl */
+    var47 = ptr0[i];
+    /* 8: convubw */
+    var48.x4[0] = (orc_uint8) var47.x4[0];
+    var48.x4[1] = (orc_uint8) var47.x4[1];
+    var48.x4[2] = (orc_uint8) var47.x4[2];
+    var48.x4[3] = (orc_uint8) var47.x4[3];
+    /* 9: subw */
+    var49.x4[0] = var46.x4[0] - var48.x4[0];
+    var49.x4[1] = var46.x4[1] - var48.x4[1];
+    var49.x4[2] = var46.x4[2] - var48.x4[2];
+    var49.x4[3] = var46.x4[3] - var48.x4[3];
+    /* 10: mullw */
+    var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
+    var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
+    var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
+    var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
+    /* 11: div255w */
+    var51.x4[0] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
+            (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
+    var51.x4[1] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
+            (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
+    var51.x4[2] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
+            (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
+    var51.x4[3] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
+            (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
+    /* 12: addw */
+    var52.x4[0] = var48.x4[0] + var51.x4[0];
+    var52.x4[1] = var48.x4[1] + var51.x4[1];
+    var52.x4[2] = var48.x4[2] + var51.x4[2];
+    var52.x4[3] = var48.x4[3] + var51.x4[3];
+    /* 13: convwb */
+    var53.x4[0] = var52.x4[0];
+    var53.x4[1] = var52.x4[1];
+    var53.x4[2] = var52.x4[2];
+    var53.x4[3] = var52.x4[3];
+    /* 15: orl */
+    var54.i = var53.i | var39.i;
+    /* 16: storel */
+    ptr0[i] = var54;
+  }
+
+}
+
+#else
+static void
+_backup_orc_blend_little (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_int8 var42;
+  orc_union32 var43;
+  orc_union64 var44;
+  orc_union64 var45;
+  orc_union64 var46;
+  orc_union32 var47;
+  orc_union64 var48;
+  orc_union64 var49;
+  orc_union64 var50;
+  orc_union64 var51;
+  orc_union64 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 14: loadpl */
+  var39.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: convlw */
+    var41.i = var40.i;
+    /* 2: convwb */
+    var42 = var41.i;
+    /* 3: splatbl */
+    var43.i =
+        ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
+        | (var42 & 0xff);
+    /* 4: convubw */
+    var44.x4[0] = (orc_uint8) var43.x4[0];
+    var44.x4[1] = (orc_uint8) var43.x4[1];
+    var44.x4[2] = (orc_uint8) var43.x4[2];
+    var44.x4[3] = (orc_uint8) var43.x4[3];
+    /* 5: shruw */
+    var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
+    var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
+    var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
+    var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
+    /* 6: convubw */
+    var46.x4[0] = (orc_uint8) var40.x4[0];
+    var46.x4[1] = (orc_uint8) var40.x4[1];
+    var46.x4[2] = (orc_uint8) var40.x4[2];
+    var46.x4[3] = (orc_uint8) var40.x4[3];
+    /* 7: loadl */
+    var47 = ptr0[i];
+    /* 8: convubw */
+    var48.x4[0] = (orc_uint8) var47.x4[0];
+    var48.x4[1] = (orc_uint8) var47.x4[1];
+    var48.x4[2] = (orc_uint8) var47.x4[2];
+    var48.x4[3] = (orc_uint8) var47.x4[3];
+    /* 9: subw */
+    var49.x4[0] = var46.x4[0] - var48.x4[0];
+    var49.x4[1] = var46.x4[1] - var48.x4[1];
+    var49.x4[2] = var46.x4[2] - var48.x4[2];
+    var49.x4[3] = var46.x4[3] - var48.x4[3];
+    /* 10: mullw */
+    var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
+    var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
+    var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
+    var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
+    /* 11: div255w */
+    var51.x4[0] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
+            (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
+    var51.x4[1] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
+            (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
+    var51.x4[2] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
+            (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
+    var51.x4[3] =
+        ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
+            (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
+    /* 12: addw */
+    var52.x4[0] = var48.x4[0] + var51.x4[0];
+    var52.x4[1] = var48.x4[1] + var51.x4[1];
+    var52.x4[2] = var48.x4[2] + var51.x4[2];
+    var52.x4[3] = var48.x4[3] + var51.x4[3];
+    /* 13: convwb */
+    var53.x4[0] = var52.x4[0];
+    var53.x4[1] = var52.x4[1];
+    var53.x4[2] = var52.x4[2];
+    var53.x4[3] = var52.x4[3];
+    /* 15: orl */
+    var54.i = var53.i | var39.i;
+    /* 16: storel */
+    ptr0[i] = var54;
+  }
+
+}
+
+void
+orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "orc_blend_little");
+      orc_program_set_backup_function (p, _backup_orc_blend_little);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x000000ff, "c1");
+      orc_program_add_constant (p, 4, 0x00000008, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 8, "t5");
+      orc_program_add_temporary (p, 8, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* orc_blend_big */
+#ifdef DISABLE_ORC
+void
+orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_union32 var45;
+  orc_union64 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+  orc_union32 var49;
+  orc_union64 var50;
+  orc_union64 var51;
+  orc_union64 var52;
+  orc_union64 var53;
+  orc_union64 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 15: loadpl */
+  var40.i = (int) 0xff000000;   /* -16777216 or 2.11371e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 1: shrul */
+    var42.i = ((orc_uint32) var41.i) >> 24;
+    /* 2: convlw */
+    var43.i = var42.i;
+    /* 3: convwb */
+    var44 = var43.i;
+    /* 4: splatbl */
+    var45.i =
+        ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
+        | (var44 & 0xff);
+    /* 5: convubw */
+    var46.x4[0] = (orc_uint8) var45.x4[0];
+    var46.x4[1] = (orc_uint8) var45.x4[1];
+    var46.x4[2] = (orc_uint8) var45.x4[2];
+    var46.x4[3] = (orc_uint8) var45.x4[3];
+    /* 6: shruw */
+    var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
+    var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
+    var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
+    var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+    /* 7: convubw */
+    var48.x4[0] = (orc_uint8) var41.x4[0];
+    var48.x4[1] = (orc_uint8) var41.x4[1];
+    var48.x4[2] = (orc_uint8) var41.x4[2];
+    var48.x4[3] = (orc_uint8) var41.x4[3];
+    /* 8: loadl */
+    var49 = ptr0[i];
+    /* 9: convubw */
+    var50.x4[0] = (orc_uint8) var49.x4[0];
+    var50.x4[1] = (orc_uint8) var49.x4[1];
+    var50.x4[2] = (orc_uint8) var49.x4[2];
+    var50.x4[3] = (orc_uint8) var49.x4[3];
+    /* 10: subw */
+    var51.x4[0] = var48.x4[0] - var50.x4[0];
+    var51.x4[1] = var48.x4[1] - var50.x4[1];
+    var51.x4[2] = var48.x4[2] - var50.x4[2];
+    var51.x4[3] = var48.x4[3] - var50.x4[3];
+    /* 11: mullw */
+    var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
+    var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
+    var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
+    var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
+    /* 12: div255w */
+    var53.x4[0] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
+            (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
+    var53.x4[1] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
+            (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
+    var53.x4[2] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
+            (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
+    var53.x4[3] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
+            (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
+    /* 13: addw */
+    var54.x4[0] = var50.x4[0] + var53.x4[0];
+    var54.x4[1] = var50.x4[1] + var53.x4[1];
+    var54.x4[2] = var50.x4[2] + var53.x4[2];
+    var54.x4[3] = var50.x4[3] + var53.x4[3];
+    /* 14: convwb */
+    var55.x4[0] = var54.x4[0];
+    var55.x4[1] = var54.x4[1];
+    var55.x4[2] = var54.x4[2];
+    var55.x4[3] = var54.x4[3];
+    /* 16: orl */
+    var56.i = var55.i | var40.i;
+    /* 17: storel */
+    ptr0[i] = var56;
+  }
+
+}
+
+#else
+static void
+_backup_orc_blend_big (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_union32 var45;
+  orc_union64 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+  orc_union32 var49;
+  orc_union64 var50;
+  orc_union64 var51;
+  orc_union64 var52;
+  orc_union64 var53;
+  orc_union64 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 15: loadpl */
+  var40.i = (int) 0xff000000;   /* -16777216 or 2.11371e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 1: shrul */
+    var42.i = ((orc_uint32) var41.i) >> 24;
+    /* 2: convlw */
+    var43.i = var42.i;
+    /* 3: convwb */
+    var44 = var43.i;
+    /* 4: splatbl */
+    var45.i =
+        ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
+        | (var44 & 0xff);
+    /* 5: convubw */
+    var46.x4[0] = (orc_uint8) var45.x4[0];
+    var46.x4[1] = (orc_uint8) var45.x4[1];
+    var46.x4[2] = (orc_uint8) var45.x4[2];
+    var46.x4[3] = (orc_uint8) var45.x4[3];
+    /* 6: shruw */
+    var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
+    var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
+    var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
+    var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+    /* 7: convubw */
+    var48.x4[0] = (orc_uint8) var41.x4[0];
+    var48.x4[1] = (orc_uint8) var41.x4[1];
+    var48.x4[2] = (orc_uint8) var41.x4[2];
+    var48.x4[3] = (orc_uint8) var41.x4[3];
+    /* 8: loadl */
+    var49 = ptr0[i];
+    /* 9: convubw */
+    var50.x4[0] = (orc_uint8) var49.x4[0];
+    var50.x4[1] = (orc_uint8) var49.x4[1];
+    var50.x4[2] = (orc_uint8) var49.x4[2];
+    var50.x4[3] = (orc_uint8) var49.x4[3];
+    /* 10: subw */
+    var51.x4[0] = var48.x4[0] - var50.x4[0];
+    var51.x4[1] = var48.x4[1] - var50.x4[1];
+    var51.x4[2] = var48.x4[2] - var50.x4[2];
+    var51.x4[3] = var48.x4[3] - var50.x4[3];
+    /* 11: mullw */
+    var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
+    var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
+    var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
+    var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
+    /* 12: div255w */
+    var53.x4[0] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
+            (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
+    var53.x4[1] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
+            (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
+    var53.x4[2] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
+            (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
+    var53.x4[3] =
+        ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
+            (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
+    /* 13: addw */
+    var54.x4[0] = var50.x4[0] + var53.x4[0];
+    var54.x4[1] = var50.x4[1] + var53.x4[1];
+    var54.x4[2] = var50.x4[2] + var53.x4[2];
+    var54.x4[3] = var50.x4[3] + var53.x4[3];
+    /* 14: convwb */
+    var55.x4[0] = var54.x4[0];
+    var55.x4[1] = var54.x4[1];
+    var55.x4[2] = var54.x4[2];
+    var55.x4[3] = var54.x4[3];
+    /* 16: orl */
+    var56.i = var55.i | var40.i;
+    /* 17: storel */
+    ptr0[i] = var56;
+  }
+
+}
+
+void
+orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "orc_blend_big");
+      orc_program_set_backup_function (p, _backup_orc_blend_big);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0xff000000, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_constant (p, 4, 0x00000008, "c3");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 8, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+      orc_program_add_temporary (p, 8, "t8");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_I420 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+
+  /* 3: loadpb */
+  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var39 = ptr5[i >> 1];
+    /* 1: loadupdb */
+    var40 = ptr6[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+
+  /* 3: loadpb */
+  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var39 = ptr5[i >> 1];
+    /* 1: loadupdb */
+    var40 = ptr6[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_I420");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_I420);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_I420 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_int8 var48;
+  orc_int8 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_int8 *) d2;
+  ptr2 = (orc_int8 *) d3;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var38 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var42.x2[0] = _src.x2[1];
+      var43.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[1];
+      var42.x2[1] = _src.x2[1];
+      var43.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var39;
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[0];
+      var44.x2[0] = _src.x2[1];
+      var45.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[1];
+      var44.x2[1] = _src.x2[1];
+      var45.x2[1] = _src.x2[0];
+    }
+    /* 5: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 6: avgub */
+    var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
+    /* 7: storeb */
+    ptr1[i] = var40;
+    /* 8: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var48 = _src.x2[1];
+      var49 = _src.x2[0];
+    }
+    /* 9: avgub */
+    var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
+    /* 10: storeb */
+    ptr2[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_int8 var48;
+  orc_int8 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_int8 *) ex->arrays[1];
+  ptr2 = (orc_int8 *) ex->arrays[2];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var38 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var42.x2[0] = _src.x2[1];
+      var43.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[1];
+      var42.x2[1] = _src.x2[1];
+      var43.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var39;
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[0];
+      var44.x2[0] = _src.x2[1];
+      var45.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[1];
+      var44.x2[1] = _src.x2[1];
+      var45.x2[1] = _src.x2[0];
+    }
+    /* 5: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 6: avgub */
+    var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
+    /* 7: storeb */
+    ptr1[i] = var40;
+    /* 8: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var48 = _src.x2[1];
+      var49 = _src.x2[0];
+    }
+    /* 9: avgub */
+    var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
+    /* 10: storeb */
+    ptr2[i] = var41;
+  }
+
+}
+
+void
+cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_I420");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_I420);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 1, "t5");
+      orc_program_add_temporary (p, 1, "t6");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_YUY2 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 2: loadpb */
+  var37.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var37.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 3: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var41.x2[1] = _dest.i;
+    }
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var42.i = _dest.i;
+    }
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 2: loadpb */
+  var37.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var37.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 3: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var41.x2[1] = _dest.i;
+    }
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var42.i = _dest.i;
+    }
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_YUY2");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_YUY2);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 2, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_YUY2 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 3: avgub */
+    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 4: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 3: avgub */
+    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 4: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_YUY2");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_YUY2);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_UYVY */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 3: avgub */
+    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 4: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[0];
+      _dest.x2[1] = var44.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[1];
+      _dest.x2[1] = var44.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 3: avgub */
+    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 4: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[0];
+      _dest.x2[1] = var44.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[1];
+      _dest.x2[1] = var44.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_UYVY");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_UYVY);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_UYVY */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 2: loadpb */
+  var37.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var37.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 3: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var41.x2[1] = _dest.i;
+    }
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var40.i;
+      var42.i = _dest.i;
+    }
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 2: loadpb */
+  var37.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var37.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 3: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var41.x2[1] = _dest.i;
+    }
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var40.i;
+      var42.i = _dest.i;
+    }
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_UYVY");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_UYVY);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 2, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_YUV9 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union64 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+  orc_union16 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+
+  /* 4: loadpb */
+  var37.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var37.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var40 = ptr5[i >> 1];
+    /* 1: loadupdb */
+    var41 = ptr6[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var40;
+      _dest.x2[1] = var41;
+      var42.i = _dest.i;
+    }
+    /* 3: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var42.i;
+      var43.i = _dest.i;
+    }
+    /* 5: loadw */
+    var38 = ptr4[i];
+    /* 6: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var38.x2[0];
+      var44.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var38.x2[1];
+      var44.x2[1] = _dest.i;
+    }
+    /* 7: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var39.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var39.x2[1] = _dest.i;
+    }
+    /* 8: storeq */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_YUV9 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union64 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+  orc_union16 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+
+  /* 4: loadpb */
+  var37.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var37.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var40 = ptr5[i >> 1];
+    /* 1: loadupdb */
+    var41 = ptr6[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var40;
+      _dest.x2[1] = var41;
+      var42.i = _dest.i;
+    }
+    /* 3: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var42.i;
+      var43.i = _dest.i;
+    }
+    /* 5: loadw */
+    var38 = ptr4[i];
+    /* 6: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var38.x2[0];
+      var44.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var38.x2[1];
+      var44.x2[1] = _dest.i;
+    }
+    /* 7: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var39.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var39.x2[1] = _dest.i;
+    }
+    /* 8: storeq */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_YUV9");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_YUV9);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 1, "t5");
+
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T5, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y42B */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union64 var40;
+  orc_union16 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+
+  /* 3: loadpb */
+  var38.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var38.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var36 = ptr5[i];
+    /* 1: loadb */
+    var37 = ptr6[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var41.i = _dest.i;
+    }
+    /* 4: loadw */
+    var39 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var42.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var42.x2[1] = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
+    /* 7: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var40.x2[1] = _dest.i;
+    }
+    /* 8: storeq */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union64 var40;
+  orc_union16 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+
+  /* 3: loadpb */
+  var38.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var38.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var36 = ptr5[i];
+    /* 1: loadb */
+    var37 = ptr6[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var41.i = _dest.i;
+    }
+    /* 4: loadw */
+    var39 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var42.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var42.x2[1] = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
+    /* 7: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var40.x2[1] = _dest.i;
+    }
+    /* 8: storeq */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_Y42B");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_Y42B);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y42B */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_int8 *) d2;
+  ptr2 = (orc_int8 *) d3;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var36 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[1];
+      var40.x2[1] = _src.x2[1];
+      var41.x2[1] = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 3: avgub */
+    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
+    /* 5: storeb */
+    ptr2[i] = var37;
+    /* 6: storeb */
+    ptr1[i] = var38;
+    /* 7: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
+    /* 8: storew */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_int8 *) ex->arrays[1];
+  ptr2 = (orc_int8 *) ex->arrays[2];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var36 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[1];
+      var40.x2[1] = _src.x2[1];
+      var41.x2[1] = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 3: avgub */
+    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
+    /* 5: storeb */
+    ptr2[i] = var37;
+    /* 6: storeb */
+    ptr1[i] = var38;
+    /* 7: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
+    /* 8: storew */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_Y42B");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_Y42B);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y444 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+
+  /* 3: loadpb */
+  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr5[i];
+    /* 1: loadb */
+    var35 = ptr6[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+
+  /* 3: loadpb */
+  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr5[i];
+    /* 1: loadb */
+    var35 = ptr6[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_Y444");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_Y444);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y444 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr1 = (orc_int8 *) d2;
+  ptr2 = (orc_int8 *) d3;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var38.i;
+      var35 = _src.x2[1];
+      var36 = _src.x2[0];
+    }
+    /* 3: storeb */
+    ptr2[i] = var35;
+    /* 4: storeb */
+    ptr1[i] = var36;
+    /* 5: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var39.i;
+      var37 = _src.x2[1];
+    }
+    /* 6: storeb */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr1 = (orc_int8 *) ex->arrays[1];
+  ptr2 = (orc_int8 *) ex->arrays[2];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var38.i;
+      var35 = _src.x2[1];
+      var36 = _src.x2[0];
+    }
+    /* 3: storeb */
+    ptr2[i] = var35;
+    /* 4: storeb */
+    ptr1[i] = var36;
+    /* 5: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var39.i;
+      var37 = _src.x2[1];
+    }
+    /* 6: storeb */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_Y444");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_Y444);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y800 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 0: loadpb */
+  var33 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+  /* 3: loadpw */
+  var35.i = (int) 0x00008080;   /* 32896 or 1.62528e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadb */
+    var34 = ptr4[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var37.i = _dest.i;
+    }
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var35.i;
+      var36.i = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y800 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 0: loadpb */
+  var33 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+  /* 3: loadpw */
+  var35.i = (int) 0x00008080;   /* 32896 or 1.62528e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadb */
+    var34 = ptr4[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var37.i = _dest.i;
+    }
+    /* 4: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var35.i;
+      var36.i = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_Y800");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_Y800);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_constant (p, 2, 0x00008080, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y800 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
+    /* 3: storeb */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y800 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
+    /* 3: storeb */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_Y800");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_Y800);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y16 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var36.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var37 = _src.x2[1];
+    }
+    /* 3: convubw */
+    var38.i = (orc_uint8) var37;
+    /* 4: shlw */
+    var35.i = var38.i << 8;
+    /* 5: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var36.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var37 = _src.x2[1];
+    }
+    /* 3: convubw */
+    var38.i = (orc_uint8) var37;
+    /* 4: shlw */
+    var35.i = var38.i << 8;
+    /* 5: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_Y16");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_Y16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00000008, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y16 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+  orc_union32 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 2: loadpb */
+  var35 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+  /* 4: loadpw */
+  var36.i = (int) 0x00008080;   /* 32896 or 1.62528e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: convhwb */
+    var38 = ((orc_uint16) var34.i) >> 8;
+    /* 3: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35;
+      _dest.x2[1] = var38;
+      var39.i = _dest.i;
+    }
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var36.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+  orc_union32 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 2: loadpb */
+  var35 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
+  /* 4: loadpw */
+  var36.i = (int) 0x00008080;   /* 32896 or 1.62528e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: convhwb */
+    var38 = ((orc_uint16) var34.i) >> 8;
+    /* 3: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35;
+      _dest.x2[1] = var38;
+      var39.i = _dest.i;
+    }
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var36.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_Y16");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_Y16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_constant (p, 2, 0x00008080, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_BGRA */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr4[i];
+    /* 1: swapl */
+    var33.i = ORC_SWAP_L (var32.i);
+    /* 2: storel */
+    ptr0[i] = var33;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_BGRA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr4[i];
+    /* 1: swapl */
+    var33.i = ORC_SWAP_L (var32.i);
+    /* 2: storel */
+    ptr0[i] = var33;
+  }
+
+}
+
+void
+cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_BGRA");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_BGRA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+
+      orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_BGRA */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr4[i];
+    /* 1: swapl */
+    var33.i = ORC_SWAP_L (var32.i);
+    /* 2: storel */
+    ptr0[i] = var33;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_BGRA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr4[i];
+    /* 1: swapl */
+    var33.i = ORC_SWAP_L (var32.i);
+    /* 2: storel */
+    ptr0[i] = var33;
+  }
+
+}
+
+void
+cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_BGRA");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_BGRA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+
+      orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_RGBA */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var48.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_RGBA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var48.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_RGBA");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_RGBA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_RGBA */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_RGBA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_RGBA");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_RGBA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_ABGR */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_ABGR (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_ABGR");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_ABGR);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_ABGR */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_ABGR (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_int8 var46;
+  orc_int8 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var40 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 2: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_ABGR");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_ABGR);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_NV12 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+  /* 3: loadpb */
+  var36.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var36.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr5[i];
+    /* 1: loadw */
+    var35 = ptr5[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var34.i;
+      _dest.x2[1] = var35.i;
+      var39.i = _dest.i;
+    }
+    /* 4: loadw */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var40.x2[1] = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_NV12 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+  /* 3: loadpb */
+  var36.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var36.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr5[i];
+    /* 1: loadw */
+    var35 = ptr5[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var34.i;
+      _dest.x2[1] = var35.i;
+      var39.i = _dest.i;
+    }
+    /* 4: loadw */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var40.x2[1] = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_NV12");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_NV12);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_NV12 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_union16 *) d2;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var36 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var37.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var37.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var37;
+    /* 4: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 5: avgub */
+    var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 6: storew */
+    ptr1[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_NV12 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_union16 *) ex->arrays[1];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var36 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var37.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var37.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var37;
+    /* 4: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 5: avgub */
+    var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 6: storew */
+    ptr1[i] = var38;
+  }
+
+}
+
+void
+cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_NV12");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_NV12);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_NV21 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+  /* 3: loadpb */
+  var36.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var36.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr5[i];
+    /* 1: swapw */
+    var39.i = ORC_SWAP_W (var35.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var40.i = _dest.i;
+    }
+    /* 4: loadw */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var41.x2[1] = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_NV21 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+  /* 3: loadpb */
+  var36.x2[0] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+  var36.x2[1] = (int) 0x000000ff;       /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr5[i];
+    /* 1: swapw */
+    var39.i = ORC_SWAP_W (var35.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var40.i = _dest.i;
+    }
+    /* 4: loadw */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var41.x2[1] = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_NV21");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_NV21);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_constant (p, 1, 0x000000ff, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_NV21 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_union16 *) d2;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[1];
+      var40.x2[1] = _src.x2[1];
+      var41.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var38.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var38.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var38;
+    /* 4: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 5: avgub */
+    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+    /* 6: swapw */
+    var39.i = ORC_SWAP_W (var44.i);
+    /* 7: storew */
+    ptr1[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_NV21 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_union16 *) ex->arrays[1];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[1];
+      var40.x2[1] = _src.x2[1];
+      var41.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var38.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var38.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var38;
+    /* 4: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
+    /* 5: avgub */
+    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+    /* 6: swapw */
+    var39.i = ORC_SWAP_W (var44.i);
+    /* 7: storew */
+    ptr1[i] = var39;
+  }
+
+}
+
+void
+cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_NV21");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_NV21);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_getline_A420 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+    const guint8 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var39 = ptr5[i >> 1];
+    /* 1: loadupdb */
+    var40 = ptr6[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
+    /* 3: loadb */
+    var36 = ptr7[i];
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_A420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var39 = ptr5[i >> 1];
+    /* 1: loadupdb */
+    var40 = ptr6[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
+    /* 3: loadb */
+    var36 = ptr7[i];
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+    const guint8 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_getline_A420");
+      orc_program_set_backup_function (p, _backup_cogorc_getline_A420);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* cogorc_putline_A420 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_union16 *ORC_RESTRICT ptr3;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_int8 var41;
+  orc_int8 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_int8 var47;
+  orc_int8 var48;
+  orc_int8 var49;
+  orc_int8 var50;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_int8 *) d2;
+  ptr2 = (orc_int8 *) d3;
+  ptr3 = (orc_union16 *) d4;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var38 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[1];
+      var43.x2[1] = _src.x2[1];
+      var44.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var39;
+    /* 4: select0wb */
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 5: storew */
+    ptr3[i] = var40;
+    /* 6: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var45.x2[0] = _src.x2[1];
+      var46.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[1];
+      var45.x2[1] = _src.x2[1];
+      var46.x2[1] = _src.x2[0];
+    }
+    /* 7: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var46.i;
+      var47 = _src.x2[1];
+      var48 = _src.x2[0];
+    }
+    /* 8: avgub */
+    var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
+    /* 9: storeb */
+    ptr1[i] = var41;
+    /* 10: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var49 = _src.x2[1];
+      var50 = _src.x2[0];
+    }
+    /* 11: avgub */
+    var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
+    /* 12: storeb */
+    ptr2[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_A420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_union16 *ORC_RESTRICT ptr3;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_int8 var41;
+  orc_int8 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_int8 var47;
+  orc_int8 var48;
+  orc_int8 var49;
+  orc_int8 var50;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_int8 *) ex->arrays[1];
+  ptr2 = (orc_int8 *) ex->arrays[2];
+  ptr3 = (orc_union16 *) ex->arrays[3];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var38 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[1];
+      var43.x2[1] = _src.x2[1];
+      var44.x2[1] = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
+    /* 3: storew */
+    ptr0[i] = var39;
+    /* 4: select0wb */
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 5: storew */
+    ptr3[i] = var40;
+    /* 6: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var45.x2[0] = _src.x2[1];
+      var46.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[1];
+      var45.x2[1] = _src.x2[1];
+      var46.x2[1] = _src.x2[0];
+    }
+    /* 7: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var46.i;
+      var47 = _src.x2[1];
+      var48 = _src.x2[0];
+    }
+    /* 8: avgub */
+    var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
+    /* 9: storeb */
+    ptr1[i] = var41;
+    /* 10: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var49 = _src.x2[1];
+      var50 = _src.x2[0];
+    }
+    /* 11: avgub */
+    var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
+    /* 12: storeb */
+    ptr2[i] = var42;
+  }
+
+}
+
+void
+cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "cogorc_putline_A420");
+      orc_program_set_backup_function (p, _backup_cogorc_putline_A420);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_destination (p, 2, "d4");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 1, "t5");
+      orc_program_add_temporary (p, 1, "t6");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 1, ORC_VAR_D4, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->arrays[ORC_VAR_D4] = d4;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* orc_resample_bilinear_u32 */
+#ifdef DISABLE_ORC
+void
+orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldreslinl */
+    {
+      int tmp = p1 + i * p2;
+      orc_union32 a = ptr4[tmp >> 16];
+      orc_union32 b = ptr4[(tmp >> 16) + 1];
+      var32.x4[0] =
+          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[1] =
+          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[2] =
+          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[3] =
+          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
+    }
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_orc_resample_bilinear_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldreslinl */
+    {
+      int tmp = ex->params[24] + i * ex->params[25];
+      orc_union32 a = ptr4[tmp >> 16];
+      orc_union32 b = ptr4[(tmp >> 16) + 1];
+      var32.x4[0] =
+          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[1] =
+          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[2] =
+          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[3] =
+          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
+    }
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "orc_resample_bilinear_u32");
+      orc_program_set_backup_function (p, _backup_orc_resample_bilinear_u32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_parameter (p, 4, "p2");
+
+      orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_P1, ORC_VAR_P2);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
+
+
+/* orc_merge_linear_u8 */
+#ifdef DISABLE_ORC
+void
+orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
+    const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
+    int p1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_int8 var47;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+
+  /* 6: loadpw */
+  var38.i = p1;
+  /* 8: loadpw */
+  var39.i = (int) 0x00000080;   /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var41 = ptr4[i];
+    /* 1: loadb */
+    var36 = ptr4[i];
+    /* 2: convubw */
+    var42.i = (orc_uint8) var36;
+    /* 3: loadb */
+    var37 = ptr5[i];
+    /* 4: convubw */
+    var43.i = (orc_uint8) var37;
+    /* 5: subw */
+    var44.i = var43.i - var42.i;
+    /* 7: mullw */
+    var45.i = (var44.i * var38.i) & 0xffff;
+    /* 9: addw */
+    var46.i = var45.i + var39.i;
+    /* 10: convhwb */
+    var47 = ((orc_uint16) var46.i) >> 8;
+    /* 11: addb */
+    var40 = var47 + var41;
+    /* 12: storeb */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_orc_merge_linear_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_int8 var47;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+
+  /* 6: loadpw */
+  var38.i = ex->params[24];
+  /* 8: loadpw */
+  var39.i = (int) 0x00000080;   /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var41 = ptr4[i];
+    /* 1: loadb */
+    var36 = ptr4[i];
+    /* 2: convubw */
+    var42.i = (orc_uint8) var36;
+    /* 3: loadb */
+    var37 = ptr5[i];
+    /* 4: convubw */
+    var43.i = (orc_uint8) var37;
+    /* 5: subw */
+    var44.i = var43.i - var42.i;
+    /* 7: mullw */
+    var45.i = (var44.i * var38.i) & 0xffff;
+    /* 9: addw */
+    var46.i = var45.i + var39.i;
+    /* 10: convhwb */
+    var47 = ((orc_uint16) var46.i) >> 8;
+    /* 11: addb */
+    var40 = var47 + var41;
+    /* 12: storeb */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
+    const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
+    int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcProgram *p = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+
+      p = orc_program_new ();
+      orc_program_set_name (p, "orc_merge_linear_u8");
+      orc_program_set_backup_function (p, _backup_orc_merge_linear_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_constant (p, 4, 0x00000080, "c1");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+
+      orc_program_append_2 (p, "loadb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+          ORC_VAR_D1);
+
+      orc_program_compile (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->program = p;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = p->code_exec;
+  func (ex);
+}
+#endif
diff --git a/gst-libs/gst/video/videoblendorc-dist.h b/gst-libs/gst/video/videoblendorc-dist.h
new file mode 100644 (file)
index 0000000..ce7caab
--- /dev/null
@@ -0,0 +1,107 @@
+
+/* autogenerated from videoblendorc.orc */
+
+#ifndef _VIDEOBLENDORC_H_
+#define _VIDEOBLENDORC_H_
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+typedef int8_t orc_int8;
+typedef int16_t orc_int16;
+typedef int32_t orc_int32;
+typedef int64_t orc_int64;
+typedef uint8_t orc_uint8;
+typedef uint16_t orc_uint16;
+typedef uint32_t orc_uint32;
+typedef uint64_t orc_uint64;
+#define ORC_UINT64_C(x) UINT64_C(x)
+#elif defined(_MSC_VER)
+typedef signed __int8 orc_int8;
+typedef signed __int16 orc_int16;
+typedef signed __int32 orc_int32;
+typedef signed __int64 orc_int64;
+typedef unsigned __int8 orc_uint8;
+typedef unsigned __int16 orc_uint16;
+typedef unsigned __int32 orc_uint32;
+typedef unsigned __int64 orc_uint64;
+#define ORC_UINT64_C(x) (x##Ui64)
+#define inline __inline
+#else
+#include <limits.h>
+typedef signed char orc_int8;
+typedef short orc_int16;
+typedef int orc_int32;
+typedef unsigned char orc_uint8;
+typedef unsigned short orc_uint16;
+typedef unsigned int orc_uint32;
+#if INT_MAX == LONG_MAX
+typedef long long orc_int64;
+typedef unsigned long long orc_uint64;
+#define ORC_UINT64_C(x) (x##ULL)
+#else
+typedef long orc_int64;
+typedef unsigned long orc_uint64;
+#define ORC_UINT64_C(x) (x##UL)
+#endif
+#endif
+typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
+typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
+typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
+#endif
+#ifndef ORC_RESTRICT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define ORC_RESTRICT restrict
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ORC_RESTRICT __restrict__
+#else
+#define ORC_RESTRICT
+#endif
+#endif
+void orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n);
+void orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
+void orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p1, int n);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/gst-libs/gst/video/videoblendorc.orc b/gst-libs/gst/video/videoblendorc.orc
new file mode 100644 (file)
index 0000000..2bdae90
--- /dev/null
@@ -0,0 +1,498 @@
+.function orc_blend_little
+.flags 1d
+.dest 4 d guint8
+.source 4 s guint8
+.temp 4 t
+.temp 2 tw
+.temp 1 tb
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.temp 8 a_wide
+.const 4 a_alpha 0x000000ff
+
+loadl t, s
+convlw tw, t
+convwb tb, tw
+splatbl a, tb
+x4 convubw a_wide, a
+x4 shruw a_wide, a_wide, 8
+x4 convubw s_wide, t
+loadl t, d
+x4 convubw d_wide, t
+x4 subw s_wide, s_wide, d_wide
+x4 mullw s_wide, s_wide, a_wide
+x4 div255w s_wide, s_wide
+x4 addw d_wide, d_wide, s_wide
+x4 convwb t, d_wide
+orl t, t, a_alpha
+storel d, t
+
+.function orc_blend_big
+.flags 1d
+.dest 4 d guint8
+.source 4 s guint8
+.temp 4 t
+.temp 4 t2
+.temp 2 tw
+.temp 1 tb
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.temp 8 a_wide
+.const 4 a_alpha 0xff000000
+
+loadl t, s
+shrul t2, t, 24
+convlw tw, t2
+convwb tb, tw
+splatbl a, tb
+x4 convubw a_wide, a
+x4 shruw a_wide, a_wide, 8
+x4 convubw s_wide, t
+loadl t, d
+x4 convubw d_wide, t
+x4 subw s_wide, s_wide, d_wide
+x4 mullw s_wide, s_wide, a_wide
+x4 div255w s_wide, s_wide
+x4 addw d_wide, d_wide, s_wide
+x4 convwb t, d_wide
+orl t, t, a_alpha
+storel d, t
+
+.function cogorc_getline_I420
+.dest 4 d guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, c255, y
+mergewl d, ay, uv
+
+
+.function cogorc_putline_I420
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv, ay, ayuv
+x2 select1wb y, ay
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+.function cogorc_getline_YUY2
+.dest 8 ayuv guint8
+.source 4 yuy2 guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, yuy2
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function cogorc_putline_YUY2
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, yy, uv1
+
+
+.function cogorc_putline_UYVY
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, uv1, yy
+
+
+.function cogorc_getline_UYVY
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb yy, uv, uyvy
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function cogorc_getline_YUV9
+.dest 8 d guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 tuv
+.temp 4 ay
+.temp 4 uv
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw tuv, tu, tv
+mergewl uv, tuv, tuv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uv
+
+
+.function cogorc_getline_Y42B
+.dest 8 ayuv guint8
+.source 2 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 4 uvuv
+.temp 4 ayay
+
+mergebw uv, u, v
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+.function cogorc_putline_Y42B
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ayay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+splitwb v, u, uv1
+x2 select1wb y, ayay
+
+
+.function cogorc_getline_Y444
+.dest 4 ayuv guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+
+mergebw uv, u, v
+mergebw ay, c255, y
+mergewl ayuv, ay, uv
+
+
+.function cogorc_putline_Y444
+.dest 1 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 2 uv
+
+splitlw uv, ay, ayuv
+splitwb v, u, uv
+select1wb y, ay
+
+.function cogorc_getline_Y800
+.dest 4 ayuv guint8
+.source 1 y guint8
+.const 1 c255 255
+.const 2 c0x8080 0x8080
+.temp 2 ay
+
+mergebw ay, c255, y
+mergewl ayuv, ay, c0x8080
+
+
+.function cogorc_putline_Y800
+.dest 1 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+
+select0lw ay, ayuv
+select1wb y, ay
+
+
+.function cogorc_putline_Y16
+.dest 2 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 1 yb
+
+select0lw ay, ayuv
+select1wb yb, ay
+convubw ay, yb
+shlw y, ay, 8
+
+
+.function cogorc_getline_Y16
+.dest 4 ayuv guint8
+.source 2 y guint8
+.const 1 c255 255
+.const 2 c0x8080 0x8080
+.temp 2 ay
+.temp 1 yb
+
+convhwb yb, y
+mergebw ay, c255, yb
+mergewl ayuv, ay, c0x8080
+
+.function cogorc_getline_BGRA
+.dest 4 argb guint8
+.source 4 bgra guint8
+
+swapl argb, bgra
+
+.function cogorc_putline_BGRA
+.dest 4 bgra guint8
+.source 4 argb guint8
+
+swapl bgra, argb
+
+.function cogorc_putline_RGBA
+.dest 4 rgba guint8
+.source 4 argb guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 rg
+.temp 2 ba
+.temp 2 ar
+.temp 2 gb
+
+splitlw gb, ar, argb
+splitwb b, g, gb
+splitwb r, a, ar
+mergebw ba, b, a
+mergebw rg, r, g
+mergewl rgba, rg, ba
+
+.function cogorc_getline_RGBA
+.dest 4 argb guint8
+.source 4 rgba guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 rg
+.temp 2 ba
+.temp 2 ar
+.temp 2 gb
+
+splitlw ba, rg, rgba
+splitwb g, r, rg
+splitwb a, b, ba
+mergebw ar, a, r
+mergebw gb, g, b
+mergewl argb, ar, gb
+
+
+.function cogorc_getline_ABGR
+.dest 4 argb guint8
+.source 4 abgr guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 gr
+.temp 2 ab
+.temp 2 ar
+.temp 2 gb
+
+splitlw gr, ab, abgr
+splitwb r, g, gr
+splitwb b, a, ab
+mergebw ar, a, r
+mergebw gb, g, b
+mergewl argb, ar, gb
+
+
+.function cogorc_putline_ABGR
+.dest 4 abgr guint8
+.source 4 argb guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 gr
+.temp 2 ab
+.temp 2 ar
+.temp 2 gb
+
+splitlw gb, ar, argb
+splitwb b, g, gb
+splitwb r, a, ar
+mergebw ab, a, b
+mergebw gr, g, r
+mergewl abgr, ab, gr
+
+.function cogorc_getline_NV12
+.dest 8 d guint8
+.source 2 y guint8
+.source 2 uv guint8
+.const 1 c255 255
+.temp 4 ay
+.temp 4 uvuv
+
+mergewl uvuv, uv, uv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uvuv
+
+.function cogorc_putline_NV12
+.dest 2 y guint8
+.dest 2 uv guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ay, ayuv
+x2 select1wb y, ay
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+
+.function cogorc_getline_NV21
+.dest 8 d guint8
+.source 2 y guint8
+.source 2 vu guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 4 ay
+.temp 4 uvuv
+
+swapw uv, vu
+mergewl uvuv, uv, uv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uvuv
+
+
+.function cogorc_putline_NV21
+.dest 2 y guint8
+.dest 2 vu guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+.temp 2 uv
+
+x2 splitlw uvuv, ay, ayuv
+x2 select1wb y, ay
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+swapw vu, uv
+
+
+.function cogorc_getline_A420
+.dest 4 d guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.source 1 a guint8
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, a, y
+mergewl d, ay, uv
+
+.function cogorc_putline_A420
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.dest 2 a guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv, ay, ayuv
+x2 select1wb y, ay
+x2 select0wb a, ay
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+.function orc_resample_bilinear_u32
+.dest 4 d1 guint8
+.source 4 s1 guint8
+.param 4 p1
+.param 4 p2
+
+ldreslinl d1, s1, p1, p2
+
+.function orc_merge_linear_u8
+.dest 1 d1
+.source 1 s1
+.source 1 s2
+.param 1 p1
+.temp 2 t1
+.temp 2 t2
+.temp 1 a
+.temp 1 t
+
+loadb a, s1
+convubw t1, s1
+convubw t2, s2
+subw t2, t2, t1
+mullw t2, t2, p1
+addw t2, t2, 128
+convhwb t, t2
+addb d1, t, a
index 9441222..08bd57e 100644 (file)
@@ -36,6 +36,29 @@ A wide range of video and audio decoders, encoders, and filters are included.
 
  <release>
   <Version>
+   <revision>0.10.36</revision>
+   <branch>0.10</branch>
+   <name>Better</name>
+   <created>2012-02-20</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.36.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.36.tar.gz" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.36.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>0.10.35</revision>
+   <branch>0.10</branch>
+   <name>Short Notice</name>
+   <created>2011-06-15</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.35.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.35.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>0.10.34</revision>
    <branch>0.10</branch>
    <name>Lemmings</name>
index 7017af8..5f741ac 100644 (file)
@@ -55,7 +55,7 @@ plug-ins.
 export DOCS_ARE_INCOMPLETE_PLEASE_FIXME=0
 %build
 %configure \
-  --enable-gtk-doc --enable-introspection=no
+  --enable-gtk-doc --enable-introspection=yes
 
 make %{?_smp_mflags}
                                                                                 
@@ -114,7 +114,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/gstreamer-%{majorminor}/libgstvideorate.so
 %{_libdir}/gstreamer-%{majorminor}/libgstvideoscale.so
 %{_libdir}/gstreamer-%{majorminor}/libgsttcp.so
-%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux.so
 %{_libdir}/gstreamer-%{majorminor}/libgstaudioresample.so
 %{_libdir}/gstreamer-%{majorminor}/libgstaudiotestsrc.so
 %{_libdir}/gstreamer-%{majorminor}/libgstgdp.so
@@ -223,7 +222,11 @@ GStreamer Plugins Base library development and header files.
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/gstdiscoverer.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/gstpluginsbaseversion.h
 %{_includedir}/gstreamer-%{majorminor}/gst/tag/xmpwriter.h
-
+%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudioiec61937.h
+%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiodecoder.h
+%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudioencoder.h
+%{_includedir}/gstreamer-%{majorminor}/gst/tag/gsttagmux.h
+%{_includedir}/gstreamer-%{majorminor}/gst/video/video-overlay-composition.h
 
 %{_libdir}/libgstfft-%{majorminor}.so
 %{_libdir}/libgstrtsp-%{majorminor}.so
@@ -256,9 +259,35 @@ GStreamer Plugins Base library development and header files.
 %{_libdir}/pkgconfig/gstreamer-video-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-app-%{majorminor}.pc
 
+%{_libdir}/girepository-1.0/GstApp-0.10.typelib
+%{_libdir}/girepository-1.0/GstAudio-0.10.typelib
+%{_libdir}/girepository-1.0/GstFft-0.10.typelib
+%{_libdir}/girepository-1.0/GstInterfaces-0.10.typelib
+%{_libdir}/girepository-1.0/GstNetbuffer-0.10.typelib
+%{_libdir}/girepository-1.0/GstPbutils-0.10.typelib
+%{_libdir}/girepository-1.0/GstRiff-0.10.typelib
+%{_libdir}/girepository-1.0/GstRtp-0.10.typelib
+%{_libdir}/girepository-1.0/GstRtsp-0.10.typelib
+%{_libdir}/girepository-1.0/GstSdp-0.10.typelib
+%{_libdir}/girepository-1.0/GstTag-0.10.typelib
+%{_libdir}/girepository-1.0/GstVideo-0.10.typelib
+%{_datadir}/gir-1.0/GstApp-0.10.gir
+%{_datadir}/gir-1.0/GstAudio-0.10.gir
+%{_datadir}/gir-1.0/GstFft-0.10.gir
+%{_datadir}/gir-1.0/GstInterfaces-0.10.gir
+%{_datadir}/gir-1.0/GstNetbuffer-0.10.gir
+%{_datadir}/gir-1.0/GstPbutils-0.10.gir
+%{_datadir}/gir-1.0/GstRiff-0.10.gir
+%{_datadir}/gir-1.0/GstRtp-0.10.gir
+%{_datadir}/gir-1.0/GstRtsp-0.10.gir
+%{_datadir}/gir-1.0/GstSdp-0.10.gir
+%{_datadir}/gir-1.0/GstTag-0.10.gir
+%{_datadir}/gir-1.0/GstVideo-0.10.gir
+
 # gtk-doc documentation
 %doc %{_datadir}/gtk-doc/html/gst-plugins-base-libs-%{majorminor}
 %doc %{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{majorminor}
+%doc %{_datadir}/gst-plugins-base/license-translations.dict
 
 %changelog
 * Fri Dec 15 2006 Thomas Vander Stichele <thomas at apestaart dot org>
index 11fdb0c..c852ed3 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -60,6 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -84,11 +85,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -192,6 +193,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -252,6 +254,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -261,9 +264,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -286,6 +292,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -358,10 +365,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -395,7 +405,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -442,6 +451,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/parallel-subdirs.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -666,10 +676,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 69010c3..60daf6c 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -79,6 +79,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -124,6 +125,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -135,8 +142,8 @@ am__objects_1 = libgstadder_la-tmp-orc.lo
 nodist_libgstadder_la_OBJECTS = $(am__objects_1)
 libgstadder_la_OBJECTS = $(am_libgstadder_la_OBJECTS) \
        $(nodist_libgstadder_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstadder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -152,21 +159,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstadder_la_SOURCES) $(nodist_libgstadder_la_SOURCES)
 DIST_SOURCES = $(libgstadder_la_SOURCES)
@@ -234,6 +241,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -294,6 +302,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -303,9 +312,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -328,6 +340,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -400,10 +413,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -437,7 +453,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -505,6 +520,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -545,7 +561,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstadder.la: $(libgstadder_la_OBJECTS) $(libgstadder_la_DEPENDENCIES) 
+libgstadder.la: $(libgstadder_la_OBJECTS) $(libgstadder_la_DEPENDENCIES) $(EXTRA_libgstadder_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstadder_la_LINK) -rpath $(plugindir) $(libgstadder_la_OBJECTS) $(libgstadder_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -560,42 +576,37 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstadder_la-gstadder.lo: gstadder.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -MT libgstadder_la-gstadder.lo -MD -MP -MF $(DEPDIR)/libgstadder_la-gstadder.Tpo -c -o libgstadder_la-gstadder.lo `test -f 'gstadder.c' || echo '$(srcdir)/'`gstadder.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstadder_la-gstadder.Tpo $(DEPDIR)/libgstadder_la-gstadder.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstadder.c' object='libgstadder_la-gstadder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstadder.c' object='libgstadder_la-gstadder.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-gstadder.lo `test -f 'gstadder.c' || echo '$(srcdir)/'`gstadder.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-gstadder.lo `test -f 'gstadder.c' || echo '$(srcdir)/'`gstadder.c
 
 libgstadder_la-tmp-orc.lo: tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -MT libgstadder_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstadder_la-tmp-orc.Tpo -c -o libgstadder_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstadder_la-tmp-orc.Tpo $(DEPDIR)/libgstadder_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tmp-orc.c' object='libgstadder_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmp-orc.c' object='libgstadder_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -707,10 +718,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index fca3eb2..9f6895f 100644 (file)
@@ -627,6 +627,9 @@ gst_adder_src_event (GstPad * pad, GstEvent * event)
 
   adder = GST_ADDER (gst_pad_get_parent (pad));
 
+  GST_DEBUG_OBJECT (pad, "Got %s event on src pad",
+      GST_EVENT_TYPE_NAME (event));
+
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:
     {
@@ -669,7 +672,7 @@ gst_adder_src_event (GstPad * pad, GstEvent * event)
          * forwarding the seek upstream or from gst_adder_collected,
          * whichever happens first.
          */
-        adder->flush_stop_pending = TRUE;
+        g_atomic_int_set (&adder->flush_stop_pending, TRUE);
       }
       GST_DEBUG_OBJECT (adder, "handling seek event: %" GST_PTR_FORMAT, event);
 
@@ -685,9 +688,6 @@ gst_adder_src_event (GstPad * pad, GstEvent * event)
         adder->segment_end = end;
       else
         adder->segment_end = GST_CLOCK_TIME_NONE;
-      /* make sure we push a new segment, to inform about new basetime
-       * see FIXME in gst_adder_collected() */
-      adder->segment_pending = TRUE;
       if (flush) {
         /* Yes, we need to call _set_flushing again *WHEN* the streaming threads
          * have stopped so that the cookie gets properly updated. */
@@ -697,6 +697,9 @@ gst_adder_src_event (GstPad * pad, GstEvent * event)
       GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
           event);
 
+      /* we're forwarding seek to all upstream peers and wait for one to reply
+       * with a newsegment-event before we send a newsegment-event downstream */
+      g_atomic_int_set (&adder->wait_for_new_segment, TRUE);
       result = forward_event (adder, event, flush);
       if (!result) {
         /* seek failed. maybe source is a live source. */
@@ -739,8 +742,8 @@ gst_adder_sink_event (GstPad * pad, GstEvent * event)
 
   adder = GST_ADDER (gst_pad_get_parent (pad));
 
-  GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
-      GST_DEBUG_PAD_NAME (pad));
+  GST_DEBUG_OBJECT (pad, "Got %s event on sink pad",
+      GST_EVENT_TYPE_NAME (event));
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_STOP:
@@ -752,8 +755,8 @@ gst_adder_sink_event (GstPad * pad, GstEvent * event)
        * flush-stop from the collect function later.
        */
       GST_OBJECT_LOCK (adder->collect);
-      adder->segment_pending = TRUE;
-      adder->flush_stop_pending = FALSE;
+      g_atomic_int_set (&adder->new_segment_pending, TRUE);
+      g_atomic_int_set (&adder->flush_stop_pending, FALSE);
       /* Clear pending tags */
       if (adder->pending_events) {
         g_list_foreach (adder->pending_events, (GFunc) gst_event_unref, NULL);
@@ -768,6 +771,14 @@ gst_adder_sink_event (GstPad * pad, GstEvent * event)
       adder->pending_events = g_list_append (adder->pending_events, event);
       GST_OBJECT_UNLOCK (adder->collect);
       goto beach;
+    case GST_EVENT_NEWSEGMENT:
+      if (g_atomic_int_compare_and_exchange (&adder->wait_for_new_segment,
+              TRUE, FALSE)) {
+        /* make sure we push a new segment, to inform about new basetime
+         * see FIXME in gst_adder_collected() */
+        g_atomic_int_set (&adder->new_segment_pending, TRUE);
+      }
+      break;
     default:
       break;
   }
@@ -785,10 +796,10 @@ gst_adder_base_init (gpointer g_class)
 {
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_adder_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_adder_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_adder_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_adder_sink_template);
   gst_element_class_set_details_simple (gstelement_class, "Adder",
       "Generic/Audio",
       "Add N audio channels together",
@@ -943,7 +954,11 @@ gst_adder_request_new_pad (GstElement * element, GstPadTemplate * templ,
   adder = GST_ADDER (element);
 
   /* increment pad counter */
+#if GLIB_CHECK_VERSION(2,29,5)
+  padcount = g_atomic_int_add (&adder->padcount, 1);
+#else
   padcount = g_atomic_int_exchange_and_add (&adder->padcount, 1);
+#endif
 
   name = g_strdup_printf ("sink%d", padcount);
   newpad = gst_pad_new_from_template (templ, name);
@@ -1001,8 +1016,14 @@ gst_adder_do_clip (GstCollectPads * pads, GstCollectData * data,
 {
   GstAdder *adder = GST_ADDER (user_data);
 
-  buffer = gst_audio_buffer_clip (buffer, &data->segment, adder->rate,
-      adder->bps);
+  /* in 0.10 the application might need to seek on newly added source-branches
+   * to make it send a newsegment, that is hard to sync and so the segment might
+   * not be initialized. Check this here to not trigger the assertion
+   */
+  if (data->segment.format != GST_FORMAT_UNDEFINED) {
+    buffer = gst_audio_buffer_clip (buffer, &data->segment, adder->rate,
+        adder->bps);
+  }
 
   return buffer;
 }
@@ -1143,14 +1164,15 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data)
     /* we had an output buffer, unref the gapbuffer we kept */
     gst_buffer_unref (gapbuf);
 
-  if (adder->segment_pending) {
+  if (g_atomic_int_compare_and_exchange (&adder->new_segment_pending, TRUE,
+          FALSE)) {
     GstEvent *event;
 
     /* FIXME, use rate/applied_rate as set on all sinkpads.
      * - currently we just set rate as received from last seek-event
      *
      * When seeking we set the start and stop positions as given in the seek
-     * event. We also adjust offset & timestamp acordingly.
+     * event. We also adjust offset & timestamp accordingly.
      * This basically ignores all newsegments sent by upstream.
      */
     event = gst_event_new_new_segment_full (FALSE, adder->segment_rate,
@@ -1170,10 +1192,8 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data)
 
     if (event) {
       if (!gst_pad_push_event (adder->srcpad, event)) {
-        GST_WARNING_OBJECT (adder->srcpad, "Sending event  %p (%s) failed.",
-            event, GST_EVENT_TYPE_NAME (event));
+        GST_WARNING_OBJECT (adder->srcpad, "Sending event failed");
       }
-      adder->segment_pending = FALSE;
     } else {
       GST_WARNING_OBJECT (adder->srcpad, "Creating new segment event for "
           "start:%" G_GINT64_FORMAT "  end:%" G_GINT64_FORMAT " failed",
@@ -1261,7 +1281,8 @@ gst_adder_change_state (GstElement * element, GstStateChange transition)
       adder->timestamp = 0;
       adder->offset = 0;
       adder->flush_stop_pending = FALSE;
-      adder->segment_pending = TRUE;
+      adder->new_segment_pending = TRUE;
+      adder->wait_for_new_segment = FALSE;
       adder->segment_start = 0;
       adder->segment_end = GST_CLOCK_TIME_NONE;
       adder->segment_rate = 1.0;
index f0151b4..7fbdde6 100644 (file)
@@ -85,11 +85,12 @@ struct _GstAdder {
   /* sink event handling */
   GstPadEventFunction  collect_event;
   GstSegment      segment;
-  gboolean        segment_pending;
   guint64         segment_start, segment_end;
   gdouble         segment_rate;
+  volatile gboolean new_segment_pending;
+  volatile gboolean wait_for_new_segment;
   /* src event handling */
-  gboolean        flush_stop_pending;
+  volatile gboolean flush_stop_pending;
   
   /* target caps */
   GstCaps *filter_caps;
index 5698808..cf6f35e 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -100,6 +101,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -107,8 +114,8 @@ libgstapp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
        $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la
 am_libgstapp_la_OBJECTS = libgstapp_la-gstapp.lo
 libgstapp_la_OBJECTS = $(am_libgstapp_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstapp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -124,21 +131,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstapp_la_SOURCES)
 DIST_SOURCES = $(libgstapp_la_SOURCES)
@@ -205,6 +212,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -265,6 +273,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -274,9 +283,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -299,6 +311,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -371,10 +384,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -408,7 +424,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -500,7 +515,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstapp.la: $(libgstapp_la_OBJECTS) $(libgstapp_la_DEPENDENCIES) 
+libgstapp.la: $(libgstapp_la_OBJECTS) $(libgstapp_la_DEPENDENCIES) $(EXTRA_libgstapp_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstapp_la_LINK) -rpath $(plugindir) $(libgstapp_la_OBJECTS) $(libgstapp_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -514,34 +529,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstapp_la-gstapp.lo: gstapp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_la_CFLAGS) $(CFLAGS) -MT libgstapp_la-gstapp.lo -MD -MP -MF $(DEPDIR)/libgstapp_la-gstapp.Tpo -c -o libgstapp_la-gstapp.lo `test -f 'gstapp.c' || echo '$(srcdir)/'`gstapp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_la-gstapp.Tpo $(DEPDIR)/libgstapp_la-gstapp.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstapp.c' object='libgstapp_la-gstapp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstapp.c' object='libgstapp_la-gstapp.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_la_CFLAGS) $(CFLAGS) -c -o libgstapp_la-gstapp.lo `test -f 'gstapp.c' || echo '$(srcdir)/'`gstapp.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_la_CFLAGS) $(CFLAGS) -c -o libgstapp_la-gstapp.lo `test -f 'gstapp.c' || echo '$(srcdir)/'`gstapp.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -648,10 +659,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 098fbdd..ca54ae4 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+/**
+ * SECTION:element-appsrc
+ *
+ * The appsrc element can be used by applications to insert data into a
+ * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides
+ * external API functions.
+ *
+ * For the documentation of the API, please see the
+ * <link linkend="gst-plugins-base-libs-appsrc">libgstapp</link> section in the
+ * GStreamer Plugins Base Libraries documentation.
+ *
+ * Since: 0.10.22
+ */
+/**
+ * SECTION:element-appsink
+ *
+ * Appsink is a sink plugin that supports many different methods for making
+ * the application get a handle on the GStreamer data in a pipeline. Unlike
+ * most GStreamer elements, Appsink provides external API functions.
+ *
+ * For the documentation of the API, please see the
+ * <link linkend="gst-plugins-base-libs-appsink">libgstapp</link> section in
+ * the GStreamer Plugins Base Libraries documentation.
+ *
+ * Since: 0.10.22
+ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
index b8849b6..1626479 100644 (file)
@@ -26,15 +26,6 @@ noinst_HEADERS = \
        gstfastrandom.h \
        plugin.h
 
-#TESTS = channelmixtest
-#noinst_PROGRAMS = channelmixtest
-
-#channelmixtest_CFLAGS = $(GST_CFLAGS)
-#channelmixtest_LDADD = libgstaudioconvert.la \
-#      $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
-#      $(GST_LIBS)
-
-
 Android.mk: Makefile.am $(BUILT_SOURCES)
        androgenizer \
        -:PROJECT libgstaudioconvert -:SHARED libgstaudioconvert \
index 4282b5c..f5efb0e 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -79,6 +79,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -124,6 +125,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -140,8 +147,8 @@ am__objects_1 = libgstaudioconvert_la-tmp-orc.lo
 nodist_libgstaudioconvert_la_OBJECTS = $(am__objects_1)
 libgstaudioconvert_la_OBJECTS = $(am_libgstaudioconvert_la_OBJECTS) \
        $(nodist_libgstaudioconvert_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstaudioconvert_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -157,21 +164,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstaudioconvert_la_SOURCES) \
        $(nodist_libgstaudioconvert_la_SOURCES)
@@ -240,6 +247,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -300,6 +308,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -309,9 +318,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -334,6 +346,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -406,10 +419,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -443,7 +459,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -524,6 +539,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -564,7 +580,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstaudioconvert.la: $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_DEPENDENCIES) 
+libgstaudioconvert.la: $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_DEPENDENCIES) $(EXTRA_libgstaudioconvert_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstaudioconvert_la_LINK) -rpath $(plugindir) $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -583,74 +599,65 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudioconvert_la-gstaudioconvert.lo: gstaudioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstaudioconvert.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Tpo -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Tpo $(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudioconvert.c' object='libgstaudioconvert_la-gstaudioconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudioconvert.c' object='libgstaudioconvert_la-gstaudioconvert.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
 
 libgstaudioconvert_la-audioconvert.lo: audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-audioconvert.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-audioconvert.Tpo -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-audioconvert.Tpo $(DEPDIR)/libgstaudioconvert_la-audioconvert.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='audioconvert.c' object='libgstaudioconvert_la-audioconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audioconvert.c' object='libgstaudioconvert_la-audioconvert.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
 
 libgstaudioconvert_la-gstchannelmix.lo: gstchannelmix.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstchannelmix.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Tpo -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Tpo $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstchannelmix.c' object='libgstaudioconvert_la-gstchannelmix.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstchannelmix.c' object='libgstaudioconvert_la-gstchannelmix.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
 
 libgstaudioconvert_la-gstaudioquantize.lo: gstaudioquantize.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstaudioquantize.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Tpo -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Tpo $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudioquantize.c' object='libgstaudioconvert_la-gstaudioquantize.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudioquantize.c' object='libgstaudioconvert_la-gstaudioquantize.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
 
 libgstaudioconvert_la-plugin.lo: plugin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-plugin.Tpo -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-plugin.Tpo $(DEPDIR)/libgstaudioconvert_la-plugin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='plugin.c' object='libgstaudioconvert_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='plugin.c' object='libgstaudioconvert_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 
 libgstaudioconvert_la-tmp-orc.lo: tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Tpo -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Tpo $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tmp-orc.c' object='libgstaudioconvert_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmp-orc.c' object='libgstaudioconvert_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -762,10 +769,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -903,14 +915,6 @@ dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
        cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
        cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
 
-#TESTS = channelmixtest
-#noinst_PROGRAMS = channelmixtest
-
-#channelmixtest_CFLAGS = $(GST_CFLAGS)
-#channelmixtest_LDADD = libgstaudioconvert.la \
-#      $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
-#      $(GST_LIBS)
-
 Android.mk: Makefile.am $(BUILT_SOURCES)
        androgenizer \
        -:PROJECT libgstaudioconvert -:SHARED libgstaudioconvert \
index 524098c..d43432a 100644 (file)
@@ -280,7 +280,7 @@ MAKE_UNPACK_FUNC_ORC_IF (s32_le_float, 4, 0, READ32_FROM_LE);
 MAKE_UNPACK_FUNC_ORC_IF (u32_be_float, 4, SIGNED, READ32_FROM_BE);
 MAKE_UNPACK_FUNC_ORC_IF (s32_be_float, 4, 0, READ32_FROM_BE);
 
-/* One of the double_hq_* functions generated above is ineffecient, but it's
+/* One of the double_hq_* functions generated above is inefficient, but it's
  * never used anyway.  The same is true for one of the s32_* functions. */
 
 /*** 
@@ -650,7 +650,7 @@ audio_convert_prepare_context (AudioConvertCtx * ctx, AudioConvertFmt * in,
   ctx->pack = pack_funcs[idx_out];
 
   /* if both formats are float/double or we use noise shaping use double as
-   * intermediate format and and switch mixing */
+   * intermediate format and switch mixing */
   if (!DOUBLE_INTERMEDIATE_FORMAT (ctx)) {
     GST_INFO ("use int mixing");
     ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_int;
index 2b3445a..717cf10 100644 (file)
@@ -221,10 +221,10 @@ gst_audio_convert_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_convert_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_convert_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_convert_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_convert_sink_template);
   gst_element_class_set_details_simple (element_class,
       "Audio converter", "Filter/Converter/Audio",
       "Convert audio to different formats", "Benjamin Otte <otte@gnome.org>");
@@ -503,15 +503,15 @@ append_with_other_format (GstCaps * caps, GstStructure * s, gboolean isfloat)
   if (isfloat) {
     s2 = gst_structure_copy (s);
     gst_structure_set_name (s2, "audio/x-raw-int");
-    s = make_lossless_changes (s2, FALSE);
+    make_lossless_changes (s2, FALSE);
     /* If 64 bit float was allowed; remove width 64: we don't support it for 
      * integer*/
-    strip_width_64 (s);
+    strip_width_64 (s2);
     gst_caps_append_structure (caps, s2);
   } else {
     s2 = gst_structure_copy (s);
     gst_structure_set_name (s2, "audio/x-raw-float");
-    s = make_lossless_changes (s2, TRUE);
+    make_lossless_changes (s2, TRUE);
     gst_caps_append_structure (caps, s2);
   }
 }
index ebba8f4..cae6f42 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,14 +103,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstaudiorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
 am_libgstaudiorate_la_OBJECTS = libgstaudiorate_la-gstaudiorate.lo
 libgstaudiorate_la_OBJECTS = $(am_libgstaudiorate_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstaudiorate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -125,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstaudiorate_la_SOURCES)
 DIST_SOURCES = $(libgstaudiorate_la_SOURCES)
@@ -207,6 +214,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -267,6 +275,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -276,9 +285,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -301,6 +313,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -373,10 +386,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -410,7 +426,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -503,7 +518,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstaudiorate.la: $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_DEPENDENCIES) 
+libgstaudiorate.la: $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_DEPENDENCIES) $(EXTRA_libgstaudiorate_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstaudiorate_la_LINK) -rpath $(plugindir) $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -517,34 +532,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudiorate_la-gstaudiorate.lo: gstaudiorate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) -MT libgstaudiorate_la-gstaudiorate.lo -MD -MP -MF $(DEPDIR)/libgstaudiorate_la-gstaudiorate.Tpo -c -o libgstaudiorate_la-gstaudiorate.lo `test -f 'gstaudiorate.c' || echo '$(srcdir)/'`gstaudiorate.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiorate_la-gstaudiorate.Tpo $(DEPDIR)/libgstaudiorate_la-gstaudiorate.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudiorate.c' object='libgstaudiorate_la-gstaudiorate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudiorate.c' object='libgstaudiorate_la-gstaudiorate.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) -c -o libgstaudiorate_la-gstaudiorate.lo `test -f 'gstaudiorate.c' || echo '$(srcdir)/'`gstaudiorate.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) -c -o libgstaudiorate_la-gstaudiorate.lo `test -f 'gstaudiorate.c' || echo '$(srcdir)/'`gstaudiorate.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -651,10 +662,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 40d3467..4bf7d0a 100644 (file)
@@ -165,10 +165,10 @@ gst_audio_rate_base_init (gpointer g_class)
       "Drops/duplicates/adjusts timestamps on audio samples to make a perfect stream",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_rate_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_rate_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_rate_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_rate_src_template);
 }
 
 static void
@@ -649,7 +649,7 @@ gst_audio_rate_chain (GstPad * pad, GstBuffer * buf)
       GST_BUFFER_OFFSET_END (fill) = audiorate->next_offset;
 
       /* Use next timestamp, then calculate following timestamp based on 
-       * offset to get duration. Neccesary complexity to get 'perfect' 
+       * offset to get duration. Necessary complexity to get 'perfect' 
        * streams */
       GST_BUFFER_TIMESTAMP (fill) = audiorate->next_ts;
       audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
index 3464a82..f2be5c7 100644 (file)
@@ -20,7 +20,6 @@ libgstaudioresample_la_CFLAGS = \
        $(ORC_CFLAGS)
 
 libgstaudioresample_la_LIBADD = \
-       $(GST_PLUGINS_BASE_LIBS) \
        $(GST_BASE_LIBS) \
        $(GST_LIBS) \
        $(ORC_LIBS) $(ORC_TEST_LIBS) \
index f72c26a..b4a2979 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -114,8 +121,8 @@ am_libgstaudioresample_la_OBJECTS =  \
        libgstaudioresample_la-speex_resampler_float.lo \
        libgstaudioresample_la-speex_resampler_double.lo
 libgstaudioresample_la_OBJECTS = $(am_libgstaudioresample_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstaudioresample_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -131,21 +138,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstaudioresample_la_SOURCES)
 DIST_SOURCES = $(libgstaudioresample_la_SOURCES)
@@ -213,6 +220,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -273,6 +281,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -282,9 +291,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -307,6 +319,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -379,10 +392,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -416,7 +432,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -455,7 +470,6 @@ libgstaudioresample_la_CFLAGS = \
        $(ORC_CFLAGS)
 
 libgstaudioresample_la_LIBADD = \
-       $(GST_PLUGINS_BASE_LIBS) \
        $(GST_BASE_LIBS) \
        $(GST_LIBS) \
        $(ORC_LIBS) $(ORC_TEST_LIBS) \
@@ -541,7 +555,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstaudioresample.la: $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_DEPENDENCIES) 
+libgstaudioresample.la: $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_DEPENDENCIES) $(EXTRA_libgstaudioresample_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstaudioresample_la_LINK) -rpath $(plugindir) $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -558,58 +572,51 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudioresample_la-gstaudioresample.lo: gstaudioresample.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-gstaudioresample.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-gstaudioresample.Tpo -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-gstaudioresample.Tpo $(DEPDIR)/libgstaudioresample_la-gstaudioresample.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudioresample.c' object='libgstaudioresample_la-gstaudioresample.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudioresample.c' object='libgstaudioresample_la-gstaudioresample.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
 
 libgstaudioresample_la-speex_resampler_int.lo: speex_resampler_int.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_int.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Tpo -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='speex_resampler_int.c' object='libgstaudioresample_la-speex_resampler_int.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='speex_resampler_int.c' object='libgstaudioresample_la-speex_resampler_int.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
 
 libgstaudioresample_la-speex_resampler_float.lo: speex_resampler_float.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_float.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Tpo -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='speex_resampler_float.c' object='libgstaudioresample_la-speex_resampler_float.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='speex_resampler_float.c' object='libgstaudioresample_la-speex_resampler_float.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
 
 libgstaudioresample_la-speex_resampler_double.lo: speex_resampler_double.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_double.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Tpo -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='speex_resampler_double.c' object='libgstaudioresample_la-speex_resampler_double.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='speex_resampler_double.c' object='libgstaudioresample_la-speex_resampler_double.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -716,10 +723,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 9364a86..418a77c 100644 (file)
@@ -103,7 +103,7 @@ GST_STATIC_CAPS ( \
       "signed = (boolean) true" \
 )
 
-/* If TRUE integer arithmetic resampling is faster and will be used if appropiate */
+/* If TRUE integer arithmetic resampling is faster and will be used if appropriate */
 #if defined AUDIORESAMPLE_FORMAT_INT
 static gboolean gst_audio_resample_use_int = TRUE;
 #elif defined AUDIORESAMPLE_FORMAT_FLOAT
@@ -154,10 +154,10 @@ gst_audio_resample_base_init (gpointer g_class)
 {
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_resample_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_resample_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_resample_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_resample_sink_template);
 
   gst_element_class_set_details_simple (gstelement_class, "Audio resampler",
       "Filter/Converter/Audio", "Resamples audio",
@@ -187,7 +187,7 @@ gst_audio_resample_class_init (GstAudioResampleClass * klass)
    *
    * Length of the resample filter
    *
-   * Deprectated: Use #GstAudioResample:quality property instead
+   * Deprecated: Use #GstAudioResample:quality property instead
    */
   g_object_class_install_property (gobject_class, PROP_FILTER_LENGTH,
       g_param_spec_int ("filter-length", "Filter length",
@@ -1168,10 +1168,6 @@ gst_audio_resample_process (GstAudioResample * resample, GstBuffer * inbuf,
       GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)),
       GST_BUFFER_OFFSET (outbuf), GST_BUFFER_OFFSET_END (outbuf));
 
-  if (out_processed == 0) {
-    GST_DEBUG_OBJECT (resample, "buffer dropped");
-    return GST_BASE_TRANSFORM_FLOW_DROPPED;
-  }
   return GST_FLOW_OK;
 }
 
@@ -1346,18 +1342,19 @@ gst_audio_resample_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
 {
   GstAudioResample *resample;
+  gint quality;
 
   resample = GST_AUDIO_RESAMPLE (object);
 
   switch (prop_id) {
     case PROP_QUALITY:
       GST_BASE_TRANSFORM_LOCK (resample);
-      resample->quality = g_value_get_int (value);
-      GST_DEBUG_OBJECT (resample, "new quality %d", resample->quality);
+      quality = g_value_get_int (value);
+      GST_DEBUG_OBJECT (resample, "new quality %d", quality);
 
       gst_audio_resample_update_state (resample, resample->width,
           resample->channels, resample->inrate, resample->outrate,
-          resample->quality, resample->fp);
+          quality, resample->fp);
       GST_BASE_TRANSFORM_UNLOCK (resample);
       break;
     case PROP_FILTER_LENGTH:{
@@ -1365,33 +1362,33 @@ gst_audio_resample_set_property (GObject * object, guint prop_id,
 
       GST_BASE_TRANSFORM_LOCK (resample);
       if (filter_length <= 8)
-        resample->quality = 0;
+        quality = 0;
       else if (filter_length <= 16)
-        resample->quality = 1;
+        quality = 1;
       else if (filter_length <= 32)
-        resample->quality = 2;
+        quality = 2;
       else if (filter_length <= 48)
-        resample->quality = 3;
+        quality = 3;
       else if (filter_length <= 64)
-        resample->quality = 4;
+        quality = 4;
       else if (filter_length <= 80)
-        resample->quality = 5;
+        quality = 5;
       else if (filter_length <= 96)
-        resample->quality = 6;
+        quality = 6;
       else if (filter_length <= 128)
-        resample->quality = 7;
+        quality = 7;
       else if (filter_length <= 160)
-        resample->quality = 8;
+        quality = 8;
       else if (filter_length <= 192)
-        resample->quality = 9;
+        quality = 9;
       else
-        resample->quality = 10;
+        quality = 10;
 
-      GST_DEBUG_OBJECT (resample, "new quality %d", resample->quality);
+      GST_DEBUG_OBJECT (resample, "new quality %d", quality);
 
       gst_audio_resample_update_state (resample, resample->width,
           resample->channels, resample->inrate, resample->outrate,
-          resample->quality, resample->fp);
+          quality, resample->fp);
       GST_BASE_TRANSFORM_UNLOCK (resample);
       break;
     }
@@ -1557,7 +1554,7 @@ _benchmark_integer_resampling (void)
   resample_int_resampler_destroy (stb);
 
   if (av > bv)
-    GST_INFO ("Using integer resampler if appropiate: %lf < %lf", bv, av);
+    GST_INFO ("Using integer resampler if appropriate: %lf < %lf", bv, av);
   else
     GST_INFO ("Using float resampler for everything: %lf <= %lf", av, bv);
 
index 7d42f0e..490eebc 100644 (file)
 #ifdef OUTSIDE_SPEEX
 #include <stdlib.h>
 
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
 #include <glib.h>
 
+#ifdef HAVE_ORC
+#include <orc/orc.h>
+#endif
+
 #define EXPORT G_GNUC_INTERNAL
 
+#ifdef _USE_SSE
+#ifndef HAVE_XMMINTRIN_H
+#undef _USE_SSE
+#endif
+#endif
+
+#ifdef _USE_SSE2
+#ifndef HAVE_EMMINTRIN_H
+#undef _USE_SSE2
+#endif
+#endif
+
 static inline void *
 speex_alloc (int size)
 {
@@ -97,10 +117,6 @@ speex_free (void *ptr)
 
 #include <math.h>
 
-#ifndef M_PI
-#define M_PI 3.14159263
-#endif
-
 #ifdef FIXED_POINT
 #define WORD2INT(x) ((x) < -32767 ? -32768 : ((x) > 32766 ? 32767 : (x)))
 #else
@@ -114,7 +130,7 @@ speex_free (void *ptr)
 #define NULL 0
 #endif
 
-#ifdef _USE_SSE
+#if defined _USE_SSE || defined _USE_SSE2
 #include "resample_sse.h"
 #endif
 
@@ -125,6 +141,28 @@ speex_free (void *ptr)
 #define FIXED_STACK_ALLOC 1024
 #endif
 
+/* Allow selecting SSE or not when compiled with SSE support */
+#ifdef _USE_SSE
+#define SSE_FALLBACK(macro) \
+  if (st->use_sse) goto sse_##macro##_sse; {
+#define SSE_IMPLEMENTATION(macro) \
+  goto sse_##macro##_end; } sse_##macro##_sse: {
+#define SSE_END(macro) sse_##macro##_end:; }
+#else
+#define SSE_FALLBACK(macro)
+#endif
+
+#ifdef _USE_SSE2
+#define SSE2_FALLBACK(macro) \
+  if (st->use_sse2) goto sse2_##macro##_sse2; {
+#define SSE2_IMPLEMENTATION(macro) \
+  goto sse2_##macro##_end; } sse2_##macro##_sse2: {
+#define SSE2_END(macro) sse2_##macro##_end:; }
+#else
+#define SSE2_FALLBACK(macro)
+#endif
+
+
 typedef int (*resampler_basic_func) (SpeexResamplerState *, spx_uint32_t,
     const spx_word16_t *, spx_uint32_t *, spx_word16_t *, spx_uint32_t *);
 
@@ -159,6 +197,9 @@ struct SpeexResamplerState_
 
   int in_stride;
   int out_stride;
+
+  int use_sse:1;
+  int use_sse2:1;
 };
 
 static double kaiser12_table[68] = {
@@ -323,7 +364,7 @@ sinc (float cutoff, float x, int N, struct FuncDef *window_func)
   else if (fabs (x) > .5f * N)
     return 0;
   /*FIXME: Can it really be any slower than this? */
-  return WORD2INT (32768. * cutoff * sin (M_PI * xx) / (M_PI * xx) *
+  return WORD2INT (32768. * cutoff * sin (G_PI * xx) / (G_PI * xx) *
       compute_func (fabs (2. * x / N), window_func));
 }
 #else
@@ -346,7 +387,7 @@ sinc (float cutoff, float x, int N, struct FuncDef *window_func)
   else if (fabs (x) > .5 * N)
     return 0;
   /*FIXME: Can it really be any slower than this? */
-  return cutoff * sin (M_PI * xx) / (M_PI * xx) * compute_func (fabs (2. * x /
+  return cutoff * sin (G_PI * xx) / (G_PI * xx) * compute_func (fabs (2. * x /
           N), window_func);
 }
 #endif
@@ -414,13 +455,13 @@ resampler_basic_direct_single (SpeexResamplerState * st,
     const spx_word16_t *sinc = &sinc_table[samp_frac_num * N];
     const spx_word16_t *iptr = &in[last_sample];
 
-#ifndef OVERRIDE_INNER_PRODUCT_SINGLE
+    SSE_FALLBACK (INNER_PRODUCT_SINGLE)
     sum = 0;
     for (j = 0; j < N; j++)
       sum += MULT16_16 (sinc[j], iptr[j]);
 
 /*    This code is slower on most DSPs which have only 2 accumulators.
-      Plus this this forces truncation to 32 bits and you lose the HW guard bits.
+      Plus this forces truncation to 32 bits and you lose the HW guard bits.
       I think we can trust the compiler and let it vectorize and/or unroll itself.
       spx_word32_t accum[4] = {0,0,0,0};
       for(j=0;j<N;j+=4) {
@@ -431,8 +472,10 @@ resampler_basic_direct_single (SpeexResamplerState * st,
       }
       sum = accum[0] + accum[1] + accum[2] + accum[3];
 */
-#else
+#ifdef OVERRIDE_INNER_PRODUCT_SINGLE
+    SSE_IMPLEMENTATION (INNER_PRODUCT_SINGLE)
     sum = inner_product_single (sinc, iptr, N);
+    SSE_END(INNER_PRODUCT_SINGLE)
 #endif
 
     out[out_stride * out_sample++] = SATURATE32 (PSHR32 (sum, 15), 32767);
@@ -475,7 +518,7 @@ resampler_basic_direct_double (SpeexResamplerState * st,
     const spx_word16_t *sinc = &sinc_table[samp_frac_num * N];
     const spx_word16_t *iptr = &in[last_sample];
 
-#ifndef OVERRIDE_INNER_PRODUCT_DOUBLE
+    SSE2_FALLBACK (INNER_PRODUCT_DOUBLE)
     double accum[4] = { 0, 0, 0, 0 };
 
     for (j = 0; j < N; j += 4) {
@@ -485,8 +528,10 @@ resampler_basic_direct_double (SpeexResamplerState * st,
       accum[3] += sinc[j + 3] * iptr[j + 3];
     }
     sum = accum[0] + accum[1] + accum[2] + accum[3];
-#else
+#ifdef OVERRIDE_INNER_PRODUCT_DOUBLE
+    SSE2_IMPLEMENTATION (INNER_PRODUCT_DOUBLE)
     sum = inner_product_double (sinc, iptr, N);
+    SSE2_END (INNER_PRODUCT_DOUBLE)
 #endif
 
     out[out_stride * out_sample++] = PSHR32 (sum, 15);
@@ -538,7 +583,7 @@ resampler_basic_interpolate_single (SpeexResamplerState * st,
     spx_word16_t interp[4];
 
 
-#ifndef OVERRIDE_INTERPOLATE_PRODUCT_SINGLE
+    SSE_FALLBACK (INTERPOLATE_PRODUCT_SINGLE)
     spx_word32_t accum[4] = { 0, 0, 0, 0 };
 
     for (j = 0; j < N; j++) {
@@ -563,12 +608,14 @@ resampler_basic_interpolate_single (SpeexResamplerState * st,
             1)) + MULT16_32_Q15 (interp[1], SHR32 (accum[1],
             1)) + MULT16_32_Q15 (interp[2], SHR32 (accum[2],
             1)) + MULT16_32_Q15 (interp[3], SHR32 (accum[3], 1));
-#else
+#ifdef OVERRIDE_INTERPOLATE_PRODUCT_SINGLE
+    SSE_IMPLEMENTATION (INTERPOLATE_PRODUCT_SINGLE)
     cubic_coef (frac, interp);
     sum =
         interpolate_product_single (iptr,
         st->sinc_table + st->oversample + 4 - offset - 2, N, st->oversample,
         interp);
+    SSE_END (INTERPOLATE_PRODUCT_SINGLE)
 #endif
 
     out[out_stride * out_sample++] = SATURATE32 (PSHR32 (sum, 14), 32767);
@@ -628,7 +675,7 @@ resampler_basic_interpolate_double (SpeexResamplerState * st,
     spx_word16_t interp[4];
 
 
-#ifndef OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+    SSE2_FALLBACK (INTERPOLATE_PRODUCT_DOUBLE)
     double accum[4] = { 0, 0, 0, 0 };
 
     for (j = 0; j < N; j++) {
@@ -652,12 +699,14 @@ resampler_basic_interpolate_double (SpeexResamplerState * st,
         MULT16_32_Q15 (interp[0], accum[0]) + MULT16_32_Q15 (interp[1],
         accum[1]) + MULT16_32_Q15 (interp[2],
         accum[2]) + MULT16_32_Q15 (interp[3], accum[3]);
-#else
+#ifdef OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+    SSE2_IMPLEMENTATION (INTERPOLATE_PRODUCT_DOUBLE)
     cubic_coef (frac, interp);
     sum =
         interpolate_product_double (iptr,
         st->sinc_table + st->oversample + 4 - offset - 2, N, st->oversample,
         interp);
+    SSE2_END (INTERPOLATE_PRODUCT_DOUBLE)
 #endif
 
     out[out_stride * out_sample++] = PSHR32 (sum, 15);
@@ -879,6 +928,19 @@ speex_resampler_init (spx_uint32_t nb_channels, spx_uint32_t in_rate,
       out_rate, quality, err);
 }
 
+#if defined HAVE_ORC && !defined DISABLE_ORC
+static void
+check_insn_set (SpeexResamplerState * st, const char *name)
+{
+  if (!name)
+    return;
+  if (!strcmp (name, "sse"))
+    st->use_sse = 1;
+  if (!strcmp (name, "sse2"))
+    st->use_sse = st->use_sse2 = 1;
+}
+#endif
+
 EXPORT SpeexResamplerState *
 speex_resampler_init_frac (spx_uint32_t nb_channels, spx_uint32_t ratio_num,
     spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate,
@@ -916,6 +978,23 @@ speex_resampler_init_frac (spx_uint32_t nb_channels, spx_uint32_t ratio_num,
   st->buffer_size = 160;
 #endif
 
+  st->use_sse = st->use_sse2 = 0;
+#if defined HAVE_ORC && !defined DISABLE_ORC
+  orc_init ();
+  {
+    OrcTarget *target = orc_target_get_default ();
+    if (target) {
+      unsigned int flags = orc_target_get_default_flags (target);
+      check_insn_set (st, orc_target_get_name (target));
+      for (i = 0; i < 32; ++i) {
+        if (flags & (1 << i)) {
+          check_insn_set (st, orc_target_get_flag_name (target, i));
+        }
+      }
+    }
+  }
+#endif
+
   /* Per channel data */
   st->last_sample = (spx_int32_t *) speex_alloc (nb_channels * sizeof (int));
   st->magic_samples = (spx_uint32_t *) speex_alloc (nb_channels * sizeof (int));
index 64be8a1..36522a3 100644 (file)
@@ -34,7 +34,9 @@
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+#ifdef HAVE_XMMINTRIN_H
 #include <xmmintrin.h>
+#endif
 
 #define OVERRIDE_INNER_PRODUCT_SINGLE
 static inline float inner_product_single(const float *a, const float *b, unsigned int len)
@@ -72,9 +74,27 @@ static inline float interpolate_product_single(const float *a, const float *b, u
 }
 
 #ifdef _USE_SSE2
+#ifdef HAVE_EMMINTRIN_H
 #include <emmintrin.h>
+#endif
 #define OVERRIDE_INNER_PRODUCT_DOUBLE
 
+#ifdef DOUBLE_PRECISION
+static inline double inner_product_double(const double *a, const double *b, unsigned int len)
+{
+   int i;
+   double ret;
+   __m128d sum = _mm_setzero_pd();
+   for (i=0;i<len;i+=4)
+   {
+      sum = _mm_add_pd(sum, _mm_mul_pd(_mm_loadu_pd(a+i), _mm_loadu_pd(b+i)));
+      sum = _mm_add_pd(sum, _mm_mul_pd(_mm_loadu_pd(a+i+2), _mm_loadu_pd(b+i+2)));
+   }
+   sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
+   _mm_store_sd(&ret, sum);
+   return ret;
+}
+#else
 static inline double inner_product_double(const float *a, const float *b, unsigned int len)
 {
    int i;
@@ -95,8 +115,39 @@ static inline double inner_product_double(const float *a, const float *b, unsign
    _mm_store_sd(&ret, sum);
    return ret;
 }
+#endif
+
 
 #define OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+
+#ifdef DOUBLE_PRECISION
+static inline double interpolate_product_double(const double *a, const double *b, unsigned int len, const spx_uint32_t oversample, double *frac) {
+  int i;
+  double ret;
+  __m128d sum;
+  __m128d sum1 = _mm_setzero_pd();
+  __m128d sum2 = _mm_setzero_pd();
+  __m128d f1 = _mm_loadu_pd(frac);
+  __m128d f2 = _mm_loadu_pd(frac+2);
+  __m128d t;
+  for(i=0;i<len;i+=2)
+  {
+    t = _mm_mul_pd(_mm_load1_pd(a+i), _mm_loadu_pd(b+i*oversample));
+    sum1 = _mm_add_pd(sum1, t);
+    sum2 = _mm_add_pd(sum2, _mm_unpackhi_pd(t, t));
+
+    t = _mm_mul_pd(_mm_load1_pd(a+i+1), _mm_loadu_pd(b+(i+1)*oversample));
+    sum1 = _mm_add_pd(sum1, t);
+    sum2 = _mm_add_pd(sum2, _mm_unpackhi_pd(t, t));
+  }
+  sum1 = _mm_mul_pd(f1, sum1);
+  sum2 = _mm_mul_pd(f2, sum2);
+  sum = _mm_add_pd(sum1, sum2);
+  sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
+  _mm_store_sd(&ret, sum);
+  return ret;
+}
+#else
 static inline double interpolate_product_double(const float *a, const float *b, unsigned int len, const spx_uint32_t oversample, float *frac) {
   int i;
   double ret;
@@ -124,5 +175,6 @@ static inline double interpolate_product_double(const float *a, const float *b,
   _mm_store_sd(&ret, sum);
   return ret;
 }
+#endif
 
 #endif
index e5a2571..ef2503d 100644 (file)
@@ -17,6 +17,7 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#define _USE_SSE2
 #define FLOATING_POINT
 #define DOUBLE_PRECISION
 #define OUTSIDE_SPEEX
index f13f60c..ef3df15 100644 (file)
@@ -17,6 +17,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#define _USE_SSE
+#define _USE_SSE2
 #define FLOATING_POINT
 #define OUTSIDE_SPEEX
 #define RANDOM_PREFIX resample_float
index d2fc1a0..de0f757 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -111,8 +118,8 @@ libgstaudiotestsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 am_libgstaudiotestsrc_la_OBJECTS =  \
        libgstaudiotestsrc_la-gstaudiotestsrc.lo
 libgstaudiotestsrc_la_OBJECTS = $(am_libgstaudiotestsrc_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstaudiotestsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -128,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstaudiotestsrc_la_SOURCES)
 DIST_SOURCES = $(libgstaudiotestsrc_la_SOURCES)
@@ -210,6 +217,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -270,6 +278,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -279,9 +288,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -304,6 +316,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -376,10 +389,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -413,7 +429,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -506,7 +521,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstaudiotestsrc.la: $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_DEPENDENCIES) 
+libgstaudiotestsrc.la: $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_DEPENDENCIES) $(EXTRA_libgstaudiotestsrc_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstaudiotestsrc_la_LINK) -rpath $(plugindir) $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -520,34 +535,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstaudiotestsrc_la-gstaudiotestsrc.lo: gstaudiotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstaudiotestsrc_la-gstaudiotestsrc.lo -MD -MP -MF $(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Tpo -c -o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' || echo '$(srcdir)/'`gstaudiotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Tpo $(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstaudiotestsrc.c' object='libgstaudiotestsrc_la-gstaudiotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstaudiotestsrc.c' object='libgstaudiotestsrc_la-gstaudiotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' || echo '$(srcdir)/'`gstaudiotestsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' || echo '$(srcdir)/'`gstaudiotestsrc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -654,10 +665,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index ecbb2fb..f0808c6 100644 (file)
 #include "gstaudiotestsrc.h"
 
 
-#ifndef M_PI
-#define M_PI  3.14159265358979323846
-#endif
-
-#ifndef M_PI_2
-#define M_PI_2  1.57079632679489661923
-#endif
-
-#define M_PI_M2 ( M_PI + M_PI )
+#define M_PI_M2 ( G_PI + G_PI )
 
 GST_DEBUG_CATEGORY_STATIC (audio_test_src_debug);
 #define GST_CAT_DEFAULT audio_test_src_debug
@@ -130,6 +122,9 @@ gst_audiostestsrc_wave_get_type (void)
     {GST_AUDIO_TEST_SRC_WAVE_TICKS, "Periodic Ticks", "ticks"},
     {GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE, "White Gaussian noise",
         "gaussian-noise"},
+    {GST_AUDIO_TEST_SRC_WAVE_RED_NOISE, "Red (brownian) noise", "red-noise"},
+    {GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE, "Blue noise", "blue-noise"},
+    {GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE, "Violet noise", "violet-noise"},
     {0, NULL, NULL},
   };
 
@@ -173,8 +168,8 @@ gst_audio_test_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_test_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_test_src_src_template);
   gst_element_class_set_details_simple (element_class,
       "Audio test source", "Source/Audio",
       "Creates audio test signals of given frequency and volume",
@@ -476,7 +471,7 @@ gst_audio_test_src_create_square_##type (GstAudioTestSrc * src, g##type * sample
       src->accumulator -= M_PI_M2; \
     \
     for (c = 0; c < src->channels; ++c) { \
-      samples[i++] = (g##type) ((src->accumulator < M_PI) ? amp : -amp); \
+      samples[i++] = (g##type) ((src->accumulator < G_PI) ? amp : -amp); \
     } \
   } \
 }
@@ -501,7 +496,7 @@ gst_audio_test_src_create_saw_##type (GstAudioTestSrc * src, g##type * samples)
   gdouble step, amp; \
   \
   step = M_PI_M2 * src->freq / src->samplerate; \
-  amp = (src->volume * scale) / M_PI; \
+  amp = (src->volume * scale) / G_PI; \
   \
   i = 0; \
   while (i < (src->generate_samples_per_buffer * src->channels)) { \
@@ -509,7 +504,7 @@ gst_audio_test_src_create_saw_##type (GstAudioTestSrc * src, g##type * samples)
     if (src->accumulator >= M_PI_M2) \
       src->accumulator -= M_PI_M2; \
     \
-    if (src->accumulator < M_PI) { \
+    if (src->accumulator < G_PI) { \
       for (c = 0; c < src->channels; ++c) \
         samples[i++] = (g##type) (src->accumulator * amp); \
     } else { \
@@ -539,7 +534,7 @@ gst_audio_test_src_create_triangle_##type (GstAudioTestSrc * src, g##type * samp
   gdouble step, amp; \
   \
   step = M_PI_M2 * src->freq / src->samplerate; \
-  amp = (src->volume * scale) / M_PI_2; \
+  amp = (src->volume * scale) / G_PI_2; \
   \
   i = 0; \
   while (i < (src->generate_samples_per_buffer * src->channels)) { \
@@ -547,12 +542,12 @@ gst_audio_test_src_create_triangle_##type (GstAudioTestSrc * src, g##type * samp
     if (src->accumulator >= M_PI_M2) \
       src->accumulator -= M_PI_M2; \
     \
-    if (src->accumulator < (M_PI * 0.5)) { \
+    if (src->accumulator < (G_PI_2)) { \
       for (c = 0; c < src->channels; ++c) \
         samples[i++] = (g##type) (src->accumulator * amp); \
-    } else if (src->accumulator < (M_PI * 1.5)) { \
+    } else if (src->accumulator < (G_PI * 1.5)) { \
       for (c = 0; c < src->channels; ++c) \
-        samples[i++] = (g##type) ((src->accumulator - M_PI) * -amp); \
+        samples[i++] = (g##type) ((src->accumulator - G_PI) * -amp); \
     } else { \
       for (c = 0; c < src->channels; ++c) \
         samples[i++] = (g##type) ((M_PI_M2 - src->accumulator) * -amp); \
@@ -837,6 +832,109 @@ static const ProcessFunc gaussian_white_noise_funcs[] = {
   (ProcessFunc) gst_audio_test_src_create_gaussian_white_noise_double
 };
 
+/* Brownian (Red) Noise: noise where the power density decreases by 6 dB per
+ * octave with increasing frequency
+ *
+ * taken from http://vellocet.com/dsp/noise/VRand.html
+ * by Andrew Simper of Vellocet (andy@vellocet.com)
+ */
+
+#define DEFINE_RED_NOISE(type,scale) \
+static void \
+gst_audio_test_src_create_red_noise_##type (GstAudioTestSrc * src, g##type * samples) \
+{ \
+  gint i, c; \
+  gdouble amp = (src->volume * scale); \
+  gdouble state = src->red.state; \
+  \
+  for (i = 0; i < src->generate_samples_per_buffer * src->channels; ) { \
+    for (c = 0; c < src->channels; ++c) { \
+      while (TRUE) { \
+        gdouble r = g_rand_double_range (src->gen, -1.0, 1.0); \
+        state += r; \
+        if (state < -8.0f || state > 8.0f) state -= r; \
+        else break; \
+      } \
+      samples[i++] = (g##type) (amp * state * 0.0625f); /* /16.0 */ \
+    } \
+  } \
+  src->red.state = state; \
+}
+
+DEFINE_RED_NOISE (int16, 32767.0);
+DEFINE_RED_NOISE (int32, 2147483647.0);
+DEFINE_RED_NOISE (float, 1.0);
+DEFINE_RED_NOISE (double, 1.0);
+
+static const ProcessFunc red_noise_funcs[] = {
+  (ProcessFunc) gst_audio_test_src_create_red_noise_int16,
+  (ProcessFunc) gst_audio_test_src_create_red_noise_int32,
+  (ProcessFunc) gst_audio_test_src_create_red_noise_float,
+  (ProcessFunc) gst_audio_test_src_create_red_noise_double
+};
+
+/* Blue Noise: apply spectral inversion to pink noise */
+
+#define DEFINE_BLUE_NOISE(type) \
+static void \
+gst_audio_test_src_create_blue_noise_##type (GstAudioTestSrc * src, g##type * samples) \
+{ \
+  gint i, c; \
+  static gdouble flip=1.0; \
+  \
+  gst_audio_test_src_create_pink_noise_##type (src, samples); \
+  for (i = 0; i < src->generate_samples_per_buffer * src->channels; ) { \
+    for (c = 0; c < src->channels; ++c) { \
+      samples[i++] *= flip; \
+    } \
+    flip *= -1.0; \
+  } \
+}
+
+DEFINE_BLUE_NOISE (int16);
+DEFINE_BLUE_NOISE (int32);
+DEFINE_BLUE_NOISE (float);
+DEFINE_BLUE_NOISE (double);
+
+static const ProcessFunc blue_noise_funcs[] = {
+  (ProcessFunc) gst_audio_test_src_create_blue_noise_int16,
+  (ProcessFunc) gst_audio_test_src_create_blue_noise_int32,
+  (ProcessFunc) gst_audio_test_src_create_blue_noise_float,
+  (ProcessFunc) gst_audio_test_src_create_blue_noise_double
+};
+
+
+/* Violet Noise: apply spectral inversion to red noise */
+
+#define DEFINE_VIOLET_NOISE(type) \
+static void \
+gst_audio_test_src_create_violet_noise_##type (GstAudioTestSrc * src, g##type * samples) \
+{ \
+  gint i, c; \
+  static gdouble flip=1.0; \
+  \
+  gst_audio_test_src_create_red_noise_##type (src, samples); \
+  for (i = 0; i < src->generate_samples_per_buffer * src->channels; ) { \
+    for (c = 0; c < src->channels; ++c) { \
+      samples[i++] *= flip; \
+    } \
+    flip *= -1.0; \
+  } \
+}
+
+DEFINE_VIOLET_NOISE (int16);
+DEFINE_VIOLET_NOISE (int32);
+DEFINE_VIOLET_NOISE (float);
+DEFINE_VIOLET_NOISE (double);
+
+static const ProcessFunc violet_noise_funcs[] = {
+  (ProcessFunc) gst_audio_test_src_create_violet_noise_int16,
+  (ProcessFunc) gst_audio_test_src_create_violet_noise_int32,
+  (ProcessFunc) gst_audio_test_src_create_violet_noise_float,
+  (ProcessFunc) gst_audio_test_src_create_violet_noise_double
+};
+
+
 /*
  * gst_audio_test_src_change_wave:
  * Assign function pointer of wave genrator.
@@ -889,6 +987,24 @@ gst_audio_test_src_change_wave (GstAudioTestSrc * src)
         src->gen = g_rand_new ();
       src->process = gaussian_white_noise_funcs[src->format];
       break;
+    case GST_AUDIO_TEST_SRC_WAVE_RED_NOISE:
+      if (!(src->gen))
+        src->gen = g_rand_new ();
+      src->red.state = 0.0;
+      src->process = red_noise_funcs[src->format];
+      break;
+    case GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE:
+      if (!(src->gen))
+        src->gen = g_rand_new ();
+      gst_audio_test_src_init_pink_noise (src);
+      src->process = blue_noise_funcs[src->format];
+      break;
+    case GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE:
+      if (!(src->gen))
+        src->gen = g_rand_new ();
+      src->red.state = 0.0;
+      src->process = violet_noise_funcs[src->format];
+      break;
     default:
       GST_ERROR ("invalid wave-form");
       break;
@@ -1050,6 +1166,8 @@ gst_audio_test_src_create (GstBaseSrc * basesrc, guint64 offset,
     if (eclass->send_event)
       eclass->send_event (GST_ELEMENT_CAST (basesrc),
           gst_event_new_tag (taglist));
+    else
+      gst_tag_list_free (taglist);
     src->tags_pushed = TRUE;
   }
 
index 8c76594..2b51891 100644 (file)
@@ -50,6 +50,9 @@ G_BEGIN_DECLS
  * @GST_AUDIO_TEST_SRC_WAVE_SINE_TAB: sine wave using a table
  * @GST_AUDIO_TEST_SRC_WAVE_TICKS: periodic ticks
  * @GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE: white (zero mean) Gaussian noise;  volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.
+ * @GST_AUDIO_TEST_SRC_WAVE_RED_NOISE: red (brownian) noise
+ * @GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE: spectraly inverted pink noise
+ * @GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE: spectraly inverted red (brownian) noise
  *
  * Different types of supported sound waves.
  */
@@ -63,8 +66,11 @@ typedef enum {
   GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE,
   GST_AUDIO_TEST_SRC_WAVE_SINE_TAB,
   GST_AUDIO_TEST_SRC_WAVE_TICKS,
-  GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE
-} GstAudioTestSrcWave; 
+  GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE,
+  GST_AUDIO_TEST_SRC_WAVE_RED_NOISE,
+  GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE,
+  GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE
+} GstAudioTestSrcWave;
 
 #define PINK_MAX_RANDOM_ROWS   (30)
 #define PINK_RANDOM_BITS       (16)
@@ -78,6 +84,10 @@ typedef struct {
   gdouble    scalar;        /* Used to scale within range of -1.0 to +1.0 */
 } GstPinkNoise;
 
+typedef struct {
+  gdouble    state;         /* noise state */
+} GstRedNoise;
+
 typedef enum {
   GST_AUDIO_TEST_SRC_FORMAT_NONE = -1,
   GST_AUDIO_TEST_SRC_FORMAT_S16 = 0,
@@ -105,14 +115,14 @@ struct _GstAudioTestSrc {
   GstAudioTestSrcWave wave;
   gdouble volume;
   gdouble freq;
-    
+
   /* audio parameters */
   gint channels;
   gint samplerate;
   gint samples_per_buffer;
   gint sample_size;
   GstAudioTestSrcFormat format;
-  
+
   /*< private >*/
   gboolean tags_pushed;                        /* send tags just once ? */
   GstClockTimeDiff timestamp_offset;    /* base offset */
@@ -125,11 +135,12 @@ struct _GstAudioTestSrc {
   gint generate_samples_per_buffer;    /* used to generate a partial buffer */
   gboolean can_activate_pull;
   gboolean reverse;                  /* play backwards */
-  
+
   /* waveform specific context data */
   GRand *gen;               /* random number generator */
   gdouble accumulator;                 /* phase angle */
   GstPinkNoise pink;
+  GstRedNoise red;
   gdouble wave_table[1024];
 };
 
index 4573f76..23269c7 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -65,6 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -110,6 +111,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -123,8 +130,8 @@ am__objects_1 = libgstencodebin_la-gstencode-marshal.lo
 nodist_libgstencodebin_la_OBJECTS = $(am__objects_1)
 libgstencodebin_la_OBJECTS = $(am_libgstencodebin_la_OBJECTS) \
        $(nodist_libgstencodebin_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstencodebin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -140,21 +147,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstencodebin_la_SOURCES) \
        $(nodist_libgstencodebin_la_SOURCES)
@@ -223,6 +230,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -283,6 +291,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -292,9 +301,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -317,6 +329,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -389,10 +402,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -426,7 +442,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -505,6 +520,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -545,7 +561,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstencodebin.la: $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_DEPENDENCIES) 
+libgstencodebin.la: $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_DEPENDENCIES) $(EXTRA_libgstencodebin_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstencodebin_la_LINK) -rpath $(plugindir) $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -563,66 +579,58 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstencodebin_la-gstencodebin.lo: gstencodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gstencodebin.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gstencodebin.Tpo -c -o libgstencodebin_la-gstencodebin.lo `test -f 'gstencodebin.c' || echo '$(srcdir)/'`gstencodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gstencodebin.Tpo $(DEPDIR)/libgstencodebin_la-gstencodebin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstencodebin.c' object='libgstencodebin_la-gstencodebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstencodebin.c' object='libgstencodebin_la-gstencodebin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencodebin.lo `test -f 'gstencodebin.c' || echo '$(srcdir)/'`gstencodebin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencodebin.lo `test -f 'gstencodebin.c' || echo '$(srcdir)/'`gstencodebin.c
 
 libgstencodebin_la-gstsmartencoder.lo: gstsmartencoder.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gstsmartencoder.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gstsmartencoder.Tpo -c -o libgstencodebin_la-gstsmartencoder.lo `test -f 'gstsmartencoder.c' || echo '$(srcdir)/'`gstsmartencoder.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gstsmartencoder.Tpo $(DEPDIR)/libgstencodebin_la-gstsmartencoder.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstsmartencoder.c' object='libgstencodebin_la-gstsmartencoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstsmartencoder.c' object='libgstencodebin_la-gstsmartencoder.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstsmartencoder.lo `test -f 'gstsmartencoder.c' || echo '$(srcdir)/'`gstsmartencoder.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstsmartencoder.lo `test -f 'gstsmartencoder.c' || echo '$(srcdir)/'`gstsmartencoder.c
 
 libgstencodebin_la-gststreamcombiner.lo: gststreamcombiner.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gststreamcombiner.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gststreamcombiner.Tpo -c -o libgstencodebin_la-gststreamcombiner.lo `test -f 'gststreamcombiner.c' || echo '$(srcdir)/'`gststreamcombiner.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gststreamcombiner.Tpo $(DEPDIR)/libgstencodebin_la-gststreamcombiner.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gststreamcombiner.c' object='libgstencodebin_la-gststreamcombiner.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gststreamcombiner.c' object='libgstencodebin_la-gststreamcombiner.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamcombiner.lo `test -f 'gststreamcombiner.c' || echo '$(srcdir)/'`gststreamcombiner.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamcombiner.lo `test -f 'gststreamcombiner.c' || echo '$(srcdir)/'`gststreamcombiner.c
 
 libgstencodebin_la-gststreamsplitter.lo: gststreamsplitter.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gststreamsplitter.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gststreamsplitter.Tpo -c -o libgstencodebin_la-gststreamsplitter.lo `test -f 'gststreamsplitter.c' || echo '$(srcdir)/'`gststreamsplitter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gststreamsplitter.Tpo $(DEPDIR)/libgstencodebin_la-gststreamsplitter.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gststreamsplitter.c' object='libgstencodebin_la-gststreamsplitter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gststreamsplitter.c' object='libgstencodebin_la-gststreamsplitter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamsplitter.lo `test -f 'gststreamsplitter.c' || echo '$(srcdir)/'`gststreamsplitter.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamsplitter.lo `test -f 'gststreamsplitter.c' || echo '$(srcdir)/'`gststreamsplitter.c
 
 libgstencodebin_la-gstencode-marshal.lo: gstencode-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gstencode-marshal.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gstencode-marshal.Tpo -c -o libgstencodebin_la-gstencode-marshal.lo `test -f 'gstencode-marshal.c' || echo '$(srcdir)/'`gstencode-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gstencode-marshal.Tpo $(DEPDIR)/libgstencodebin_la-gstencode-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstencode-marshal.c' object='libgstencodebin_la-gstencode-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstencode-marshal.c' object='libgstencodebin_la-gstencode-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencode-marshal.lo `test -f 'gstencode-marshal.c' || echo '$(srcdir)/'`gstencode-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencode-marshal.lo `test -f 'gstencode-marshal.c' || echo '$(srcdir)/'`gstencode-marshal.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -731,10 +739,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 4aeb09b..17610cb 100644 (file)
  * Handling mp3!xing!idv3 and theora!ogg tagsetting scenarios:
  *  Once we have chosen a muxer:
  *   When a new stream is requested:
- *    If muxer is 'Formatter' OR doesn't have a TagSetter interface:
+ *    If muxer isn't 'Formatter' OR doesn't have a TagSetter interface:
  *      Find a Formatter for the given stream (preferably with TagSetter)
  *       Insert that before muxer
  **/
 #define fast_pad_link(a,b) gst_pad_link_full((a),(b),GST_PAD_LINK_CHECK_NOTHING)
 #define fast_element_link(a,b) gst_element_link_pads_full((a),"src",(b),"sink",GST_PAD_LINK_CHECK_NOTHING)
 
+typedef enum
+{
+  GST_ENC_FLAG_NO_AUDIO_CONVERSION = (1 << 0),
+  GST_ENC_FLAG_NO_VIDEO_CONVERSION = (1 << 1)
+} GstEncFlags;
+
+#define GST_TYPE_ENC_FLAGS (gst_enc_flags_get_type())
+GType gst_enc_flags_get_type (void);
+
 /* generic templates */
 static GstStaticPadTemplate muxer_src_template =
 GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
@@ -162,6 +171,7 @@ struct _GstEncodeBin
 
   /* available muxers, encoders and parsers */
   GList *muxers;
+  GList *formatters;
   GList *encoders;
   GList *parsers;
 
@@ -179,6 +189,8 @@ struct _GstEncodeBin
 
   guint64 tolerance;
   gboolean avoid_reencoding;
+
+  GstEncFlags flags;
 };
 
 struct _GstEncodeBinClass
@@ -205,6 +217,7 @@ struct _StreamGroup
   GstElement *parser;
   GstElement *smartencoder;
   GstElement *outfilter;        /* Output capsfilter (streamprofile.format) */
+  GstElement *formatter;
   GstElement *outqueue;         /* Queue just before the muxer */
 };
 
@@ -214,6 +227,7 @@ struct _StreamGroup
 #define DEFAULT_QUEUE_TIME_MAX     GST_SECOND
 #define DEFAULT_AUDIO_JITTER_TOLERANCE 20 * GST_MSECOND
 #define DEFAULT_AVOID_REENCODING   FALSE
+#define DEFAULT_FLAGS              0
 
 #define DEFAULT_RAW_CAPS                       \
   "video/x-raw-yuv; "                          \
@@ -236,6 +250,7 @@ enum
   PROP_QUEUE_TIME_MAX,
   PROP_AUDIO_JITTER_TOLERANCE,
   PROP_AVOID_REENCODING,
+  PROP_FLAGS,
   PROP_LAST
 };
 
@@ -246,6 +261,31 @@ enum
   LAST_SIGNAL
 };
 
+#define C_FLAGS(v) ((guint) v)
+
+GType
+gst_enc_flags_get_type (void)
+{
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_ENC_FLAG_NO_AUDIO_CONVERSION), "Do not use audio conversion "
+          "elements", "no-audio-conversion"},
+    {C_FLAGS (GST_ENC_FLAG_NO_VIDEO_CONVERSION), "Do not use video conversion "
+          "elements", "no-video-conversion"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_flags_register_static ("GstEncFlags", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
 static guint gst_encode_bin_signals[LAST_SIGNAL] = { 0 };
 
 static GstStaticCaps default_raw_caps = GST_STATIC_CAPS (DEFAULT_RAW_CAPS);
@@ -279,6 +319,9 @@ static void stream_group_remove (GstEncodeBin * ebin, StreamGroup * sgroup);
 static GstPad *gst_encode_bin_request_pad_signal (GstEncodeBin * encodebin,
     GstCaps * caps);
 
+static inline GstElement *_get_formatter (GstEncodeBin * ebin,
+    GstEncodingProfile * sprof);
+
 static void
 gst_encode_bin_class_init (GstEncodeBinClass * klass)
 {
@@ -305,13 +348,13 @@ gst_encode_bin_class_init (GstEncodeBinClass * klass)
           "The GstEncodingProfile to use", GST_TYPE_ENCODING_PROFILE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  g_object_class_install_property (gobject_klass, PROP_QUEUE_BUFFERS_MAX,
+  g_object_class_install_property (gobject_klass, PROP_QUEUE_BYTES_MAX,
       g_param_spec_uint ("queue-bytes-max", "Max. size (kB)",
           "Max. amount of data in the queue (bytes, 0=disable)",
           0, G_MAXUINT, DEFAULT_QUEUE_BYTES_MAX,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  g_object_class_install_property (gobject_klass, PROP_QUEUE_BYTES_MAX,
+  g_object_class_install_property (gobject_klass, PROP_QUEUE_BUFFERS_MAX,
       g_param_spec_uint ("queue-buffers-max", "Max. size (buffers)",
           "Max. number of buffers in the queue (0=disable)", 0, G_MAXUINT,
           DEFAULT_QUEUE_BUFFERS_MAX,
@@ -334,6 +377,16 @@ gst_encode_bin_class_init (GstEncodeBinClass * klass)
           DEFAULT_AVOID_REENCODING,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstEncodeBin:flags
+   *
+   * Control the behaviour of encodebin.
+   */
+  g_object_class_install_property (gobject_klass, PROP_FLAGS,
+      g_param_spec_flags ("flags", "Flags", "Flags to control behaviour",
+          GST_TYPE_ENC_FLAGS, DEFAULT_FLAGS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /* Signals */
   /**
    * GstEncodeBin::request-pad
@@ -355,16 +408,16 @@ gst_encode_bin_class_init (GstEncodeBinClass * klass)
 
   klass->request_pad = gst_encode_bin_request_pad_signal;
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&muxer_src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&video_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&audio_sink_template));
-  /* gst_element_class_add_pad_template (gstelement_klass, */
-  /*     gst_static_pad_template_get (&text_sink_template)); */
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&private_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &muxer_src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &video_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &audio_sink_template);
+  /* gst_element_class_add_static_pad_template (gstelement_klass, */
+  /*     &text_sink_template); */
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &private_sink_template);
 
   gstelement_klass->change_state =
       GST_DEBUG_FUNCPTR (gst_encode_bin_change_state);
@@ -388,6 +441,9 @@ gst_encode_bin_dispose (GObject * object)
   if (ebin->muxers)
     gst_plugin_feature_list_free (ebin->muxers);
 
+  if (ebin->formatters)
+    gst_plugin_feature_list_free (ebin->formatters);
+
   if (ebin->encoders)
     gst_plugin_feature_list_free (ebin->encoders);
 
@@ -410,15 +466,14 @@ static void
 gst_encode_bin_init (GstEncodeBin * encode_bin)
 {
   GstPadTemplate *tmpl;
-  GList *formatters;
 
   encode_bin->muxers =
       gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_MUXER,
       GST_RANK_MARGINAL);
-  formatters =
+
+  encode_bin->formatters =
       gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_FORMATTER,
       GST_RANK_SECONDARY);
-  encode_bin->muxers = g_list_concat (encode_bin->muxers, formatters);
 
   encode_bin->encoders =
       gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_ENCODER,
@@ -440,6 +495,7 @@ gst_encode_bin_init (GstEncodeBin * encode_bin)
   encode_bin->queue_time_max = DEFAULT_QUEUE_TIME_MAX;
   encode_bin->tolerance = DEFAULT_AUDIO_JITTER_TOLERANCE;
   encode_bin->avoid_reencoding = DEFAULT_AVOID_REENCODING;
+  encode_bin->flags = DEFAULT_FLAGS;
 
   tmpl = gst_static_pad_template_get (&muxer_src_template);
   encode_bin->srcpad = gst_ghost_pad_new_no_target_from_template ("src", tmpl);
@@ -473,6 +529,9 @@ gst_encode_bin_set_property (GObject * object, guint prop_id,
     case PROP_AVOID_REENCODING:
       ebin->avoid_reencoding = g_value_get_boolean (value);
       break;
+    case PROP_FLAGS:
+      ebin->flags = g_value_get_flags (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -504,6 +563,9 @@ gst_encode_bin_get_property (GObject * object, guint prop_id,
     case PROP_AVOID_REENCODING:
       g_value_set_boolean (value, ebin->avoid_reencoding);
       break;
+    case PROP_FLAGS:
+      g_value_set_flags (value, ebin->flags);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -910,6 +972,16 @@ no_template:
   }
 }
 
+static gboolean
+_has_class (GstElement * element, const gchar * classname)
+{
+  GstElementClass *klass;
+
+  klass = GST_ELEMENT_GET_CLASS (element);
+
+  return strstr (klass->details.klass, classname) != NULL;
+}
+
 /* FIXME : Add handling of streams that don't need encoding  */
 /* FIXME : Add handling of streams that don't require conversion elements */
 /*
@@ -928,6 +1000,7 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
   GList *tmp, *tosync = NULL;
   const GstCaps *format;
   const GstCaps *restriction;
+  const gchar *missing_element_name;
 
   format = gst_encoding_profile_get_format (sprof);
   restriction = gst_encoding_profile_get_restriction (sprof);
@@ -965,14 +1038,16 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
     muxerpad = get_compatible_muxer_sink_pad (ebin, NULL, format);
     if (G_UNLIKELY (muxerpad == NULL))
       goto no_muxer_pad;
+
   }
 
   /* Output Queue.
    * We only use a 1buffer long queue here, the actual queueing will be done
-   * in the intput queue */
+   * in the input queue */
   last = sgroup->outqueue = gst_element_factory_make ("queue", NULL);
   g_object_set (sgroup->outqueue, "max-size-buffers", (guint32) 1,
-      "max-size-bytes", (guint32) 0, "max-size-time", (guint64) 0, NULL);
+      "max-size-bytes", (guint32) 0, "max-size-time", (guint64) 0,
+      "silent", TRUE, NULL);
 
   gst_bin_add (GST_BIN (ebin), sgroup->outqueue);
   tosync = g_list_append (tosync, sgroup->outqueue);
@@ -987,6 +1062,26 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
   }
   gst_object_unref (srcpad);
 
+  /* Check if we need a formatter
+   * If we have no muxer or
+   * if the muxer isn't a formatter and doesn't implement the tagsetter interface
+   */
+  if (!ebin->muxer
+      || (!gst_element_implements_interface (ebin->muxer, GST_TYPE_TAG_SETTER)
+          && !_has_class (ebin->muxer, "Formatter"))) {
+    sgroup->formatter = _get_formatter (ebin, sprof);
+    if (sgroup->formatter) {
+      GST_DEBUG ("Adding formatter for %" GST_PTR_FORMAT, format);
+
+      gst_bin_add (GST_BIN (ebin), sgroup->formatter);
+      tosync = g_list_append (tosync, sgroup->formatter);
+      if (G_UNLIKELY (!fast_element_link (sgroup->formatter, last)))
+        goto formatter_link_failure;
+      last = sgroup->formatter;
+    }
+  }
+
+
   /* Output capsfilter
    * This will receive the format caps from the streamprofile */
   GST_DEBUG ("Adding output capsfilter for %" GST_PTR_FORMAT, format);
@@ -1000,45 +1095,6 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
   last = sgroup->outfilter;
 
 
-  /* FIXME :
-   *
-   *   The usage of parsers in encoding/muxing scenarios is
-   * just too undefined to just use as-is.
-   *
-   * Take the use-case where you want to re-mux a stream of type
-   * "my/media". You create a StreamEncodingProfile with that type
-   * as the target (as-is). And you use decodebin2/uridecodebin
-   * upstream.
-   *
-   * * demuxer exposes "my/media"
-   * * a parser is available for "my/media" which has a source pad
-   *   caps of "my/media,parsed=True"
-   * * decodebin2/uridecodebin exposes a new pad with the parsed caps
-   * * You request a new stream from encodebin, which will match the
-   *   streamprofile and creates a group (i.e. going through this method)
-   *   There is a matching parser (the same used in the decoder) whose
-   *   source pad caps intersects with the stream profile caps, you
-   *   therefore use it...
-   * * ... but that parser has a "my/media,parsed=False" sink pad caps
-   * * ... and you can't link your decodebin pad to encodebin.
-   *
-   * In the end, it comes down to parsers only taking into account the
-   * decoding use-cases.
-   *
-   * One way to solve that might be to :
-   * * Make parsers sink pad caps be "framed={False,True}" and the
-   *   source pad caps be "framed=True"
-   * * Modify decodebin2 accordingly to avoid looping and chaining
-   *   an infinite number of parsers
-   *
-   * Another way would be to have "well-known" caps properties to specify
-   * whether a stream has been parsed or not.
-   * * currently we fail. aacparse uses 'framed' and mp3parse uses 'parsed'
-   */
-  /* FIXME : Re-enable once parser situation is un-$#*@(%$#ed */
-#if 0
-  /* Parser.
-   * FIXME : identify smart parsers (used for re-encoding) */
   sgroup->parser = _get_parser (ebin, sprof);
 
   if (sgroup->parser != NULL) {
@@ -1049,7 +1105,6 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
       goto parser_link_failure;
     last = sgroup->parser;
   }
-#endif
 
   /* Stream combiner */
   sgroup->combiner = g_object_new (GST_TYPE_STREAM_COMBINER, NULL);
@@ -1072,7 +1127,7 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
   g_object_set (sgroup->inqueue, "max-size-buffers",
       (guint32) ebin->queue_buffers_max, "max-size-bytes",
       (guint32) ebin->queue_bytes_max, "max-size-time",
-      (guint64) ebin->queue_time_max, NULL);
+      (guint64) ebin->queue_time_max, "silent", TRUE, NULL);
 
   gst_bin_add (GST_BIN (ebin), sgroup->inqueue);
   tosync = g_list_append (tosync, sgroup->inqueue);
@@ -1107,7 +1162,7 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
 
     /* Check if stream format is compatible */
     srcpad = gst_element_get_static_pad (sgroup->smartencoder, "src");
-    tmpcaps = gst_pad_get_caps (srcpad);
+    tmpcaps = gst_pad_get_caps_reffed (srcpad);
     if (!gst_caps_can_intersect (tmpcaps, format)) {
       GST_DEBUG ("We don't have a smart encoder for the stream format");
       gst_object_unref (sgroup->smartencoder);
@@ -1167,53 +1222,91 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
   /* 3.2. restriction elements */
   /* FIXME : Once we have properties for specific converters, use those */
   if (GST_IS_ENCODING_VIDEO_PROFILE (sprof)) {
-    GstElement *cspace, *scale, *vrate, *cspace2;
+    const gboolean native_video =
+        ! !(ebin->flags & GST_ENC_FLAG_NO_VIDEO_CONVERSION);
+    GstElement *cspace = NULL, *scale, *vrate, *cspace2 = NULL;
 
     GST_LOG ("Adding conversion elements for video stream");
 
-    cspace = gst_element_factory_make ("ffmpegcolorspace", NULL);
-    scale = gst_element_factory_make ("videoscale", NULL);
-    /* 4-tap scaling and black borders */
-    g_object_set (scale, "method", 2, "add-borders", TRUE, NULL);
-    cspace2 = gst_element_factory_make ("ffmpegcolorspace", NULL);
+    if (!native_video) {
+      cspace = gst_element_factory_make ("ffmpegcolorspace", NULL);
+      scale = gst_element_factory_make ("videoscale", NULL);
+      if (!scale) {
+        missing_element_name = "videoscale";
+        goto missing_element;
+      }
+      /* 4-tap scaling and black borders */
+      g_object_set (scale, "method", 2, "add-borders", TRUE, NULL);
+      cspace2 = gst_element_factory_make ("ffmpegcolorspace", NULL);
+
+      if (!cspace || !cspace2) {
+        missing_element_name = "ffmpegcolorspace";
+        goto missing_element;
+      }
 
-    gst_bin_add_many ((GstBin *) ebin, cspace, scale, cspace2, NULL);
-    tosync = g_list_append (tosync, cspace);
-    tosync = g_list_append (tosync, scale);
-    tosync = g_list_append (tosync, cspace2);
+      gst_bin_add_many ((GstBin *) ebin, cspace, scale, cspace2, NULL);
+      tosync = g_list_append (tosync, cspace);
+      tosync = g_list_append (tosync, scale);
+      tosync = g_list_append (tosync, cspace2);
 
-    sgroup->converters = g_list_prepend (sgroup->converters, cspace);
-    sgroup->converters = g_list_prepend (sgroup->converters, scale);
-    sgroup->converters = g_list_prepend (sgroup->converters, cspace2);
+      sgroup->converters = g_list_prepend (sgroup->converters, cspace);
+      sgroup->converters = g_list_prepend (sgroup->converters, scale);
+      sgroup->converters = g_list_prepend (sgroup->converters, cspace2);
 
-    if (!fast_element_link (cspace, scale) ||
-        !fast_element_link (scale, cspace2))
-      goto converter_link_failure;
+      if (!fast_element_link (cspace, scale) ||
+          !fast_element_link (scale, cspace2))
+        goto converter_link_failure;
+    }
 
     if (!gst_encoding_video_profile_get_variableframerate
         (GST_ENCODING_VIDEO_PROFILE (sprof))) {
       vrate = gst_element_factory_make ("videorate", NULL);
+      if (!vrate) {
+        missing_element_name = "videorate";
+        goto missing_element;
+      }
+
       gst_bin_add ((GstBin *) ebin, vrate);
       tosync = g_list_prepend (tosync, vrate);
       sgroup->converters = g_list_prepend (sgroup->converters, vrate);
-      if (!fast_element_link (cspace2, vrate) ||
-          !fast_element_link (vrate, last))
+
+      if ((!native_video && !fast_element_link (cspace2, vrate))
+          || !fast_element_link (vrate, last))
         goto converter_link_failure;
-    } else if (!fast_element_link (cspace2, last))
-      goto converter_link_failure;
 
-    last = cspace;
+      if (!native_video)
+        last = cspace;
+      else
+        last = vrate;
+    } else if (!native_video) {
+      if (!fast_element_link (cspace2, last))
+        goto converter_link_failure;
+      last = cspace;
+    }
 
-  } else if (GST_IS_ENCODING_AUDIO_PROFILE (sprof)) {
+  } else if (GST_IS_ENCODING_AUDIO_PROFILE (sprof)
+      && !(ebin->flags & GST_ENC_FLAG_NO_AUDIO_CONVERSION)) {
     GstElement *aconv, *ares, *arate, *aconv2;
 
     GST_LOG ("Adding conversion elements for audio stream");
 
     arate = gst_element_factory_make ("audiorate", NULL);
     g_object_set (arate, "tolerance", (guint64) ebin->tolerance, NULL);
+    if (!arate) {
+      missing_element_name = "audiorate";
+      goto missing_element;
+    }
     aconv = gst_element_factory_make ("audioconvert", NULL);
     aconv2 = gst_element_factory_make ("audioconvert", NULL);
     ares = gst_element_factory_make ("audioresample", NULL);
+    if (!aconv || !aconv2) {
+      missing_element_name = "audioconvert";
+      goto missing_element;
+    }
+    if (!ares) {
+      missing_element_name = "audioresample";
+      goto missing_element;
+    }
 
     gst_bin_add_many ((GstBin *) ebin, arate, aconv, ares, aconv2, NULL);
     tosync = g_list_append (tosync, arate);
@@ -1283,6 +1376,15 @@ no_muxer_pad:
       "Couldn't find a compatible muxer pad to link encoder to");
   goto cleanup;
 
+missing_element:
+  gst_element_post_message (GST_ELEMENT_CAST (ebin),
+      gst_missing_element_message_new (GST_ELEMENT_CAST (ebin),
+          missing_element_name));
+  GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN,
+      (_("Missing element '%s' - check your GStreamer installation."),
+          missing_element_name), (NULL));
+  goto cleanup;
+
 encoder_link_failure:
   GST_ERROR_OBJECT (ebin, "Failed to link the encoder");
   goto cleanup;
@@ -1291,10 +1393,15 @@ muxer_link_failure:
   GST_ERROR_OBJECT (ebin, "Couldn't link encoder to muxer");
   goto cleanup;
 
-outfilter_link_failure:
+formatter_link_failure:
   GST_ERROR_OBJECT (ebin, "Couldn't link output filter to output queue");
   goto cleanup;
 
+outfilter_link_failure:
+  GST_ERROR_OBJECT (ebin,
+      "Couldn't link output filter to output queue/formatter");
+  goto cleanup;
+
 passthrough_link_failure:
   GST_ERROR_OBJECT (ebin, "Failed linking splitter in passthrough mode");
   goto cleanup;
@@ -1315,11 +1422,9 @@ combiner_link_failure:
   GST_ERROR_OBJECT (ebin, "Failure linking to the combiner");
   goto cleanup;
 
-#if 0
 parser_link_failure:
   GST_ERROR_OBJECT (ebin, "Failure linking the parser");
   goto cleanup;
-#endif
 
 converter_link_failure:
   GST_ERROR_OBJECT (ebin, "Failure linking the video converters");
@@ -1332,17 +1437,59 @@ cleanup:
 }
 
 static gboolean
-_factory_can_sink_caps (GstElementFactory * factory, const GstCaps * caps)
+_gst_caps_match_foreach (GQuark field_id, const GValue * value, gpointer data)
+{
+  GstStructure *structure = data;
+  const GValue *other_value = gst_structure_id_get_value (structure, field_id);
+
+  if (G_UNLIKELY (other_value == NULL))
+    return FALSE;
+  if (gst_value_compare (value, other_value) == GST_VALUE_EQUAL) {
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+/*
+ * checks that there is at least one structure on caps_a that has
+ * all its fields exactly the same as one structure on caps_b
+ */
+static gboolean
+_gst_caps_match (const GstCaps * caps_a, const GstCaps * caps_b)
+{
+  gint i, j;
+  gboolean res = FALSE;
+
+  for (i = 0; i < gst_caps_get_size (caps_a); i++) {
+    GstStructure *structure_a = gst_caps_get_structure (caps_a, i);
+    for (j = 0; j < gst_caps_get_size (caps_b); j++) {
+      GstStructure *structure_b = gst_caps_get_structure (caps_b, j);
+
+      res = gst_structure_foreach (structure_a, _gst_caps_match_foreach,
+          structure_b);
+      if (res)
+        goto end;
+    }
+  }
+end:
+  return res;
+}
+
+static gboolean
+_factory_can_handle_caps (GstElementFactory * factory, const GstCaps * caps,
+    GstPadDirection dir, gboolean exact)
 {
   GList *templates = factory->staticpadtemplates;
 
   while (templates) {
     GstStaticPadTemplate *template = (GstStaticPadTemplate *) templates->data;
 
-    if (template->direction == GST_PAD_SINK) {
+    if (template->direction == dir) {
       GstCaps *tmp = gst_static_caps_get (&template->static_caps);
 
-      if (gst_caps_can_intersect (tmp, caps)) {
+      if ((exact && _gst_caps_match (caps, tmp)) ||
+          (!exact && gst_caps_can_intersect (tmp, caps))) {
         gst_caps_unref (tmp);
         return TRUE;
       }
@@ -1355,9 +1502,73 @@ _factory_can_sink_caps (GstElementFactory * factory, const GstCaps * caps)
 }
 
 static inline GstElement *
+_get_formatter (GstEncodeBin * ebin, GstEncodingProfile * sprof)
+{
+  GList *formatters, *tmpfmtr;
+  GstElement *formatter = NULL;
+  GstElementFactory *formatterfact = NULL;
+  const GstCaps *format;
+  const gchar *preset;
+
+  format = gst_encoding_profile_get_format (sprof);
+  preset = gst_encoding_profile_get_preset (sprof);
+
+  GST_DEBUG ("Getting list of formatters for format %" GST_PTR_FORMAT, format);
+
+  formatters =
+      gst_element_factory_list_filter (ebin->formatters, format, GST_PAD_SRC,
+      FALSE);
+
+  if (formatters == NULL)
+    goto beach;
+
+  /* FIXME : signal the user if he wants this */
+  for (tmpfmtr = formatters; tmpfmtr; tmpfmtr = tmpfmtr->next) {
+    formatterfact = (GstElementFactory *) tmpfmtr->data;
+
+    GST_DEBUG_OBJECT (ebin, "Trying formatter %s",
+        GST_PLUGIN_FEATURE_NAME (formatterfact));
+
+    if ((formatter =
+            _create_element_and_set_preset (formatterfact, preset, NULL)))
+      break;
+  }
+
+  gst_plugin_feature_list_free (formatters);
+
+beach:
+  return formatter;
+}
+
+static gint
+compare_elements (gconstpointer a, gconstpointer b, gpointer udata)
+{
+  GstCaps *caps = udata;
+  GstElementFactory *fac_a = (GstElementFactory *) a;
+  GstElementFactory *fac_b = (GstElementFactory *) b;
+
+  /* FIXME not quite sure this is the best algorithm to order the elements
+   * Some caps similarity comparison algorithm would fit better than going
+   * boolean (equals/not equals).
+   */
+  gboolean equals_a = _factory_can_handle_caps (fac_a, caps, GST_PAD_SRC, TRUE);
+  gboolean equals_b = _factory_can_handle_caps (fac_b, caps, GST_PAD_SRC, TRUE);
+
+  if (equals_a == equals_b) {
+    return gst_plugin_feature_get_rank ((GstPluginFeature *) fac_b) -
+        gst_plugin_feature_get_rank ((GstPluginFeature *) fac_a);
+  } else if (equals_a) {
+    return -1;
+  } else if (equals_b) {
+    return 1;
+  }
+  return 0;
+}
+
+static inline GstElement *
 _get_muxer (GstEncodeBin * ebin)
 {
-  GList *muxers, *tmpmux;
+  GList *muxers, *formatters, *tmpmux;
   GstElement *muxer = NULL;
   GstElementFactory *muxerfact = NULL;
   const GList *tmp;
@@ -1372,6 +1583,16 @@ _get_muxer (GstEncodeBin * ebin)
   muxers =
       gst_element_factory_list_filter (ebin->muxers, format, GST_PAD_SRC, TRUE);
 
+  formatters =
+      gst_element_factory_list_filter (ebin->formatters, format, GST_PAD_SRC,
+      TRUE);
+
+  muxers = g_list_sort_with_data (muxers, compare_elements, (gpointer) format);
+  formatters =
+      g_list_sort_with_data (formatters, compare_elements, (gpointer) format);
+
+  muxers = g_list_concat (muxers, formatters);
+
   if (muxers == NULL)
     goto beach;
 
@@ -1390,10 +1611,10 @@ _get_muxer (GstEncodeBin * ebin)
     for (tmp = profiles; tmp; tmp = tmp->next) {
       GstEncodingProfile *sprof = (GstEncodingProfile *) tmp->data;
 
-      if (!_factory_can_sink_caps (muxerfact,
-              gst_encoding_profile_get_format (sprof))) {
-        GST_DEBUG ("Skipping muxer because it can't sink caps %" GST_PTR_FORMAT,
-            gst_encoding_profile_get_format (sprof));
+      if (!_factory_can_handle_caps (muxerfact,
+              gst_encoding_profile_get_format (sprof), GST_PAD_SINK, FALSE)) {
+        GST_DEBUG ("Skipping muxer because it can't sink caps %"
+            GST_PTR_FORMAT, gst_encoding_profile_get_format (sprof));
         cansinkstreams = FALSE;
         break;
       }
@@ -1556,9 +1777,17 @@ stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
   if (sgroup->outqueue)
     gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
 
-  /* Capsfilter - outqueue */
-  gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
-  gst_element_unlink (sgroup->outfilter, sgroup->outqueue);
+  if (sgroup->formatter) {
+    /* capsfilter - formatter - outqueue */
+    gst_element_set_state (sgroup->formatter, GST_STATE_NULL);
+    gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
+    gst_element_unlink (sgroup->formatter, sgroup->outqueue);
+    gst_element_unlink (sgroup->outfilter, sgroup->formatter);
+  } else {
+    /* Capsfilter - outqueue */
+    gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
+    gst_element_unlink (sgroup->outfilter, sgroup->outqueue);
+  }
   gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
   gst_bin_remove (GST_BIN (ebin), sgroup->outqueue);
 
index ed0e42b..6d2e778 100644 (file)
@@ -96,10 +96,9 @@ gst_smart_encoder_class_init (GstSmartEncoderClass * klass)
 
   gst_smart_encoder_parent_class = g_type_class_peek_parent (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template);
 
   gst_element_class_set_details_simple (element_class, "Smart Video Encoder",
       "Codec/Recoder/Video",
@@ -645,9 +644,10 @@ gst_smart_encoder_find_elements (GstSmartEncoder * smart_encoder)
 
   gst_caps_unref (tmpl);
 
-  if (gst_caps_is_empty (res))
+  if (gst_caps_is_empty (res)) {
+    gst_caps_unref (res);
     ret = GST_STATE_CHANGE_FAILURE;
-  else
+  else
     smart_encoder->available_caps = res;
 
   GST_DEBUG_OBJECT (smart_encoder, "Done, available_caps:%" GST_PTR_FORMAT,
index 72d40fe..c601cf8 100644 (file)
@@ -23,6 +23,7 @@
 #endif
 
 #include "gststreamcombiner.h"
+#include "gst/glib-compat-private.h"
 
 static GstStaticPadTemplate src_template =
 GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
@@ -62,10 +63,8 @@ gst_stream_combiner_class_init (GstStreamCombinerClass * klass)
   GST_DEBUG_CATEGORY_INIT (gst_stream_combiner_debug, "streamcombiner", 0,
       "Stream Combiner");
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass, &sink_template);
 
   gstelement_klass->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_stream_combiner_request_new_pad);
index c473386..8c568a9 100644 (file)
@@ -23,6 +23,7 @@
 #endif
 
 #include "gststreamsplitter.h"
+#include "gst/glib-compat-private.h"
 
 static GstStaticPadTemplate src_template =
 GST_STATIC_PAD_TEMPLATE ("src_%d", GST_PAD_SRC, GST_PAD_REQUEST,
@@ -62,10 +63,8 @@ gst_stream_splitter_class_init (GstStreamSplitterClass * klass)
   GST_DEBUG_CATEGORY_INIT (gst_stream_splitter_debug, "streamsplitter", 0,
       "Stream Splitter");
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass, &sink_template);
 
   gstelement_klass->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_stream_splitter_request_new_pad);
@@ -268,10 +267,13 @@ resync:
     GstPad *srcpad = (GstPad *) tmp->data;
 
     STREAMS_UNLOCK (stream_splitter);
-    if (res)
-      gst_caps_merge (res, gst_pad_peer_get_caps_reffed (srcpad));
-    else
+    if (res) {
+      GstCaps *peercaps = gst_pad_peer_get_caps_reffed (srcpad);
+      if (peercaps)
+        gst_caps_merge (res, gst_caps_make_writable (peercaps));
+    } else {
       res = gst_pad_peer_get_caps (srcpad);
+    }
     STREAMS_LOCK (stream_splitter);
 
     if (G_UNLIKELY (cookie != stream_splitter->cookie)) {
@@ -328,7 +330,7 @@ resync:
 
     if (res) {
       /* FIXME : we need to switch properly */
-      GST_DEBUG_OBJECT (srcpad, "Setting caps on this pad was succesfull");
+      GST_DEBUG_OBJECT (srcpad, "Setting caps on this pad was successful");
       stream_splitter->current = srcpad;
       goto beach;
     }
index b75bcbe..02c25ad 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -116,8 +123,8 @@ am_libgstffmpegcolorspace_la_OBJECTS =  \
        libgstffmpegcolorspace_la-imgconvert.lo
 libgstffmpegcolorspace_la_OBJECTS =  \
        $(am_libgstffmpegcolorspace_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstffmpegcolorspace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -134,21 +141,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstffmpegcolorspace_la_SOURCES)
 DIST_SOURCES = $(libgstffmpegcolorspace_la_SOURCES)
@@ -216,6 +223,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -276,6 +284,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -285,9 +294,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -310,6 +322,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -382,10 +395,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -419,7 +435,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -528,7 +543,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstffmpegcolorspace.la: $(libgstffmpegcolorspace_la_OBJECTS) $(libgstffmpegcolorspace_la_DEPENDENCIES) 
+libgstffmpegcolorspace.la: $(libgstffmpegcolorspace_la_OBJECTS) $(libgstffmpegcolorspace_la_DEPENDENCIES) $(EXTRA_libgstffmpegcolorspace_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstffmpegcolorspace_la_LINK) -rpath $(plugindir) $(libgstffmpegcolorspace_la_OBJECTS) $(libgstffmpegcolorspace_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -547,74 +562,65 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstffmpegcolorspace_la-gstffmpegcolorspace.lo: gstffmpegcolorspace.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-gstffmpegcolorspace.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcolorspace.Tpo -c -o libgstffmpegcolorspace_la-gstffmpegcolorspace.lo `test -f 'gstffmpegcolorspace.c' || echo '$(srcdir)/'`gstffmpegcolorspace.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcolorspace.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcolorspace.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstffmpegcolorspace.c' object='libgstffmpegcolorspace_la-gstffmpegcolorspace.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstffmpegcolorspace.c' object='libgstffmpegcolorspace_la-gstffmpegcolorspace.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcolorspace.lo `test -f 'gstffmpegcolorspace.c' || echo '$(srcdir)/'`gstffmpegcolorspace.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcolorspace.lo `test -f 'gstffmpegcolorspace.c' || echo '$(srcdir)/'`gstffmpegcolorspace.c
 
 libgstffmpegcolorspace_la-gstffmpegcodecmap.lo: gstffmpegcodecmap.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-gstffmpegcodecmap.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcodecmap.Tpo -c -o libgstffmpegcolorspace_la-gstffmpegcodecmap.lo `test -f 'gstffmpegcodecmap.c' || echo '$(srcdir)/'`gstffmpegcodecmap.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcodecmap.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcodecmap.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstffmpegcodecmap.c' object='libgstffmpegcolorspace_la-gstffmpegcodecmap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstffmpegcodecmap.c' object='libgstffmpegcolorspace_la-gstffmpegcodecmap.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcodecmap.lo `test -f 'gstffmpegcodecmap.c' || echo '$(srcdir)/'`gstffmpegcodecmap.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcodecmap.lo `test -f 'gstffmpegcodecmap.c' || echo '$(srcdir)/'`gstffmpegcodecmap.c
 
 libgstffmpegcolorspace_la-dsputil.lo: dsputil.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-dsputil.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-dsputil.Tpo -c -o libgstffmpegcolorspace_la-dsputil.lo `test -f 'dsputil.c' || echo '$(srcdir)/'`dsputil.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-dsputil.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-dsputil.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='dsputil.c' object='libgstffmpegcolorspace_la-dsputil.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dsputil.c' object='libgstffmpegcolorspace_la-dsputil.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-dsputil.lo `test -f 'dsputil.c' || echo '$(srcdir)/'`dsputil.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-dsputil.lo `test -f 'dsputil.c' || echo '$(srcdir)/'`dsputil.c
 
 libgstffmpegcolorspace_la-mem.lo: mem.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-mem.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-mem.Tpo -c -o libgstffmpegcolorspace_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-mem.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-mem.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mem.c' object='libgstffmpegcolorspace_la-mem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mem.c' object='libgstffmpegcolorspace_la-mem.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c
 
 libgstffmpegcolorspace_la-utils.lo: utils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-utils.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-utils.Tpo -c -o libgstffmpegcolorspace_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-utils.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-utils.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='utils.c' object='libgstffmpegcolorspace_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='utils.c' object='libgstffmpegcolorspace_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
 
 libgstffmpegcolorspace_la-imgconvert.lo: imgconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-imgconvert.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-imgconvert.Tpo -c -o libgstffmpegcolorspace_la-imgconvert.lo `test -f 'imgconvert.c' || echo '$(srcdir)/'`imgconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-imgconvert.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-imgconvert.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='imgconvert.c' object='libgstffmpegcolorspace_la-imgconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='imgconvert.c' object='libgstffmpegcolorspace_la-imgconvert.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-imgconvert.lo `test -f 'imgconvert.c' || echo '$(srcdir)/'`imgconvert.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-imgconvert.lo `test -f 'imgconvert.c' || echo '$(srcdir)/'`imgconvert.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -721,10 +727,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 57f551c..6067aed 100644 (file)
@@ -139,8 +139,8 @@ typedef struct AVCodecContext {
     /* video only */
     /**
      * frames per sec multiplied by frame_rate_base.
-     * for variable fps this is the precission, so if the timestamps 
-     * can be specified in msec precssion then this is 1000*frame_rate_base
+     * for variable fps this is the precision, so if the timestamps 
+     * can be specified in msec precision then this is 1000*frame_rate_base
      * - encoding: MUST be set by user
      * - decoding: set by lavc. 0 or the frame_rate if available
      */
index 98604bf..a161a65 100644 (file)
@@ -151,7 +151,7 @@ gst_ff_aud_caps_new (AVCodecContext * context, const char *mimetype,
 }
 
 /* Convert a FFMPEG Pixel Format and optional AVCodecContext
- * to a GstCaps. If the context is ommitted, no fixed values
+ * to a GstCaps. If the context is omitted, no fixed values
  * for video/audio size will be included in the GstCaps
  *
  * See below for usefulness
@@ -453,7 +453,7 @@ gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context)
 }
 
 /* Convert a FFMPEG Sample Format and optional AVCodecContext
- * to a GstCaps. If the context is ommitted, no fixed values
+ * to a GstCaps. If the context is omitted, no fixed values
  * for video/audio size will be included in the GstCaps
  *
  * See below for usefulness
@@ -496,7 +496,7 @@ gst_ffmpeg_smpfmt_to_caps (enum SampleFormat sample_fmt,
 }
 
 /* Convert a FFMPEG codec Type and optional AVCodecContext
- * to a GstCaps. If the context is ommitted, no fixed values
+ * to a GstCaps. If the context is omitted, no fixed values
  * for video/audio size will be included in the GstCaps
  *
  * CodecType is primarily meant for uncompressed data GstCaps!
@@ -790,7 +790,7 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
 }
 
 /* Convert a GstCaps and a FFMPEG codec Type to a
- * AVCodecContext. If the context is ommitted, no fixed values
+ * AVCodecContext. If the context is omitted, no fixed values
  * for video/audio size will be included in the context
  *
  * CodecType is primarily meant for uncompressed data GstCaps!
index 1686e70..7b1c18f 100644 (file)
@@ -341,10 +341,10 @@ gst_ffmpegcsp_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_ffmpegcsp_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_ffmpegcsp_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_ffmpegcsp_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_ffmpegcsp_sink_template);
 
   gst_element_class_set_details_simple (element_class,
       "FFMPEG Colorspace converter", "Filter/Converter/Video",
index cb145bb..c670e25 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Misc image convertion routines
+ * Misc image conversion routines
  * Copyright (c) 2001, 2002, 2003 Fabrice Bellard.
  *
  * This library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
 
 /**
  * @file imgconvert.c
- * Misc image convertion routines.
+ * Misc image conversion routines.
  */
 
 /* TODO:
@@ -3079,7 +3079,7 @@ typedef struct ConvertEntry
       const AVPicture * src, int width, int height);
 } ConvertEntry;
 
-/* Add each new convertion function in this table. In order to be able
+/* Add each new conversion function in this table. In order to be able
    to convert from any format to any format, the following constraints
    must be satisfied:
 
index 3b287e7..fbd5d45 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Templates for image convertion routines
+ * Templates for image conversion routines
  * Copyright (c) 2001, 2002, 2003 Fabrice Bellard.
  *
  * This library is free software; you can redistribute it and/or
index 5c3a8a3..fe1f008 100644 (file)
@@ -111,7 +111,7 @@ av_realloc (void *ptr, unsigned int size)
 #endif
 }
 
-/* NOTE: ptr = NULL is explicetly allowed */
+/* NOTE: ptr = NULL is explictly allowed */
 void
 av_free (void *ptr)
 {
index 650311d..973d158 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -110,8 +117,8 @@ libgstgdp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 am_libgstgdp_la_OBJECTS = libgstgdp_la-gstgdp.lo \
        libgstgdp_la-gstgdppay.lo libgstgdp_la-gstgdpdepay.lo
 libgstgdp_la_OBJECTS = $(am_libgstgdp_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstgdp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -127,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstgdp_la_SOURCES)
 DIST_SOURCES = $(libgstgdp_la_SOURCES)
@@ -209,6 +216,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -269,6 +277,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -278,9 +287,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -303,6 +315,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -375,10 +388,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -412,7 +428,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -512,7 +527,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstgdp.la: $(libgstgdp_la_OBJECTS) $(libgstgdp_la_DEPENDENCIES) 
+libgstgdp.la: $(libgstgdp_la_OBJECTS) $(libgstgdp_la_DEPENDENCIES) $(EXTRA_libgstgdp_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstgdp_la_LINK) -rpath $(plugindir) $(libgstgdp_la_OBJECTS) $(libgstgdp_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -528,50 +543,44 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstgdp_la-gstgdp.lo: gstgdp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -MT libgstgdp_la-gstgdp.lo -MD -MP -MF $(DEPDIR)/libgstgdp_la-gstgdp.Tpo -c -o libgstgdp_la-gstgdp.lo `test -f 'gstgdp.c' || echo '$(srcdir)/'`gstgdp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdp_la-gstgdp.Tpo $(DEPDIR)/libgstgdp_la-gstgdp.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgdp.c' object='libgstgdp_la-gstgdp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgdp.c' object='libgstgdp_la-gstgdp.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdp.lo `test -f 'gstgdp.c' || echo '$(srcdir)/'`gstgdp.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdp.lo `test -f 'gstgdp.c' || echo '$(srcdir)/'`gstgdp.c
 
 libgstgdp_la-gstgdppay.lo: gstgdppay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -MT libgstgdp_la-gstgdppay.lo -MD -MP -MF $(DEPDIR)/libgstgdp_la-gstgdppay.Tpo -c -o libgstgdp_la-gstgdppay.lo `test -f 'gstgdppay.c' || echo '$(srcdir)/'`gstgdppay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdp_la-gstgdppay.Tpo $(DEPDIR)/libgstgdp_la-gstgdppay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgdppay.c' object='libgstgdp_la-gstgdppay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgdppay.c' object='libgstgdp_la-gstgdppay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdppay.lo `test -f 'gstgdppay.c' || echo '$(srcdir)/'`gstgdppay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdppay.lo `test -f 'gstgdppay.c' || echo '$(srcdir)/'`gstgdppay.c
 
 libgstgdp_la-gstgdpdepay.lo: gstgdpdepay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -MT libgstgdp_la-gstgdpdepay.lo -MD -MP -MF $(DEPDIR)/libgstgdp_la-gstgdpdepay.Tpo -c -o libgstgdp_la-gstgdpdepay.lo `test -f 'gstgdpdepay.c' || echo '$(srcdir)/'`gstgdpdepay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdp_la-gstgdpdepay.Tpo $(DEPDIR)/libgstgdp_la-gstgdpdepay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstgdpdepay.c' object='libgstgdp_la-gstgdpdepay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstgdpdepay.c' object='libgstgdp_la-gstgdpdepay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdpdepay.lo `test -f 'gstgdpdepay.c' || echo '$(srcdir)/'`gstgdpdepay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdpdepay.lo `test -f 'gstgdpdepay.c' || echo '$(srcdir)/'`gstgdpdepay.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -678,10 +687,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 702e63f..88a24a8 100644 (file)
@@ -89,10 +89,10 @@ gst_gdp_depay_base_init (gpointer g_class)
       "Depayloads GStreamer Data Protocol buffers",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gdp_depay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gdp_depay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gdp_depay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gdp_depay_src_template);
 }
 
 static void
index 6da4967..209a0c7 100644 (file)
@@ -102,10 +102,10 @@ gst_gdp_pay_base_init (gpointer g_class)
       "Payloads GStreamer Data Protocol buffers",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gdp_pay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gdp_pay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gdp_pay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gdp_pay_src_template);
 }
 
 static void
index 3adb56d..3ee27e4 100644 (file)
@@ -8,6 +8,8 @@ built_headers = gstplay-marshal.h
 
 plugin_LTLIBRARIES = libgstplaybin.la libgstdecodebin.la libgstdecodebin2.la
 
+csp_cflags = -DCOLORSPACE=\"ffmpegcolorspace\"
+
 libgstplaybin_la_SOURCES = \
        gstplayback.c \
        gstplaybin.c \
@@ -18,10 +20,13 @@ libgstplaybin_la_SOURCES = \
        gststreaminfo.c \
        gststreamselector.c \
        gstsubtitleoverlay.c \
+       gstplaysinkvideoconvert.c \
+       gstplaysinkaudioconvert.c \
+       gstplaysinkconvertbin.c \
        gststreamsynchronizer.c
 
 nodist_libgstplaybin_la_SOURCES = $(built_sources)
-libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
 libgstplaybin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstplaybin_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
@@ -32,7 +37,7 @@ libgstplaybin_la_LIBTOOLFLAGS = --tag=disable-static
 
 libgstdecodebin_la_SOURCES = gstdecodebin.c
 nodist_libgstdecodebin_la_SOURCES = $(built_sources)
-libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
 libgstdecodebin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdecodebin_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
@@ -41,7 +46,7 @@ libgstdecodebin_la_LIBTOOLFLAGS = --tag=disable-static
 
 libgstdecodebin2_la_SOURCES = gstdecodebin2.c gsturidecodebin.c gstplay-enum.c
 nodist_libgstdecodebin2_la_SOURCES = $(built_sources)
-libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
 libgstdecodebin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdecodebin2_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
@@ -57,6 +62,9 @@ noinst_HEADERS = \
        gststreamselector.h \
        gstrawcaps.h \
        gstsubtitleoverlay.h \
+       gstplaysinkvideoconvert.h \
+       gstplaysinkaudioconvert.h \
+       gstplaysinkconvertbin.h \
        gststreamsynchronizer.h
 
 BUILT_SOURCES = $(built_headers) $(built_sources)
@@ -74,7 +82,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstdecodebin_la_SOURCES) \
                   $(nodist_libgstdecodebin_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) $(csp_cflags) \
         -:LDFLAGS $(libgstdecodebin_la_LDFLAGS) \
                   $(libgstdecodebin_la_LIBADD) \
                   -ldl \
@@ -86,7 +94,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstdecodebin2_la_SOURCES) \
                   $(nodist_libgstdecodebin2_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) $(csp_cflags) \
         -:LDFLAGS $(libgstdecodebin2_la_LDFLAGS) \
                   $(libgstdecodebin2_la_LIBADD) \
                   -ldl \
@@ -98,7 +106,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstplaybin_la_SOURCES) \
                   $(nodist_libgstplaybin_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) $(csp_cflags) \
         -:LDFLAGS $(libgstplaybin_la_LDFLAGS) \
                   $(libgstplaybin_la_LIBADD) \
                   -ldl \
index 5423b31..eb84daf 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -65,6 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -110,6 +111,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -120,8 +127,8 @@ am__objects_1 = libgstdecodebin_la-gstplay-marshal.lo
 nodist_libgstdecodebin_la_OBJECTS = $(am__objects_1)
 libgstdecodebin_la_OBJECTS = $(am_libgstdecodebin_la_OBJECTS) \
        $(nodist_libgstdecodebin_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstdecodebin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -152,6 +159,9 @@ am_libgstplaybin_la_OBJECTS = libgstplaybin_la-gstplayback.lo \
        libgstplaybin_la-gststreaminfo.lo \
        libgstplaybin_la-gststreamselector.lo \
        libgstplaybin_la-gstsubtitleoverlay.lo \
+       libgstplaybin_la-gstplaysinkvideoconvert.lo \
+       libgstplaybin_la-gstplaysinkaudioconvert.lo \
+       libgstplaybin_la-gstplaysinkconvertbin.lo \
        libgstplaybin_la-gststreamsynchronizer.lo
 am__objects_3 = libgstplaybin_la-gstplay-marshal.lo
 nodist_libgstplaybin_la_OBJECTS = $(am__objects_3)
@@ -171,21 +181,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstdecodebin_la_SOURCES) \
        $(nodist_libgstdecodebin_la_SOURCES) \
@@ -258,6 +268,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -318,6 +329,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -327,9 +339,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -352,6 +367,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -424,10 +440,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -461,7 +480,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -490,6 +508,7 @@ glib_gen_basename = gstplay
 built_sources = gstplay-marshal.c
 built_headers = gstplay-marshal.h
 plugin_LTLIBRARIES = libgstplaybin.la libgstdecodebin.la libgstdecodebin2.la
+csp_cflags = -DCOLORSPACE=\"ffmpegcolorspace\"
 libgstplaybin_la_SOURCES = \
        gstplayback.c \
        gstplaybin.c \
@@ -500,10 +519,13 @@ libgstplaybin_la_SOURCES = \
        gststreaminfo.c \
        gststreamselector.c \
        gstsubtitleoverlay.c \
+       gstplaysinkvideoconvert.c \
+       gstplaysinkaudioconvert.c \
+       gstplaysinkconvertbin.c \
        gststreamsynchronizer.c
 
 nodist_libgstplaybin_la_SOURCES = $(built_sources)
-libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
 libgstplaybin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstplaybin_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
@@ -514,7 +536,7 @@ libgstplaybin_la_LIBADD = \
 libgstplaybin_la_LIBTOOLFLAGS = --tag=disable-static
 libgstdecodebin_la_SOURCES = gstdecodebin.c
 nodist_libgstdecodebin_la_SOURCES = $(built_sources)
-libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
 libgstdecodebin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdecodebin_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
@@ -523,7 +545,7 @@ libgstdecodebin_la_LIBADD = \
 libgstdecodebin_la_LIBTOOLFLAGS = --tag=disable-static
 libgstdecodebin2_la_SOURCES = gstdecodebin2.c gsturidecodebin.c gstplay-enum.c
 nodist_libgstdecodebin2_la_SOURCES = $(built_sources)
-libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
 libgstdecodebin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdecodebin2_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
@@ -539,6 +561,9 @@ noinst_HEADERS = \
        gststreamselector.h \
        gstrawcaps.h \
        gstsubtitleoverlay.h \
+       gstplaysinkvideoconvert.h \
+       gstplaysinkaudioconvert.h \
+       gstplaysinkconvertbin.h \
        gststreamsynchronizer.h
 
 BUILT_SOURCES = $(built_headers) $(built_sources)
@@ -571,6 +596,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -611,11 +637,11 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstdecodebin.la: $(libgstdecodebin_la_OBJECTS) $(libgstdecodebin_la_DEPENDENCIES) 
+libgstdecodebin.la: $(libgstdecodebin_la_OBJECTS) $(libgstdecodebin_la_DEPENDENCIES) $(EXTRA_libgstdecodebin_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstdecodebin_la_LINK) -rpath $(plugindir) $(libgstdecodebin_la_OBJECTS) $(libgstdecodebin_la_LIBADD) $(LIBS)
-libgstdecodebin2.la: $(libgstdecodebin2_la_OBJECTS) $(libgstdecodebin2_la_DEPENDENCIES) 
+libgstdecodebin2.la: $(libgstdecodebin2_la_OBJECTS) $(libgstdecodebin2_la_DEPENDENCIES) $(EXTRA_libgstdecodebin2_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstdecodebin2_la_LINK) -rpath $(plugindir) $(libgstdecodebin2_la_OBJECTS) $(libgstdecodebin2_la_LIBADD) $(LIBS)
-libgstplaybin.la: $(libgstplaybin_la_OBJECTS) $(libgstplaybin_la_DEPENDENCIES) 
+libgstplaybin.la: $(libgstplaybin_la_OBJECTS) $(libgstplaybin_la_DEPENDENCIES) $(EXTRA_libgstplaybin_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstplaybin_la_LINK) -rpath $(plugindir) $(libgstplaybin_la_OBJECTS) $(libgstplaybin_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -637,6 +663,9 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaybin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaybin2.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gststreaminfo.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gststreamselector.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Plo@am__quote@
@@ -645,162 +674,163 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstdecodebin_la-gstdecodebin.lo: gstdecodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin_la-gstdecodebin.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin_la-gstdecodebin.Tpo -c -o libgstdecodebin_la-gstdecodebin.lo `test -f 'gstdecodebin.c' || echo '$(srcdir)/'`gstdecodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin_la-gstdecodebin.Tpo $(DEPDIR)/libgstdecodebin_la-gstdecodebin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstdecodebin.c' object='libgstdecodebin_la-gstdecodebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstdecodebin.c' object='libgstdecodebin_la-gstdecodebin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstdecodebin.lo `test -f 'gstdecodebin.c' || echo '$(srcdir)/'`gstdecodebin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstdecodebin.lo `test -f 'gstdecodebin.c' || echo '$(srcdir)/'`gstdecodebin.c
 
 libgstdecodebin_la-gstplay-marshal.lo: gstplay-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin_la-gstplay-marshal.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin_la-gstplay-marshal.Tpo -c -o libgstdecodebin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin_la-gstplay-marshal.Tpo $(DEPDIR)/libgstdecodebin_la-gstplay-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplay-marshal.c' object='libgstdecodebin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplay-marshal.c' object='libgstdecodebin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
 
 libgstdecodebin2_la-gstdecodebin2.lo: gstdecodebin2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gstdecodebin2.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gstdecodebin2.Tpo -c -o libgstdecodebin2_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gstdecodebin2.Tpo $(DEPDIR)/libgstdecodebin2_la-gstdecodebin2.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstdecodebin2.c' object='libgstdecodebin2_la-gstdecodebin2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstdecodebin2.c' object='libgstdecodebin2_la-gstdecodebin2.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
 
 libgstdecodebin2_la-gsturidecodebin.lo: gsturidecodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gsturidecodebin.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gsturidecodebin.Tpo -c -o libgstdecodebin2_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gsturidecodebin.Tpo $(DEPDIR)/libgstdecodebin2_la-gsturidecodebin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsturidecodebin.c' object='libgstdecodebin2_la-gsturidecodebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsturidecodebin.c' object='libgstdecodebin2_la-gsturidecodebin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
 
 libgstdecodebin2_la-gstplay-enum.lo: gstplay-enum.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gstplay-enum.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gstplay-enum.Tpo -c -o libgstdecodebin2_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gstplay-enum.Tpo $(DEPDIR)/libgstdecodebin2_la-gstplay-enum.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplay-enum.c' object='libgstdecodebin2_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplay-enum.c' object='libgstdecodebin2_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
 
 libgstdecodebin2_la-gstplay-marshal.lo: gstplay-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gstplay-marshal.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gstplay-marshal.Tpo -c -o libgstdecodebin2_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gstplay-marshal.Tpo $(DEPDIR)/libgstdecodebin2_la-gstplay-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplay-marshal.c' object='libgstdecodebin2_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplay-marshal.c' object='libgstdecodebin2_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
 
 libgstplaybin_la-gstplayback.lo: gstplayback.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplayback.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplayback.Tpo -c -o libgstplaybin_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplayback.Tpo $(DEPDIR)/libgstplaybin_la-gstplayback.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplayback.c' object='libgstplaybin_la-gstplayback.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplayback.c' object='libgstplaybin_la-gstplayback.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
 
 libgstplaybin_la-gstplaybin.lo: gstplaybin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaybin.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaybin.Tpo -c -o libgstplaybin_la-gstplaybin.lo `test -f 'gstplaybin.c' || echo '$(srcdir)/'`gstplaybin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaybin.Tpo $(DEPDIR)/libgstplaybin_la-gstplaybin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplaybin.c' object='libgstplaybin_la-gstplaybin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaybin.c' object='libgstplaybin_la-gstplaybin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin.lo `test -f 'gstplaybin.c' || echo '$(srcdir)/'`gstplaybin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin.lo `test -f 'gstplaybin.c' || echo '$(srcdir)/'`gstplaybin.c
 
 libgstplaybin_la-gstplaybin2.lo: gstplaybin2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaybin2.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaybin2.Tpo -c -o libgstplaybin_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaybin2.Tpo $(DEPDIR)/libgstplaybin_la-gstplaybin2.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplaybin2.c' object='libgstplaybin_la-gstplaybin2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaybin2.c' object='libgstplaybin_la-gstplaybin2.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
 
 libgstplaybin_la-gstplaysink.lo: gstplaysink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysink.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysink.Tpo -c -o libgstplaybin_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysink.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplaysink.c' object='libgstplaybin_la-gstplaysink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaysink.c' object='libgstplaybin_la-gstplaysink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
 
 libgstplaybin_la-gstplaybasebin.lo: gstplaybasebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaybasebin.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaybasebin.Tpo -c -o libgstplaybin_la-gstplaybasebin.lo `test -f 'gstplaybasebin.c' || echo '$(srcdir)/'`gstplaybasebin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaybasebin.Tpo $(DEPDIR)/libgstplaybin_la-gstplaybasebin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplaybasebin.c' object='libgstplaybin_la-gstplaybasebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaybasebin.c' object='libgstplaybin_la-gstplaybasebin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybasebin.lo `test -f 'gstplaybasebin.c' || echo '$(srcdir)/'`gstplaybasebin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybasebin.lo `test -f 'gstplaybasebin.c' || echo '$(srcdir)/'`gstplaybasebin.c
 
 libgstplaybin_la-gstplay-enum.lo: gstplay-enum.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplay-enum.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplay-enum.Tpo -c -o libgstplaybin_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplay-enum.Tpo $(DEPDIR)/libgstplaybin_la-gstplay-enum.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplay-enum.c' object='libgstplaybin_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplay-enum.c' object='libgstplaybin_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
 
 libgstplaybin_la-gststreaminfo.lo: gststreaminfo.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gststreaminfo.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gststreaminfo.Tpo -c -o libgstplaybin_la-gststreaminfo.lo `test -f 'gststreaminfo.c' || echo '$(srcdir)/'`gststreaminfo.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gststreaminfo.Tpo $(DEPDIR)/libgstplaybin_la-gststreaminfo.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gststreaminfo.c' object='libgstplaybin_la-gststreaminfo.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gststreaminfo.c' object='libgstplaybin_la-gststreaminfo.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreaminfo.lo `test -f 'gststreaminfo.c' || echo '$(srcdir)/'`gststreaminfo.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreaminfo.lo `test -f 'gststreaminfo.c' || echo '$(srcdir)/'`gststreaminfo.c
 
 libgstplaybin_la-gststreamselector.lo: gststreamselector.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gststreamselector.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gststreamselector.Tpo -c -o libgstplaybin_la-gststreamselector.lo `test -f 'gststreamselector.c' || echo '$(srcdir)/'`gststreamselector.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gststreamselector.Tpo $(DEPDIR)/libgstplaybin_la-gststreamselector.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gststreamselector.c' object='libgstplaybin_la-gststreamselector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gststreamselector.c' object='libgstplaybin_la-gststreamselector.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamselector.lo `test -f 'gststreamselector.c' || echo '$(srcdir)/'`gststreamselector.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamselector.lo `test -f 'gststreamselector.c' || echo '$(srcdir)/'`gststreamselector.c
 
 libgstplaybin_la-gstsubtitleoverlay.lo: gstsubtitleoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstsubtitleoverlay.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstsubtitleoverlay.Tpo -c -o libgstplaybin_la-gstsubtitleoverlay.lo `test -f 'gstsubtitleoverlay.c' || echo '$(srcdir)/'`gstsubtitleoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstsubtitleoverlay.Tpo $(DEPDIR)/libgstplaybin_la-gstsubtitleoverlay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstsubtitleoverlay.c' object='libgstplaybin_la-gstsubtitleoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstsubtitleoverlay.c' object='libgstplaybin_la-gstsubtitleoverlay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstsubtitleoverlay.lo `test -f 'gstsubtitleoverlay.c' || echo '$(srcdir)/'`gstsubtitleoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstsubtitleoverlay.lo `test -f 'gstsubtitleoverlay.c' || echo '$(srcdir)/'`gstsubtitleoverlay.c
+
+libgstplaybin_la-gstplaysinkvideoconvert.lo: gstplaysinkvideoconvert.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysinkvideoconvert.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Tpo -c -o libgstplaybin_la-gstplaysinkvideoconvert.lo `test -f 'gstplaysinkvideoconvert.c' || echo '$(srcdir)/'`gstplaysinkvideoconvert.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaysinkvideoconvert.c' object='libgstplaybin_la-gstplaysinkvideoconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysinkvideoconvert.lo `test -f 'gstplaysinkvideoconvert.c' || echo '$(srcdir)/'`gstplaysinkvideoconvert.c
+
+libgstplaybin_la-gstplaysinkaudioconvert.lo: gstplaysinkaudioconvert.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysinkaudioconvert.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Tpo -c -o libgstplaybin_la-gstplaysinkaudioconvert.lo `test -f 'gstplaysinkaudioconvert.c' || echo '$(srcdir)/'`gstplaysinkaudioconvert.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaysinkaudioconvert.c' object='libgstplaybin_la-gstplaysinkaudioconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysinkaudioconvert.lo `test -f 'gstplaysinkaudioconvert.c' || echo '$(srcdir)/'`gstplaysinkaudioconvert.c
+
+libgstplaybin_la-gstplaysinkconvertbin.lo: gstplaysinkconvertbin.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysinkconvertbin.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Tpo -c -o libgstplaybin_la-gstplaysinkconvertbin.lo `test -f 'gstplaysinkconvertbin.c' || echo '$(srcdir)/'`gstplaysinkconvertbin.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplaysinkconvertbin.c' object='libgstplaybin_la-gstplaysinkconvertbin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysinkconvertbin.lo `test -f 'gstplaysinkconvertbin.c' || echo '$(srcdir)/'`gstplaysinkconvertbin.c
 
 libgstplaybin_la-gststreamsynchronizer.lo: gststreamsynchronizer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gststreamsynchronizer.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Tpo -c -o libgstplaybin_la-gststreamsynchronizer.lo `test -f 'gststreamsynchronizer.c' || echo '$(srcdir)/'`gststreamsynchronizer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Tpo $(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gststreamsynchronizer.c' object='libgstplaybin_la-gststreamsynchronizer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gststreamsynchronizer.c' object='libgstplaybin_la-gststreamsynchronizer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamsynchronizer.lo `test -f 'gststreamsynchronizer.c' || echo '$(srcdir)/'`gststreamsynchronizer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamsynchronizer.lo `test -f 'gststreamsynchronizer.c' || echo '$(srcdir)/'`gststreamsynchronizer.c
 
 libgstplaybin_la-gstplay-marshal.lo: gstplay-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplay-marshal.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplay-marshal.Tpo -c -o libgstplaybin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplay-marshal.Tpo $(DEPDIR)/libgstplaybin_la-gstplay-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstplay-marshal.c' object='libgstplaybin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstplay-marshal.c' object='libgstplaybin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -909,10 +939,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1057,7 +1092,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstdecodebin_la_SOURCES) \
                   $(nodist_libgstdecodebin_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) $(csp_cflags) \
         -:LDFLAGS $(libgstdecodebin_la_LDFLAGS) \
                   $(libgstdecodebin_la_LIBADD) \
                   -ldl \
@@ -1069,7 +1104,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstdecodebin2_la_SOURCES) \
                   $(nodist_libgstdecodebin2_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) $(csp_cflags) \
         -:LDFLAGS $(libgstdecodebin2_la_LDFLAGS) \
                   $(libgstdecodebin2_la_LIBADD) \
                   -ldl \
@@ -1081,7 +1116,7 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
         -:SOURCES $(libgstplaybin_la_SOURCES) \
                   $(nodist_libgstplaybin_la_SOURCES) \
-        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) \
+        -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) $(csp_cflags) \
         -:LDFLAGS $(libgstplaybin_la_LDFLAGS) \
                   $(libgstplaybin_la_LIBADD) \
                   -ldl \
index 286e49f..8c5ef50 100644 (file)
@@ -48,7 +48,7 @@ playbasebin:
   is particulary important for chained oggs. Initially, a new group is created in 
   the 'building' state. All new streams will be added to the building group until
   no-more-pads is signaled or one of the preroll queues overflows. When this happens,
-  the group is commited to a list of groups ready for playback. PlaybaseBin will then
+  the group is committed to a list of groups ready for playback. PlaybaseBin will then
   attach a padprobe to each stream to figure out when it finished. It will remove
   the current group and install the next playable group, then.
 
@@ -73,7 +73,7 @@ playbin:
    stream detected. implements seeking and querying on the configured sinks.
 
    It also waits for new notifications from playbasebin about any new groups that are
-   becomming active. It then disconnects the sinks and reconnects them to the new
+   becoming active. It then disconnects the sinks and reconnects them to the new
    pads in the group.
 
    TODO
index 854a28d..7ae0cb9 100644 (file)
@@ -1,5 +1,6 @@
 /* GStreamer
  * Copyright (C) <2004> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) 2011 Hewlett-Packard Development Company, L.P.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include <gst/gst-i18n-plugin.h>
 
 #include <string.h>
 #include <gst/gst.h>
 #include <gst/pbutils/pbutils.h>
+#include "gst/glib-compat-private.h"
 
 #include "gstplay-marshal.h"
 
@@ -286,10 +292,10 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
           "The caps of the input data. (NULL = use typefind element)",
           GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&decoder_bin_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&decoder_bin_src_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &decoder_bin_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &decoder_bin_src_template);
 
   gst_element_class_set_details_simple (gstelement_klass,
       "Decoder Bin", "Generic/Bin/Decoder",
@@ -1115,12 +1121,26 @@ try_to_link_1 (GstDecodeBin * decode_bin, GstElement * srcelement, GstPad * pad,
   /* loop over the factories */
   for (walk = factories; walk; walk = g_list_next (walk)) {
     GstElementFactory *factory = GST_ELEMENT_FACTORY (walk->data);
+    GstElementFactory *src_factory;
     GstElement *element;
     GstPadLinkReturn ret;
     GstPad *sinkpad;
 
-    GST_DEBUG_OBJECT (decode_bin, "trying to link %s",
-        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+    GST_DEBUG_OBJECT (decode_bin, "trying to link %s to %s",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)),
+        GST_OBJECT_NAME (srcelement));
+
+    /* don't plug the same parser twice, but allow multiple
+     * instances of other elements (e.g. id3demux) in a row */
+    src_factory = gst_element_get_factory (srcelement);
+    if (src_factory == factory
+        && gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_PARSER)) {
+      GST_DEBUG_OBJECT (decode_bin,
+          "not inserting parser element %s twice in a row, skipping",
+          GST_PLUGIN_FEATURE_NAME (factory));
+      continue;
+    }
 
     /* make an element from the factory first */
     if ((element = gst_element_factory_create (factory, NULL)) == NULL) {
@@ -1426,7 +1446,7 @@ queue_underrun_cb (GstElement * queue, GstDecodeBin * decode_bin)
   /* FIXME: we don't really do anything here for now. Ideally we should
    * see if some of the queues are filled and increase their values
    * in that case.
-   * Note: be very carefull with thread safety here as this underrun
+   * Note: be very careful with thread safety here as this underrun
    * signal is done from the streaming thread of queue srcpad which
    * is different from the pad_added (where we add the queue to the
    * list) and the overrun signals that are signalled from the
@@ -1758,7 +1778,7 @@ close_link (GstElement * element, GstDecodeBin * decode_bin)
   }
 
   /* Check if this is an element with more than 1 pad. If this element
-   * has more than 1 pad, we need to be carefull not to signal the
+   * has more than 1 pad, we need to be careful not to signal the
    * no_more_pads signal after connecting the first pad. */
   more = g_list_length (to_connect) > 1;
 
index 31b5ebb..8bcadde 100644 (file)
@@ -1,6 +1,8 @@
 /* GStreamer
  * Copyright (C) <2006> Edward Hervey <edward@fluendo.com>
  * Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Hewlett-Packard Development Company, L.P.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include <gst/gst-i18n-plugin.h>
 
 #include <string.h>
 #include "gstplayback.h"
 #include "gstrawcaps.h"
 
+#include "gst/glib-compat-private.h"
+
 /* generic templates */
 static GstStaticPadTemplate decoder_bin_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -111,6 +119,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_decode_bin_debug);
 #define GST_CAT_DEFAULT gst_decode_bin_debug
 
 typedef struct _GstPendingPad GstPendingPad;
+typedef struct _GstDecodeElement GstDecodeElement;
 typedef struct _GstDecodeChain GstDecodeChain;
 typedef struct _GstDecodeGroup GstDecodeGroup;
 typedef struct _GstDecodePad GstDecodePad;
@@ -163,13 +172,15 @@ struct _GstDecodeBin
   gboolean have_type;           /* if we received the have_type signal */
   guint have_type_id;           /* signal id for have-type from typefind */
 
-  gboolean async_pending;       /* async-start has been emited */
+  gboolean async_pending;       /* async-start has been emitted */
 
   GMutex *dyn_lock;             /* lock protecting pad blocking */
   gboolean shutdown;            /* if we are shutting down */
   GList *blocked_pads;          /* pads that have set to block */
 
   gboolean expose_allstreams;   /* Whether to expose unknow type streams or not */
+
+  GList *filtered;              /* elements for which error messages are filtered */
 };
 
 struct _GstDecodeBinClass
@@ -216,9 +227,10 @@ enum
 
 /* automatic sizes, while prerolling we buffer up to 2MB, we ignore time
  * and buffers in this case. */
-#define AUTO_PREROLL_SIZE_BYTES     2 * 1024 * 1024
-#define AUTO_PREROLL_SIZE_BUFFERS   0
-#define AUTO_PREROLL_SIZE_TIME      0
+#define AUTO_PREROLL_SIZE_BYTES                  2 * 1024 * 1024
+#define AUTO_PREROLL_SIZE_BUFFERS                0
+#define AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME      10 * GST_SECOND
+#define AUTO_PREROLL_SEEKABLE_SIZE_TIME          0
 
 /* whan playing, keep a max of 2MB of data but try to keep the number of buffers
  * as low as possible (try to aim for 5 buffers) */
@@ -267,7 +279,7 @@ static void type_found (GstElement * typefind, guint probability,
     GstCaps * caps, GstDecodeBin * decode_bin);
 
 static void decodebin_set_queue_size (GstDecodeBin * dbin,
-    GstElement * multiqueue, gboolean preroll);
+    GstElement * multiqueue, gboolean preroll, gboolean seekable);
 
 static gboolean gst_decode_bin_autoplug_continue (GstElement * element,
     GstPad * pad, GstCaps * caps);
@@ -290,6 +302,9 @@ static void caps_notify_cb (GstPad * pad, GParamSpec * unused,
 static GstPad *find_sink_pad (GstElement * element);
 static GstStateChangeReturn gst_decode_bin_change_state (GstElement * element,
     GstStateChange transition);
+static void gst_decode_bin_handle_message (GstBin * bin, GstMessage * message);
+
+static gboolean check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad);
 
 #define EXPOSE_LOCK(dbin) G_STMT_START {                               \
     GST_LOG_OBJECT (dbin,                                              \
@@ -349,6 +364,12 @@ struct _GstPendingPad
   gulong event_probe_id;
 };
 
+struct _GstDecodeElement
+{
+  GstElement *element;
+  GstElement *capsfilter;       /* Optional capsfilter for Parser/Convert */
+};
+
 /* GstDecodeGroup
  *
  * Streams belonging to the same group/chain of a media file
@@ -385,6 +406,7 @@ struct _GstDecodeChain
   GstPad *pad;                  /* srcpad that caused creation of this chain */
 
   gboolean demuxer;             /* TRUE if elements->data is a demuxer */
+  gboolean seekable;            /* TRUE if this chain ends on a demuxer and is seekable */
   GList *elements;              /* All elements in this group, first
                                    is the latest and most downstream element */
 
@@ -421,7 +443,6 @@ static void gst_decode_group_free (GstDecodeGroup * group);
 static GstDecodeGroup *gst_decode_group_new (GstDecodeBin * dbin,
     GstDecodeChain * chain);
 static gboolean gst_decode_chain_is_complete (GstDecodeChain * chain);
-static void gst_decode_chain_handle_eos (GstDecodeChain * chain);
 static gboolean gst_decode_chain_expose (GstDecodeChain * chain,
     GList ** endpads, gboolean * missing_plugin);
 static gboolean gst_decode_chain_is_drained (GstDecodeChain * chain);
@@ -577,9 +598,11 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
 {
   GObjectClass *gobject_klass;
   GstElementClass *gstelement_klass;
+  GstBinClass *gstbin_klass;
 
   gobject_klass = (GObjectClass *) klass;
   gstelement_klass = (GstElementClass *) klass;
+  gstbin_klass = (GstBinClass *) klass;
 
   parent_class = g_type_class_peek_parent (klass);
 
@@ -671,7 +694,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
    * @pad: The #GstPad.
    * @caps: The #GstCaps found.
    *
-   * This function is emited when an array of possible factories for @caps on
+   * This function is emitted when an array of possible factories for @caps on
    * @pad is needed. Decodebin2 will by default return an array with all
    * compatible factories, sorted by rank.
    *
@@ -705,7 +728,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
    * @factories: A #GValueArray of possible #GstElementFactory to use.
    *
    * Once decodebin2 has found the possible #GstElementFactory objects to try
-   * for @caps on @pad, this signal is emited. The purpose of the signal is for
+   * for @caps on @pad, this signal is emitted. The purpose of the signal is for
    * the application to perform additional sorting or filtering on the element
    * factory array.
    *
@@ -738,7 +761,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
    *
    * This signal is emitted once decodebin2 has found all the possible
    * #GstElementFactory that can be used to handle the given @caps. For each of
-   * those factories, this signal is emited.
+   * those factories, this signal is emitted.
    *
    * The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
    * value indicating what decodebin2 should do next.
@@ -839,7 +862,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
   /**
    * GstDecodebin2:max-size-bytes
    *
-   * Max amount amount of bytes in the queue (0=automatic).
+   * Max amount of bytes in the queue (0=automatic).
    *
    * Since: 0.10.26
    */
@@ -851,7 +874,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
   /**
    * GstDecodebin2:max-size-buffers
    *
-   * Max amount amount of buffers in the queue (0=automatic).
+   * Max amount of buffers in the queue (0=automatic).
    *
    * Since: 0.10.26
    */
@@ -863,7 +886,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
   /**
    * GstDecodebin2:max-size-time
    *
-   * Max amount amount of time in the queue (in ns, 0=automatic).
+   * Max amount of time in the queue (in ns, 0=automatic).
    *
    * Since: 0.10.26
    */
@@ -913,10 +936,10 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
   klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_sort);
   klass->autoplug_select = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_select);
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&decoder_bin_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&decoder_bin_src_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &decoder_bin_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &decoder_bin_src_template);
 
   gst_element_class_set_details_simple (gstelement_klass,
       "Decoder Bin", "Generic/Bin/Decoder",
@@ -926,6 +949,9 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
 
   gstelement_klass->change_state =
       GST_DEBUG_FUNCPTR (gst_decode_bin_change_state);
+
+  gstbin_klass->handle_message =
+      GST_DEBUG_FUNCPTR (gst_decode_bin_handle_message);
 }
 
 /* Must be called with factories lock! */
@@ -1364,11 +1390,17 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
   gboolean apcontinue = TRUE;
   GValueArray *factories = NULL, *result = NULL;
   GstDecodePad *dpad;
+  GstElementFactory *factory;
+  const gchar *classification;
+  gboolean is_parser_converter = FALSE;
+  gboolean res;
 
   GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
       GST_DEBUG_PAD_NAME (pad), caps);
 
-  if (chain->elements && src != chain->elements->data) {
+  if (chain->elements
+      && src != ((GstDecodeElement *) chain->elements->data)->element
+      && src != ((GstDecodeElement *) chain->elements->data)->capsfilter) {
     GST_ERROR_OBJECT (dbin, "New pad from not the last element in this chain");
     return;
   }
@@ -1406,21 +1438,36 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
   dpad = gst_decode_pad_new (dbin, pad, chain);
 
   /* 1. Emit 'autoplug-continue' the result will tell us if this pads needs
-   * further autoplugging. */
-  g_signal_emit (G_OBJECT (dbin),
-      gst_decode_bin_signals[SIGNAL_AUTOPLUG_CONTINUE], 0, dpad, caps,
-      &apcontinue);
+   * further autoplugging. Only do this for fixed caps, for unfixed caps
+   * we will later come here again from the notify::caps handler. The
+   * problem with unfixed caps is that we can reliably tell if the output
+   * is e.g. accepted by a sink because only parts of the possible final
+   * caps might be accepted by the sink. */
+  if (gst_caps_is_fixed (caps))
+    g_signal_emit (G_OBJECT (dbin),
+        gst_decode_bin_signals[SIGNAL_AUTOPLUG_CONTINUE], 0, dpad, caps,
+        &apcontinue);
+  else
+    apcontinue = TRUE;
 
   /* 1.a if autoplug-continue is FALSE or caps is a raw format, goto pad_is_final */
   if ((!apcontinue) || are_final_caps (dbin, caps))
     goto expose_pad;
 
-  /* 1.b when the caps are not fixed yet, we can't be sure what element to
+  /* 1.b For Parser/Converter that can output different stream formats
+   * we insert a capsfilter with the sorted caps of all possible next
+   * elements and continue with the capsfilter srcpad */
+  factory = gst_element_get_factory (src);
+  classification = gst_element_factory_get_klass (factory);
+  is_parser_converter = (strstr (classification, "Parser")
+      && strstr (classification, "Converter"));
+
+  /* 1.c when the caps are not fixed yet, we can't be sure what element to
    * connect. We delay autoplugging until the caps are fixed */
-  if (!gst_caps_is_fixed (caps))
+  if (!is_parser_converter && !gst_caps_is_fixed (caps))
     goto non_fixed;
 
-  /* 1.c else get the factories and if there's no compatible factory goto
+  /* 1.d else get the factories and if there's no compatible factory goto
    * unknown_type */
   g_signal_emit (G_OBJECT (dbin),
       gst_decode_bin_signals[SIGNAL_AUTOPLUG_FACTORIES], 0, dpad, caps,
@@ -1437,6 +1484,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
 
       /* If the caps are raw, this just means we don't want to expose them */
       if (gst_caps_can_intersect (raw, caps)) {
+        g_value_array_free (factories);
         gst_caps_unref (raw);
         gst_object_unref (dpad);
         goto discarded_type;
@@ -1450,7 +1498,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
     goto unknown_type;
   }
 
-  /* 1.d sort some more. */
+  /* 1.e sort some more. */
   g_signal_emit (G_OBJECT (dbin),
       gst_decode_bin_signals[SIGNAL_AUTOPLUG_SORT], 0, dpad, caps, factories,
       &result);
@@ -1461,20 +1509,20 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
 
   /* At this point we have a potential decoder, but we might not need it
    * if it doesn't match the output caps  */
-  if (!dbin->expose_allstreams) {
+  if (!dbin->expose_allstreams && gst_caps_is_fixed (caps)) {
     guint i;
     const GList *tmps;
     gboolean dontuse = FALSE;
 
     GST_DEBUG ("Checking if we can abort early");
 
-    /* 1.e Do an early check to see if the candidates are potential decoders, but
+    /* 1.f Do an early check to see if the candidates are potential decoders, but
      * due to the fact that they decode to a mediatype that is not final we don't
      * need them */
 
     for (i = 0; i < factories->n_values && !dontuse; i++) {
       GstElementFactory *factory =
-          g_value_get_object (g_value_array_get_nth (factories, 0));
+          g_value_get_object (g_value_array_get_nth (factories, i));
       GstCaps *tcaps;
 
       /* We are only interested in skipping decoders */
@@ -1509,17 +1557,89 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
 
     if (dontuse) {
       gst_object_unref (dpad);
+      g_value_array_free (factories);
       goto discarded_type;
     }
   }
 
-  /* 1.f else continue autoplugging something from the list. */
+  /* 1.g now get the factory template caps and insert the capsfilter if this
+   * is a parser/converter
+   */
+  if (is_parser_converter) {
+    GstCaps *filter_caps;
+    gint i;
+    GstPad *p;
+    GstDecodeElement *delem;
+
+    g_assert (chain->elements != NULL);
+    delem = (GstDecodeElement *) chain->elements->data;
+
+    filter_caps = gst_caps_new_empty ();
+    for (i = 0; i < factories->n_values; i++) {
+      GstElementFactory *factory =
+          g_value_get_object (g_value_array_get_nth (factories, i));
+      GstCaps *tcaps, *intersection;
+      const GList *tmps;
+
+      GST_DEBUG ("Trying factory %s",
+          gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+
+      if (gst_element_get_factory (src) == factory) {
+        GST_DEBUG ("Skipping factory");
+        continue;
+      }
+
+      for (tmps = gst_element_factory_get_static_pad_templates (factory); tmps;
+          tmps = tmps->next) {
+        GstStaticPadTemplate *st = (GstStaticPadTemplate *) tmps->data;
+        if (st->direction != GST_PAD_SINK || st->presence != GST_PAD_ALWAYS)
+          continue;
+        tcaps = gst_static_pad_template_get_caps (st);
+        intersection =
+            gst_caps_intersect_full (tcaps, caps, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_merge (filter_caps, intersection);
+        gst_caps_unref (tcaps);
+      }
+    }
+
+    /* Append the parser caps to prevent any not-negotiated errors */
+    gst_caps_merge (filter_caps, gst_caps_copy (caps));
+
+    delem->capsfilter = gst_element_factory_make ("capsfilter", NULL);
+    g_object_set (G_OBJECT (delem->capsfilter), "caps", filter_caps, NULL);
+    gst_caps_unref (filter_caps);
+    gst_element_set_state (delem->capsfilter, GST_STATE_PAUSED);
+    gst_bin_add (GST_BIN_CAST (dbin), gst_object_ref (delem->capsfilter));
+
+    gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (dpad), NULL);
+    p = gst_element_get_static_pad (delem->capsfilter, "sink");
+    gst_pad_link_full (pad, p, GST_PAD_LINK_CHECK_NOTHING);
+    gst_object_unref (p);
+    p = gst_element_get_static_pad (delem->capsfilter, "src");
+    gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (dpad), p);
+    pad = p;
+
+    if (!gst_caps_is_fixed (caps)) {
+      g_value_array_free (factories);
+      goto non_fixed;
+    }
+  }
+
+  /* 1.h else continue autoplugging something from the list. */
   GST_LOG_OBJECT (pad, "Let's continue discovery on this pad");
-  connect_pad (dbin, src, dpad, pad, caps, factories, chain);
+  res = connect_pad (dbin, src, dpad, pad, caps, factories, chain);
+
+  /* Need to unref the capsfilter srcpad here if
+   * we inserted a capsfilter */
+  if (is_parser_converter)
+    gst_object_unref (pad);
 
   gst_object_unref (dpad);
   g_value_array_free (factories);
 
+  if (!res)
+    goto unknown_type;
+
   return;
 
 expose_pad:
@@ -1613,13 +1733,34 @@ setup_caps_delay:
     ppad->event_probe_id =
         gst_pad_add_event_probe (pad, (GCallback) pad_event_cb, ppad);
     chain->pending_pads = g_list_prepend (chain->pending_pads, ppad);
-    CHAIN_MUTEX_UNLOCK (chain);
     g_signal_connect (G_OBJECT (pad), "notify::caps",
         G_CALLBACK (caps_notify_cb), chain);
+    CHAIN_MUTEX_UNLOCK (chain);
+
+    /* If we're here because we have a Parser/Converter
+     * we have to unref the pad */
+    if (is_parser_converter)
+      gst_object_unref (pad);
+
     return;
   }
 }
 
+static void
+add_error_filter (GstDecodeBin * dbin, GstElement * element)
+{
+  GST_OBJECT_LOCK (dbin);
+  dbin->filtered = g_list_prepend (dbin->filtered, element);
+  GST_OBJECT_UNLOCK (dbin);
+}
+
+static void
+remove_error_filter (GstDecodeBin * dbin, GstElement * element)
+{
+  GST_OBJECT_LOCK (dbin);
+  dbin->filtered = g_list_remove (dbin->filtered, element);
+  GST_OBJECT_UNLOCK (dbin);
+}
 
 /* connect_pad:
  *
@@ -1664,6 +1805,7 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
   while (factories->n_values > 0) {
     GstAutoplugSelectResult ret;
     GstElementFactory *factory;
+    GstDecodeElement *delem;
     GstElement *element;
     GstPad *sinkpad;
     gboolean subtitle;
@@ -1693,7 +1835,8 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
 
       CHAIN_MUTEX_LOCK (chain);
       for (l = chain->elements; l; l = l->next) {
-        GstElement *otherelement = GST_ELEMENT_CAST (l->data);
+        GstDecodeElement *delem = (GstDecodeElement *) l->data;
+        GstElement *otherelement = delem->element;
 
         if (gst_element_get_factory (otherelement) == factory) {
           skip = TRUE;
@@ -1742,51 +1885,60 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
       continue;
     }
 
-    /* ... activate it ... We do this before adding it to the bin so that we
-     * don't accidentally make it post error messages that will stop
-     * everything. */
-    if ((gst_element_set_state (element,
-                GST_STATE_READY)) == GST_STATE_CHANGE_FAILURE) {
-      GST_WARNING_OBJECT (dbin, "Couldn't set %s to READY",
+    /* Filter errors, this will prevent the element from causing the pipeline
+     * to error while we test it using READY state. */
+    add_error_filter (dbin, element);
+
+    /* ... add it ... */
+    if (!(gst_bin_add (GST_BIN_CAST (dbin), element))) {
+      GST_WARNING_OBJECT (dbin, "Couldn't add %s to the bin",
           GST_ELEMENT_NAME (element));
+      remove_error_filter (dbin, element);
       gst_object_unref (element);
       continue;
     }
 
-    /* 2.3. Find its sink pad, this should work after activating it. */
+    /* Find its sink pad. */
     if (!(sinkpad = find_sink_pad (element))) {
       GST_WARNING_OBJECT (dbin, "Element %s doesn't have a sink pad",
           GST_ELEMENT_NAME (element));
-      gst_element_set_state (element, GST_STATE_NULL);
-      gst_object_unref (element);
+      remove_error_filter (dbin, element);
+      gst_bin_remove (GST_BIN (dbin), element);
       continue;
     }
 
-    /* 2.4 add it ... */
-    if (!(gst_bin_add (GST_BIN_CAST (dbin), element))) {
-      GST_WARNING_OBJECT (dbin, "Couldn't add %s to the bin",
-          GST_ELEMENT_NAME (element));
+    /* ... and try to link */
+    if ((gst_pad_link (pad, sinkpad)) != GST_PAD_LINK_OK) {
+      GST_WARNING_OBJECT (dbin, "Link failed on pad %s:%s",
+          GST_DEBUG_PAD_NAME (sinkpad));
+      remove_error_filter (dbin, element);
       gst_object_unref (sinkpad);
-      gst_element_set_state (element, GST_STATE_NULL);
-      gst_object_unref (element);
+      gst_bin_remove (GST_BIN (dbin), element);
       continue;
     }
 
-    /* 2.5 ...and try to link */
-    if ((gst_pad_link (pad, sinkpad)) != GST_PAD_LINK_OK) {
-      GST_WARNING_OBJECT (dbin, "Link failed on pad %s:%s",
-          GST_DEBUG_PAD_NAME (sinkpad));
-      gst_element_set_state (element, GST_STATE_NULL);
+    /* ... activate it ... */
+    if ((gst_element_set_state (element,
+                GST_STATE_READY)) == GST_STATE_CHANGE_FAILURE) {
+      GST_WARNING_OBJECT (dbin, "Couldn't set %s to READY",
+          GST_ELEMENT_NAME (element));
+      remove_error_filter (dbin, element);
       gst_object_unref (sinkpad);
       gst_bin_remove (GST_BIN (dbin), element);
       continue;
     }
+
+    /* Stop filtering errors. */
+    remove_error_filter (dbin, element);
+
     gst_object_unref (sinkpad);
     GST_LOG_OBJECT (dbin, "linked on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
 
     CHAIN_MUTEX_LOCK (chain);
-    chain->elements =
-        g_list_prepend (chain->elements, gst_object_ref (element));
+    delem = g_slice_new (GstDecodeElement);
+    delem->element = gst_object_ref (element);
+    delem->capsfilter = NULL;
+    chain->elements = g_list_prepend (chain->elements, delem);
     chain->demuxer = is_demuxer_element (element);
     CHAIN_MUTEX_UNLOCK (chain);
 
@@ -1809,6 +1961,7 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
     /* Bring the element to the state of the parent */
     if ((gst_element_set_state (element,
                 GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE) {
+      GstDecodeElement *dtmp = NULL;
       GstElement *tmp = NULL;
 
       GST_WARNING_OBJECT (dbin, "Couldn't set %s to PAUSED",
@@ -1820,7 +1973,8 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
       do {
         GList *l;
 
-        tmp = chain->elements->data;
+        dtmp = chain->elements->data;
+        tmp = dtmp->element;
 
         /* Disconnect any signal handlers that might be connected
          * in connect_element() or analyze_pad() */
@@ -1849,10 +2003,18 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
           l = n;
         }
 
+        if (dtmp->capsfilter) {
+          gst_bin_remove (GST_BIN (dbin), dtmp->capsfilter);
+          gst_element_set_state (dtmp->capsfilter, GST_STATE_NULL);
+          gst_object_unref (dtmp->capsfilter);
+        }
+
         gst_bin_remove (GST_BIN (dbin), tmp);
         gst_element_set_state (tmp, GST_STATE_NULL);
 
         gst_object_unref (tmp);
+        g_slice_free (GstDecodeElement, dtmp);
+
         chain->elements = g_list_delete_link (chain->elements, chain->elements);
       } while (tmp != element);
       CHAIN_MUTEX_UNLOCK (chain);
@@ -2045,6 +2207,47 @@ beach:
   return;
 }
 
+/* check_upstream_seekable:
+ *
+ * Check if upstream is seekable.
+ */
+static gboolean
+check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad)
+{
+  GstQuery *query;
+  gint64 start = -1, stop = -1;
+  gboolean seekable = FALSE;
+
+  query = gst_query_new_seeking (GST_FORMAT_BYTES);
+  if (!gst_pad_peer_query (pad, query)) {
+    GST_DEBUG_OBJECT (dbin, "seeking query failed");
+    gst_query_unref (query);
+    return FALSE;
+  }
+
+  gst_query_parse_seeking (query, NULL, &seekable, &start, &stop);
+
+  gst_query_unref (query);
+
+  /* try harder to query upstream size if we didn't get it the first time */
+  if (seekable && stop == -1) {
+    GstFormat fmt = GST_FORMAT_BYTES;
+
+    GST_DEBUG_OBJECT (dbin, "doing duration query to fix up unset stop");
+    gst_pad_query_peer_duration (pad, &fmt, &stop);
+  }
+
+  /* if upstream doesn't know the size, it's likely that it's not seekable in
+   * practice even if it technically may be seekable */
+  if (seekable && (start != 0 || stop <= start)) {
+    GST_DEBUG_OBJECT (dbin, "seekable but unknown start/stop -> disable");
+    return FALSE;
+  }
+
+  GST_DEBUG_OBJECT (dbin, "upstream seekable: %d", seekable);
+  return seekable;
+}
+
 static void
 type_found (GstElement * typefind, guint probability,
     GstCaps * caps, GstDecodeBin * decode_bin)
@@ -2173,7 +2376,8 @@ no_more_pads_cb (GstElement * element, GstDecodeChain * chain)
   GST_LOG_OBJECT (element, "got no more pads");
 
   CHAIN_MUTEX_LOCK (chain);
-  if (!chain->elements || (GstElement *) chain->elements->data != element) {
+  if (!chain->elements
+      || ((GstDecodeElement *) chain->elements->data)->element != element) {
     GST_LOG_OBJECT (chain->dbin, "no-more-pads from old chain element '%s'",
         GST_OBJECT_NAME (element));
     CHAIN_MUTEX_UNLOCK (chain);
@@ -2204,7 +2408,8 @@ no_more_pads_cb (GstElement * element, GstDecodeChain * chain)
    * we can probably set its buffering state to playing now */
   GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
       "'playing' buffering mode", group);
-  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE);
+  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+      (group->parent ? group->parent->seekable : TRUE));
   CHAIN_MUTEX_UNLOCK (chain);
 
   EXPOSE_LOCK (chain->dbin);
@@ -2418,12 +2623,22 @@ gst_decode_chain_free_internal (GstDecodeChain * chain, gboolean hide)
   chain->pending_pads = NULL;
 
   for (l = chain->elements; l; l = l->next) {
-    GstElement *element = GST_ELEMENT (l->data);
+    GstDecodeElement *delem = l->data;
+    GstElement *element = delem->element;
 
     g_signal_handlers_disconnect_by_func (element, pad_added_cb, chain);
     g_signal_handlers_disconnect_by_func (element, pad_removed_cb, chain);
     g_signal_handlers_disconnect_by_func (element, no_more_pads_cb, chain);
 
+    if (delem->capsfilter) {
+      if (GST_OBJECT_PARENT (delem->capsfilter) ==
+          GST_OBJECT_CAST (chain->dbin))
+        gst_bin_remove (GST_BIN_CAST (chain->dbin), delem->capsfilter);
+      if (!hide) {
+        gst_element_set_state (delem->capsfilter, GST_STATE_NULL);
+      }
+    }
+
     if (GST_OBJECT_PARENT (element) == GST_OBJECT_CAST (chain->dbin))
       gst_bin_remove (GST_BIN_CAST (chain->dbin), element);
     if (!hide) {
@@ -2436,8 +2651,15 @@ gst_decode_chain_free_internal (GstDecodeChain * chain, gboolean hide)
     SUBTITLE_UNLOCK (chain->dbin);
 
     if (!hide) {
+      if (delem->capsfilter) {
+        gst_object_unref (delem->capsfilter);
+        delem->capsfilter = NULL;
+      }
+
       gst_object_unref (element);
       l->data = NULL;
+
+      g_slice_free (GstDecodeElement, delem);
     }
   }
   if (!hide) {
@@ -2538,6 +2760,12 @@ multi_queue_overrun_cb (GstElement * queue, GstDecodeGroup * group)
       queue);
 
   group->overrun = TRUE;
+  /* this group has prerolled enough to not need more pads,
+   * we can probably set its buffering state to playing now */
+  GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
+      "'playing' buffering mode", group);
+  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+      (group->parent ? group->parent->seekable : TRUE));
 
   /* FIXME: We should make sure that everything gets exposed now
    * even if child chains are not complete because the will never
@@ -2643,7 +2871,7 @@ gst_decode_group_hide (GstDecodeGroup * group)
  * playing or prerolling. */
 static void
 decodebin_set_queue_size (GstDecodeBin * dbin, GstElement * multiqueue,
-    gboolean preroll)
+    gboolean preroll, gboolean seekable)
 {
   guint max_bytes, max_buffers;
   guint64 max_time;
@@ -2656,7 +2884,8 @@ decodebin_set_queue_size (GstDecodeBin * dbin, GstElement * multiqueue,
     if ((max_buffers = dbin->max_size_buffers) == 0)
       max_buffers = AUTO_PREROLL_SIZE_BUFFERS;
     if ((max_time = dbin->max_size_time) == 0)
-      max_time = AUTO_PREROLL_SIZE_TIME;
+      max_time = seekable ? AUTO_PREROLL_SEEKABLE_SIZE_TIME :
+          AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME;
   } else {
     /* update runtime limits. At runtime, we try to keep the amount of buffers
      * in the queues as low as possible (but at least 5 buffers). */
@@ -2685,6 +2914,7 @@ gst_decode_group_new (GstDecodeBin * dbin, GstDecodeChain * parent)
 {
   GstDecodeGroup *group = g_slice_new0 (GstDecodeGroup);
   GstElement *mq;
+  gboolean seekable;
 
   GST_DEBUG_OBJECT (dbin, "Creating new group %p with parent chain %p", group,
       parent);
@@ -2705,7 +2935,17 @@ gst_decode_group_new (GstDecodeBin * dbin, GstDecodeChain * parent)
   }
 
   /* configure queue sizes for preroll */
-  decodebin_set_queue_size (dbin, mq, TRUE);
+  seekable = FALSE;
+  if (parent && parent->demuxer) {
+    GstElement *element =
+        ((GstDecodeElement *) parent->elements->data)->element;
+    GstPad *pad = gst_element_get_static_pad (element, "sink");
+    if (pad) {
+      seekable = parent->seekable = check_upstream_seekable (dbin, pad);
+      gst_object_unref (pad);
+    }
+  }
+  decodebin_set_queue_size (dbin, mq, TRUE, seekable);
 
   group->overrunsig = g_signal_connect (G_OBJECT (mq), "overrun",
       G_CALLBACK (multi_queue_overrun_cb), group);
@@ -2856,81 +3096,155 @@ out:
   return complete;
 }
 
-/* check if the group is drained, meaning all pads have seen an EOS
- * event.  */
-static void
-gst_decode_pad_handle_eos (GstDecodePad * pad)
+static gboolean
+drain_and_switch_chains (GstDecodeChain * chain, GstDecodePad * drainpad,
+    gboolean * last_group, gboolean * drained, gboolean * switched);
+/* drain_and_switch_chains/groups:
+ *
+ * CALL WITH CHAIN LOCK (or group parent) TAKEN !
+ *
+ * Goes down the chains/groups until it finds the chain
+ * to which the drainpad belongs.
+ *
+ * It marks that pad/chain as drained and then will figure
+ * out which group to switch to or not.
+ *
+ * last_chain will be set to TRUE if the group to which the
+ * pad belongs is the last one.
+ *
+ * drained will be set to TRUE if the chain/group is drained.
+ *
+ * Returns: TRUE if the chain contained the target pad */
+static gboolean
+drain_and_switch_group (GstDecodeGroup * group, GstDecodePad * drainpad,
+    gboolean * last_group, gboolean * drained, gboolean * switched)
 {
-  GstDecodeChain *chain = pad->chain;
+  gboolean handled = FALSE;
+  gboolean alldrained = TRUE;
+  GList *tmp;
+
+  GST_DEBUG ("Checking group %p (target pad %s:%s)",
+      group, GST_DEBUG_PAD_NAME (drainpad));
 
-  GST_LOG_OBJECT (pad->dbin, "chain : %p, pad %p", chain, pad);
-  pad->drained = TRUE;
-  gst_decode_chain_handle_eos (chain);
+  /* Definitely can't be in drained groups */
+  if (G_UNLIKELY (group->drained)) {
+    goto beach;
+  }
+
+  /* Figure out if all our chains are drained with the
+   * new information */
+  for (tmp = group->children; tmp; tmp = tmp->next) {
+    GstDecodeChain *chain = (GstDecodeChain *) tmp->data;
+    gboolean subdrained = FALSE;
+
+    handled |=
+        drain_and_switch_chains (chain, drainpad, last_group, &subdrained,
+        switched);
+    if (!subdrained)
+      alldrained = FALSE;
+  }
+
+beach:
+  GST_DEBUG ("group %p (last_group:%d, drained:%d, switched:%d, handled:%d)",
+      group, *last_group, alldrained, *switched, handled);
+  *drained = alldrained;
+  return handled;
 }
 
-/* gst_decode_chain_handle_eos:
- *
- * Checks if there are next groups in any parent chain
- * to which we can switch or if everything is drained.
- *
- * If there are groups to switch to, hide the current active
- * one and expose the new one.
- *
- * MT-safe, don't call with chain lock!
- */
-static void
-gst_decode_chain_handle_eos (GstDecodeChain * eos_chain)
+static gboolean
+drain_and_switch_chains (GstDecodeChain * chain, GstDecodePad * drainpad,
+    gboolean * last_group, gboolean * drained, gboolean * switched)
 {
-  GstDecodeBin *dbin = eos_chain->dbin;
-  GstDecodeGroup *group;
-  GstDecodeChain *chain = eos_chain;
-  gboolean drained;
+  gboolean handled = FALSE;
+  GstDecodeBin *dbin = chain->dbin;
 
-  g_return_if_fail (eos_chain->endpad);
+  GST_DEBUG ("Checking chain %p (target pad %s:%s)",
+      chain, GST_DEBUG_PAD_NAME (drainpad));
 
   CHAIN_MUTEX_LOCK (chain);
-  while ((group = chain->parent)) {
-    CHAIN_MUTEX_UNLOCK (chain);
-    chain = group->parent;
-    CHAIN_MUTEX_LOCK (chain);
 
-    if (gst_decode_group_is_drained (group)) {
-      continue;
+  if (chain->endpad) {
+    /* Check if we're reached the target endchain */
+    if (chain == drainpad->chain) {
+      GST_DEBUG ("Found the target chain");
+      drainpad->drained = TRUE;
+      handled = TRUE;
     }
-    break;
+
+    *drained = chain->endpad->drained;
+    goto beach;
   }
 
-  drained = chain->active_group ?
-      gst_decode_group_is_drained (chain->active_group) : TRUE;
-
-  /* Now either group == NULL and chain == dbin->decode_chain
-   * or chain is the lowest chain that has a non-drained group */
-  if (chain->active_group && drained && chain->next_groups) {
-    GST_DEBUG_OBJECT (dbin, "Hiding current group %p", chain->active_group);
-    gst_decode_group_hide (chain->active_group);
-    chain->old_groups = g_list_prepend (chain->old_groups, chain->active_group);
-    GST_DEBUG_OBJECT (dbin, "Switching to next group %p",
-        chain->next_groups->data);
-    chain->active_group = chain->next_groups->data;
-    chain->next_groups =
-        g_list_delete_link (chain->next_groups, chain->next_groups);
-    CHAIN_MUTEX_UNLOCK (chain);
+  /* We known there are groups to switch to */
+  if (chain->next_groups)
+    *last_group = FALSE;
+
+  /* Check the active group */
+  if (chain->active_group) {
+    gboolean subdrained = FALSE;
+    handled = drain_and_switch_group (chain->active_group, drainpad,
+        last_group, &subdrained, switched);
+
+    /* The group is drained, see if we can switch to another */
+    if (handled && subdrained && !*switched) {
+      if (chain->next_groups) {
+        /* Switch to next group */
+        GST_DEBUG_OBJECT (dbin, "Hiding current group %p", chain->active_group);
+        gst_decode_group_hide (chain->active_group);
+        chain->old_groups =
+            g_list_prepend (chain->old_groups, chain->active_group);
+        GST_DEBUG_OBJECT (dbin, "Switching to next group %p",
+            chain->next_groups->data);
+        chain->active_group = chain->next_groups->data;
+        chain->next_groups =
+            g_list_delete_link (chain->next_groups, chain->next_groups);
+        *switched = TRUE;
+        *drained = FALSE;
+      } else {
+        GST_DEBUG ("Group %p was the last in chain %p", chain->active_group,
+            chain);
+        *drained = TRUE;
+        /* We're drained ! */
+      }
+    }
+  }
+
+beach:
+  CHAIN_MUTEX_UNLOCK (chain);
+
+  GST_DEBUG ("Chain %p (handled:%d, last_group:%d, drained:%d, switched:%d)",
+      chain, handled, *last_group, *drained, *switched);
+
+  if (*drained)
+    g_signal_emit (dbin, gst_decode_bin_signals[SIGNAL_DRAINED], 0, NULL);
+
+  return handled;
+}
+
+/* check if the group is drained, meaning all pads have seen an EOS
+ * event.  */
+static gboolean
+gst_decode_pad_handle_eos (GstDecodePad * pad)
+{
+  gboolean last_group = TRUE;
+  gboolean switched = FALSE;
+  gboolean drained = FALSE;
+  GstDecodeChain *chain = pad->chain;
+  GstDecodeBin *dbin = chain->dbin;
+
+  GST_LOG_OBJECT (dbin, "pad %p", pad);
+  drain_and_switch_chains (dbin->decode_chain, pad, &last_group, &drained,
+      &switched);
+
+  if (switched) {
+    /* If we resulted in a group switch, expose what's needed */
     EXPOSE_LOCK (dbin);
     if (gst_decode_chain_is_complete (dbin->decode_chain))
       gst_decode_bin_expose (dbin);
     EXPOSE_UNLOCK (dbin);
-  } else if (!chain->active_group || drained) {
-    g_assert (chain == dbin->decode_chain);
-    CHAIN_MUTEX_UNLOCK (chain);
-
-    GST_LOG_OBJECT (dbin, "all groups drained, fire signal");
-    g_signal_emit (G_OBJECT (dbin), gst_decode_bin_signals[SIGNAL_DRAINED], 0,
-        NULL);
-  } else {
-    CHAIN_MUTEX_UNLOCK (chain);
-    GST_DEBUG_OBJECT (dbin,
-        "Current active group in chain %p is not drained yet", chain);
   }
+
+  return last_group;
 }
 
 /* gst_decode_group_is_drained:
@@ -3058,7 +3372,8 @@ sort_end_pads (GstDecodePad * da, GstDecodePad * db)
 }
 
 static GstCaps *
-_gst_element_get_linked_caps (GstElement * src, GstElement * sink)
+_gst_element_get_linked_caps (GstElement * src, GstElement * sink,
+    GstPad ** srcpad)
 {
   GstIterator *it;
   GstElement *parent;
@@ -3075,6 +3390,10 @@ _gst_element_get_linked_caps (GstElement * src, GstElement * sink)
           parent = gst_pad_get_parent_element (peer);
           if (parent == sink) {
             caps = gst_pad_get_negotiated_caps (pad);
+            if (srcpad) {
+              gst_object_ref (pad);
+              *srcpad = pad;
+            }
             done = TRUE;
           }
 
@@ -3103,6 +3422,7 @@ static GQuark topology_structure_name = 0;
 static GQuark topology_caps = 0;
 static GQuark topology_next = 0;
 static GQuark topology_pad = 0;
+static GQuark topology_element_srcpad = 0;
 
 /* FIXME: Invent gst_structure_take_structure() to prevent all the
  * structure copying for nothing
@@ -3123,13 +3443,17 @@ gst_decode_chain_get_topology (GstDecodeChain * chain)
   u = gst_structure_id_empty_new (topology_structure_name);
 
   /* Now at the last element */
-  if (chain->elements && (chain->endpad || chain->deadend)) {
+  if ((chain->elements || !chain->active_group) &&
+      (chain->endpad || chain->deadend)) {
     s = gst_structure_id_empty_new (topology_structure_name);
     gst_structure_id_set (u, topology_caps, GST_TYPE_CAPS, chain->endcaps,
         NULL);
 
-    if (chain->endpad)
+    if (chain->endpad) {
       gst_structure_id_set (u, topology_pad, GST_TYPE_PAD, chain->endpad, NULL);
+      gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD,
+          chain->endpad, NULL);
+    }
     gst_structure_id_set (s, topology_next, GST_TYPE_STRUCTURE, u, NULL);
     gst_structure_free (u);
     u = s;
@@ -3156,7 +3480,18 @@ gst_decode_chain_get_topology (GstDecodeChain * chain)
   /* Get caps between all elements in this chain */
   l = (chain->elements && chain->elements->next) ? chain->elements : NULL;
   for (; l && l->next; l = l->next) {
-    GstCaps *caps = _gst_element_get_linked_caps (l->next->data, l->data);
+    GstDecodeElement *delem, *delem_next;
+    GstElement *elem, *elem_next;
+    GstCaps *caps;
+    GstPad *srcpad;
+
+    delem = l->data;
+    elem = delem->element;
+    delem_next = l->next->data;
+    elem_next = delem_next->element;
+    srcpad = NULL;
+
+    caps = _gst_element_get_linked_caps (elem_next, elem, &srcpad);
 
     if (caps) {
       s = gst_structure_id_empty_new (topology_structure_name);
@@ -3167,6 +3502,12 @@ gst_decode_chain_get_topology (GstDecodeChain * chain)
       gst_structure_free (u);
       u = s;
     }
+
+    if (srcpad) {
+      gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD, srcpad,
+          NULL);
+      gst_object_unref (srcpad);
+    }
   }
 
   /* Caps that resulted in this chain */
@@ -3180,7 +3521,9 @@ gst_decode_chain_get_topology (GstDecodeChain * chain)
       caps = NULL;
     }
   }
-  gst_structure_set (u, "caps", GST_TYPE_CAPS, caps, NULL);
+  gst_structure_id_set (u, topology_caps, GST_TYPE_CAPS, caps, NULL);
+  gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD, chain->pad,
+      NULL);
   gst_caps_unref (caps);
 
   return u;
@@ -3301,7 +3644,7 @@ gst_decode_bin_expose (GstDecodeBin * dbin)
 
   /* 4. Signal no-more-pads. This allows the application to hook stuff to the
    * exposed pads */
-  GST_LOG_OBJECT (dbin, "signalling no-more-pads");
+  GST_LOG_OBJECT (dbin, "signaling no-more-pads");
   gst_element_no_more_pads (GST_ELEMENT (dbin));
 
   /* 5. Send a custom element message with the stream topology */
@@ -3365,7 +3708,7 @@ gst_decode_chain_expose (GstDecodeChain * chain, GList ** endpads,
   dbin = group->dbin;
 
   /* configure queues for playback */
-  decodebin_set_queue_size (dbin, group->multiqueue, FALSE);
+  decodebin_set_queue_size (dbin, group->multiqueue, FALSE, TRUE);
 
   /* we can now disconnect any overrun signal, which is used to expose the
    * group. */
@@ -3431,18 +3774,24 @@ source_pad_blocked_cb (GstPad * pad, gboolean blocked, GstDecodePad * dpad)
 static gboolean
 source_pad_event_probe (GstPad * pad, GstEvent * event, GstDecodePad * dpad)
 {
+  gboolean res = TRUE;
+
   GST_LOG_OBJECT (pad, "%s dpad:%p", GST_EVENT_TYPE_NAME (event), dpad);
 
   if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
     GST_DEBUG_OBJECT (pad, "we received EOS");
 
-    /* Check if all pads are drained. If there is a next group to expose, we
-     * will remove the ghostpad of the current group first, which unlinks the
-     * peer and so drops the EOS. */
-    gst_decode_pad_handle_eos (dpad);
+    /* Check if all pads are drained.
+     * * If there is no next group, we will let the EOS go through.
+     * * If there is a next group but the current group isn't completely
+     *   drained, we will drop the EOS event.
+     * * If there is a next group to expose and this was the last non-drained
+     *   pad for that group, we will remove the ghostpad of the current group
+     *   first, which unlinks the peer and so drops the EOS. */
+    res = gst_decode_pad_handle_eos (dpad);
   }
-  /* never drop events */
-  return TRUE;
+
+  return res;
 }
 
 static void
@@ -3714,6 +4063,24 @@ activate_failed:
   }
 }
 
+static void
+gst_decode_bin_handle_message (GstBin * bin, GstMessage * msg)
+{
+  GstDecodeBin *dbin = GST_DECODE_BIN (bin);
+  gboolean drop = FALSE;
+
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
+    GST_OBJECT_LOCK (dbin);
+    drop = (g_list_find (dbin->filtered, GST_MESSAGE_SRC (msg)) != NULL);
+    GST_OBJECT_UNLOCK (dbin);
+  }
+
+  if (drop)
+    gst_message_unref (msg);
+  else
+    GST_BIN_CLASS (parent_class)->handle_message (bin, msg);
+}
+
 gboolean
 gst_decode_bin_plugin_init (GstPlugin * plugin)
 {
@@ -3732,6 +4099,7 @@ gst_decode_bin_plugin_init (GstPlugin * plugin)
   topology_caps = g_quark_from_static_string ("caps");
   topology_next = g_quark_from_static_string ("next");
   topology_pad = g_quark_from_static_string ("pad");
+  topology_element_srcpad = g_quark_from_static_string ("element-srcpad");
 
   return gst_element_register (plugin, "decodebin2", GST_RANK_NONE,
       GST_TYPE_DECODE_BIN);
index 1e33f06..77a34cf 100644 (file)
@@ -56,6 +56,7 @@ GType gst_autoplug_select_result_get_type (void);
  * @GST_PLAY_FLAG_DOWNLOAD: enable progressice download buffering for selected
  *   formats.
  * @GST_PLAY_FLAG_BUFFERING: enable buffering of the demuxed or parsed data.
+ * @GST_PLAY_FLAG_DEINTERLACE: deinterlace raw video (if native not forced).
  *
  * Extra flags to configure the behaviour of the sinks.
  */
diff --git a/gst/playback/gstplay-marshal.c b/gst/playback/gstplay-marshal.c
new file mode 100644 (file)
index 0000000..514066a
--- /dev/null
@@ -0,0 +1,460 @@
+#include "gstplay-marshal.h"
+
+#include       <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v)     g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v)      g_value_get_int (v)
+#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+#define g_marshal_value_peek_long(v)     g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
+#define g_marshal_value_peek_float(v)    g_value_get_float (v)
+#define g_marshal_value_peek_double(v)   g_value_get_double (v)
+#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v)    g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ *          Do not access GValues directly in your code. Instead, use the
+ *          g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
+#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
+#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
+#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* BOOLEAN:OBJECT,BOXED (gstplay-marshal.list:1) */
+void
+gst_play_marshal_BOOLEAN__OBJECT_BOXED (GClosure     *closure,
+                                        GValue       *return_value G_GNUC_UNUSED,
+                                        guint         n_param_values,
+                                        const GValue *param_values,
+                                        gpointer      invocation_hint G_GNUC_UNUSED,
+                                        gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_BOXED) (gpointer     data1,
+                                                          gpointer     arg_1,
+                                                          gpointer     arg_2,
+                                                          gpointer     data2);
+  register GMarshalFunc_BOOLEAN__OBJECT_BOXED callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_object (param_values + 1),
+                       g_marshal_value_peek_boxed (param_values + 2),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOLEAN:OBJECT,OBJECT,OBJECT (gstplay-marshal.list:2) */
+void
+gst_play_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT (GClosure     *closure,
+                                                GValue       *return_value G_GNUC_UNUSED,
+                                                guint         n_param_values,
+                                                const GValue *param_values,
+                                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                                gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT) (gpointer     data1,
+                                                                  gpointer     arg_1,
+                                                                  gpointer     arg_2,
+                                                                  gpointer     arg_3,
+                                                                  gpointer     data2);
+  register GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_object (param_values + 1),
+                       g_marshal_value_peek_object (param_values + 2),
+                       g_marshal_value_peek_object (param_values + 3),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* BOXED:OBJECT,BOXED (gstplay-marshal.list:3) */
+void
+gst_play_marshal_BOXED__OBJECT_BOXED (GClosure     *closure,
+                                      GValue       *return_value G_GNUC_UNUSED,
+                                      guint         n_param_values,
+                                      const GValue *param_values,
+                                      gpointer      invocation_hint G_GNUC_UNUSED,
+                                      gpointer      marshal_data)
+{
+  typedef gpointer (*GMarshalFunc_BOXED__OBJECT_BOXED) (gpointer     data1,
+                                                        gpointer     arg_1,
+                                                        gpointer     arg_2,
+                                                        gpointer     data2);
+  register GMarshalFunc_BOXED__OBJECT_BOXED callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gpointer v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOXED__OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_object (param_values + 1),
+                       g_marshal_value_peek_boxed (param_values + 2),
+                       data2);
+
+  g_value_take_boxed (return_value, v_return);
+}
+
+/* VOID:OBJECT,BOOLEAN (gstplay-marshal.list:4) */
+void
+gst_play_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                       GValue       *return_value G_GNUC_UNUSED,
+                                       guint         n_param_values,
+                                       const GValue *param_values,
+                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                       gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gboolean     arg_2,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* ENUM:OBJECT,OBJECT,BOXED (gstplay-marshal.list:5) */
+void
+gst_play_marshal_ENUM__OBJECT_OBJECT_BOXED (GClosure     *closure,
+                                            GValue       *return_value G_GNUC_UNUSED,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint G_GNUC_UNUSED,
+                                            gpointer      marshal_data)
+{
+  typedef gint (*GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED) (gpointer     data1,
+                                                          gpointer     arg_1,
+                                                          gpointer     arg_2,
+                                                          gpointer     arg_3,
+                                                          gpointer     data2);
+  register GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gint v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_object (param_values + 1),
+                       g_marshal_value_peek_object (param_values + 2),
+                       g_marshal_value_peek_boxed (param_values + 3),
+                       data2);
+
+  g_value_set_enum (return_value, v_return);
+}
+
+/* ENUM:OBJECT,BOXED,OBJECT (gstplay-marshal.list:6) */
+void
+gst_play_marshal_ENUM__OBJECT_BOXED_OBJECT (GClosure     *closure,
+                                            GValue       *return_value G_GNUC_UNUSED,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint G_GNUC_UNUSED,
+                                            gpointer      marshal_data)
+{
+  typedef gint (*GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT) (gpointer     data1,
+                                                          gpointer     arg_1,
+                                                          gpointer     arg_2,
+                                                          gpointer     arg_3,
+                                                          gpointer     data2);
+  register GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gint v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_object (param_values + 1),
+                       g_marshal_value_peek_boxed (param_values + 2),
+                       g_marshal_value_peek_object (param_values + 3),
+                       data2);
+
+  g_value_set_enum (return_value, v_return);
+}
+
+/* BOXED:OBJECT,BOXED,BOXED (gstplay-marshal.list:7) */
+void
+gst_play_marshal_BOXED__OBJECT_BOXED_BOXED (GClosure     *closure,
+                                            GValue       *return_value G_GNUC_UNUSED,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint G_GNUC_UNUSED,
+                                            gpointer      marshal_data)
+{
+  typedef gpointer (*GMarshalFunc_BOXED__OBJECT_BOXED_BOXED) (gpointer     data1,
+                                                              gpointer     arg_1,
+                                                              gpointer     arg_2,
+                                                              gpointer     arg_3,
+                                                              gpointer     data2);
+  register GMarshalFunc_BOXED__OBJECT_BOXED_BOXED callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gpointer v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOXED__OBJECT_BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_object (param_values + 1),
+                       g_marshal_value_peek_boxed (param_values + 2),
+                       g_marshal_value_peek_boxed (param_values + 3),
+                       data2);
+
+  g_value_take_boxed (return_value, v_return);
+}
+
+/* BOXED:INT (gstplay-marshal.list:8) */
+void
+gst_play_marshal_BOXED__INT (GClosure     *closure,
+                             GValue       *return_value G_GNUC_UNUSED,
+                             guint         n_param_values,
+                             const GValue *param_values,
+                             gpointer      invocation_hint G_GNUC_UNUSED,
+                             gpointer      marshal_data)
+{
+  typedef gpointer (*GMarshalFunc_BOXED__INT) (gpointer     data1,
+                                               gint         arg_1,
+                                               gpointer     data2);
+  register GMarshalFunc_BOXED__INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gpointer v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOXED__INT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_int (param_values + 1),
+                       data2);
+
+  g_value_take_boxed (return_value, v_return);
+}
+
+/* OBJECT:BOXED (gstplay-marshal.list:9) */
+void
+gst_play_marshal_OBJECT__BOXED (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  typedef GObject* (*GMarshalFunc_OBJECT__BOXED) (gpointer     data1,
+                                                  gpointer     arg_1,
+                                                  gpointer     data2);
+  register GMarshalFunc_OBJECT__BOXED callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  GObject* v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_OBJECT__BOXED) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_boxed (param_values + 1),
+                       data2);
+
+  g_value_take_object (return_value, v_return);
+}
+
+/* OBJECT:INT (gstplay-marshal.list:10) */
+void
+gst_play_marshal_OBJECT__INT (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
+{
+  typedef GObject* (*GMarshalFunc_OBJECT__INT) (gpointer     data1,
+                                                gint         arg_1,
+                                                gpointer     data2);
+  register GMarshalFunc_OBJECT__INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  GObject* v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_OBJECT__INT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_int (param_values + 1),
+                       data2);
+
+  g_value_take_object (return_value, v_return);
+}
+
diff --git a/gst/playback/gstplay-marshal.h b/gst/playback/gstplay-marshal.h
new file mode 100644 (file)
index 0000000..069ffef
--- /dev/null
@@ -0,0 +1,92 @@
+
+#ifndef __gst_play_marshal_MARSHAL_H__
+#define __gst_play_marshal_MARSHAL_H__
+
+#include       <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* BOOLEAN:OBJECT,BOXED (gstplay-marshal.list:1) */
+extern void gst_play_marshal_BOOLEAN__OBJECT_BOXED (GClosure     *closure,
+                                                    GValue       *return_value,
+                                                    guint         n_param_values,
+                                                    const GValue *param_values,
+                                                    gpointer      invocation_hint,
+                                                    gpointer      marshal_data);
+
+/* BOOLEAN:OBJECT,OBJECT,OBJECT (gstplay-marshal.list:2) */
+extern void gst_play_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT (GClosure     *closure,
+                                                            GValue       *return_value,
+                                                            guint         n_param_values,
+                                                            const GValue *param_values,
+                                                            gpointer      invocation_hint,
+                                                            gpointer      marshal_data);
+
+/* BOXED:OBJECT,BOXED (gstplay-marshal.list:3) */
+extern void gst_play_marshal_BOXED__OBJECT_BOXED (GClosure     *closure,
+                                                  GValue       *return_value,
+                                                  guint         n_param_values,
+                                                  const GValue *param_values,
+                                                  gpointer      invocation_hint,
+                                                  gpointer      marshal_data);
+
+/* VOID:OBJECT,BOOLEAN (gstplay-marshal.list:4) */
+extern void gst_play_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                                   GValue       *return_value,
+                                                   guint         n_param_values,
+                                                   const GValue *param_values,
+                                                   gpointer      invocation_hint,
+                                                   gpointer      marshal_data);
+
+/* ENUM:OBJECT,OBJECT,BOXED (gstplay-marshal.list:5) */
+extern void gst_play_marshal_ENUM__OBJECT_OBJECT_BOXED (GClosure     *closure,
+                                                        GValue       *return_value,
+                                                        guint         n_param_values,
+                                                        const GValue *param_values,
+                                                        gpointer      invocation_hint,
+                                                        gpointer      marshal_data);
+
+/* ENUM:OBJECT,BOXED,OBJECT (gstplay-marshal.list:6) */
+extern void gst_play_marshal_ENUM__OBJECT_BOXED_OBJECT (GClosure     *closure,
+                                                        GValue       *return_value,
+                                                        guint         n_param_values,
+                                                        const GValue *param_values,
+                                                        gpointer      invocation_hint,
+                                                        gpointer      marshal_data);
+
+/* BOXED:OBJECT,BOXED,BOXED (gstplay-marshal.list:7) */
+extern void gst_play_marshal_BOXED__OBJECT_BOXED_BOXED (GClosure     *closure,
+                                                        GValue       *return_value,
+                                                        guint         n_param_values,
+                                                        const GValue *param_values,
+                                                        gpointer      invocation_hint,
+                                                        gpointer      marshal_data);
+
+/* BOXED:INT (gstplay-marshal.list:8) */
+extern void gst_play_marshal_BOXED__INT (GClosure     *closure,
+                                         GValue       *return_value,
+                                         guint         n_param_values,
+                                         const GValue *param_values,
+                                         gpointer      invocation_hint,
+                                         gpointer      marshal_data);
+
+/* OBJECT:BOXED (gstplay-marshal.list:9) */
+extern void gst_play_marshal_OBJECT__BOXED (GClosure     *closure,
+                                            GValue       *return_value,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint,
+                                            gpointer      marshal_data);
+
+/* OBJECT:INT (gstplay-marshal.list:10) */
+extern void gst_play_marshal_OBJECT__INT (GClosure     *closure,
+                                          GValue       *return_value,
+                                          guint         n_param_values,
+                                          const GValue *param_values,
+                                          gpointer      invocation_hint,
+                                          gpointer      marshal_data);
+
+G_END_DECLS
+
+#endif /* __gst_play_marshal_MARSHAL_H__ */
+
index 847e12f..7ab2c29 100644 (file)
@@ -29,6 +29,8 @@
 
 #include <gst/pbutils/pbutils.h>
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (gst_play_base_bin_debug);
 #define GST_CAT_DEFAULT gst_play_base_bin_debug
 
@@ -705,7 +707,7 @@ queue_threshold_reached (GstElement * queue, GstPlayBaseBin * play_base_bin)
 /* this signal will be fired when one of the queues with raw
  * data is filled. This means that the group building stage is over
  * and playback of the new queued group should start. This is a rather unusual
- * situation because normally the group is commited when the "no_more_pads"
+ * situation because normally the group is committed when the "no_more_pads"
  * signal is fired.
  */
 static void
@@ -732,11 +734,11 @@ queue_out_of_data (GstElement * queue, GstPlayBaseBin * play_base_bin)
   GST_DEBUG_OBJECT (play_base_bin, "underrun signal received from queue %s",
       GST_ELEMENT_NAME (queue));
 
-  /* On underrun, we want to temoprarily pause playback, set a "min-size"
+  /* On underrun, we want to temporarily pause playback, set a "min-size"
    * threshold and wait for the running signal and then play again.
    *
    * This signal could never be called because the queue max-size limits are set
-   * too low. We take care of this possible deadlock in the the overrun signal
+   * too low. We take care of this possible deadlock in the overrun signal
    * handler. */
   g_signal_connect (G_OBJECT (queue), "pushing",
       G_CALLBACK (queue_threshold_reached), play_base_bin);
@@ -797,10 +799,9 @@ gen_preroll_element (GstPlayBaseBin * play_base_bin,
     g_return_if_reached ();
 
   /* create stream selector */
-  selector = g_object_new (GST_TYPE_STREAM_SELECTOR, NULL);
   padname = gst_pad_get_name (pad);
   name = g_strdup_printf ("selector_%s_%s", prename, padname);
-  gst_object_set_name (GST_OBJECT_CAST (selector), name);
+  selector = g_object_new (GST_TYPE_STREAM_SELECTOR, "name", name, NULL);
   g_free (name);
 
   /* create preroll queue */
@@ -890,7 +891,7 @@ gen_preroll_element (GstPlayBaseBin * play_base_bin,
 
     gst_object_unref (sinkpad);
 
-    /* When we connect this queue, it will start running and immediatly
+    /* When we connect this queue, it will start running and immediately
      * fire an underrun. */
     g_signal_connect (G_OBJECT (preroll), "underrun",
         G_CALLBACK (queue_out_of_data), play_base_bin);
@@ -1895,7 +1896,7 @@ analyse_source (GstPlayBaseBin * play_base_bin, gboolean * is_raw,
         gst_iterator_resync (pads_iter);
         break;
       case GST_ITERATOR_OK:
-        /* we now officially have an ouput pad */
+        /* we now officially have an output pad */
         *have_out = TRUE;
 
         /* if FALSE, this pad has no caps and we continue with the next pad. */
index c8c8649..deceadf 100644 (file)
@@ -108,7 +108,7 @@ struct _GstPlayBaseBin {
 struct _GstPlayBaseBinClass {
   GstPipelineClass parent_class;
 
-  /* virtual fuctions */
+  /* virtual functions */
   gboolean (*setup_output_pads) (GstPlayBaseBin *play_base_bin,
                                  GstPlayBaseGroup *group);
 
index 57b5dbe..8597cff 100644 (file)
  * GNOME-based applications, for example, will usually want to create
  * gconfaudiosink and gconfvideosink elements and make playbin use those,
  * so that output happens to whatever the user has configured in the GNOME
- * Multimedia System Selector confinguration dialog.
+ * Multimedia System Selector configuration dialog.
  *
  * The sink elements do not necessarily need to be ready-made sinks. It is
  * possible to create container elements that look like a sink to playbin,
@@ -859,7 +859,7 @@ gen_video_element (GstPlayBin * play_bin)
   element = gst_bin_new ("vbin");
   gst_bin_add (GST_BIN_CAST (element), sink);
 
-  conv = gst_element_factory_make ("ffmpegcolorspace", "vconv");
+  conv = gst_element_factory_make (COLORSPACE, "vconv");
   if (conv == NULL)
     goto no_colorspace;
   gst_bin_add (GST_BIN_CAST (element), conv);
@@ -905,10 +905,10 @@ no_sinks:
   }
 no_colorspace:
   {
-    post_missing_element_message (play_bin, "ffmpegcolorspace");
+    post_missing_element_message (play_bin, COLORSPACE);
     GST_ELEMENT_ERROR (play_bin, CORE, MISSING_PLUGIN,
         (_("Missing element '%s' - check your GStreamer installation."),
-            "ffmpegcolorspace"), (NULL));
+            COLORSPACE), (NULL));
     gst_object_unref (element);
     return NULL;
   }
@@ -972,7 +972,7 @@ add_text_element (GstPlayBin * play_bin, GstElement * vbin)
   play_bin->textoverlay_element = GST_ELEMENT_CAST (gst_object_ref (overlay));
 
   /* we know this will succeed, as the video bin already created one before */
-  csp = gst_element_factory_make ("ffmpegcolorspace", "subtitlecsp");
+  csp = gst_element_factory_make (COLORSPACE, "subtitlecsp");
 
   /* Add our elements */
   gst_bin_add_many (GST_BIN_CAST (element), csp, overlay, vbin, NULL);
@@ -1046,7 +1046,7 @@ add_spu_element (GstPlayBin * play_bin, GstElement * vbin)
   play_bin->spu_element = GST_ELEMENT_CAST (gst_object_ref (overlay));
 
   /* we know this will succeed, as the video bin already created one before */
-  csp = gst_element_factory_make ("ffmpegcolorspace", "spucsp");
+  csp = gst_element_factory_make (COLORSPACE, "spucsp");
 
   /* Add our elements */
   gst_bin_add_many (GST_BIN_CAST (element), csp, overlay, vbin, NULL);
@@ -1207,7 +1207,7 @@ link_failed:
 }
 
 /* make the element (bin) that contains the elements needed to perform
- * visualisation ouput.  The idea is to split the audio using tee, then
+ * visualisation output.  The idea is to split the audio using tee, then
  * sending the output to the regular audio bin and the other output to
  * the vis plugin that transforms it into a video that is rendered with the
  * normal video bin. The video and audio bins are run in threads to make sure
@@ -1519,7 +1519,7 @@ add_sink (GstPlayBin * play_bin, GstElement * sink, GstPad * srcpad,
     goto subtitle_failed;
 
 done:
-  /* we got the sink succesfully linked, now keep the sink
+  /* we got the sink successfully linked, now keep the sink
    * in our internal list */
   play_bin->sinks = g_list_prepend (play_bin->sinks, sink);
 
@@ -1791,7 +1791,7 @@ gst_play_bin_send_event_to_sink (GstPlayBin * play_bin, GstEvent * event)
     gst_event_ref (event);
     if ((res = gst_element_send_event (sink, event))) {
       GST_DEBUG_OBJECT (play_bin,
-          "Sent event succesfully to sink %" GST_PTR_FORMAT, sink);
+          "Sent event successfully to sink %" GST_PTR_FORMAT, sink);
       break;
     }
     GST_DEBUG_OBJECT (play_bin,
index 5f0f964..e01ff6c 100644 (file)
@@ -1,5 +1,6 @@
 /* GStreamer
  * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include <string.h>
 #include <gst/gst.h>
 
 #include "gstplaysink.h"
 #include "gstsubtitleoverlay.h"
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (gst_play_bin_debug);
 #define GST_CAT_DEFAULT gst_play_bin_debug
 
@@ -271,6 +278,14 @@ struct _GstSourceSelect
 #define GST_SOURCE_GROUP_LOCK(group) (g_mutex_lock (GST_SOURCE_GROUP_GET_LOCK(group)))
 #define GST_SOURCE_GROUP_UNLOCK(group) (g_mutex_unlock (GST_SOURCE_GROUP_GET_LOCK(group)))
 
+enum
+{
+  PLAYBIN_STREAM_AUDIO = 0,
+  PLAYBIN_STREAM_VIDEO,
+  PLAYBIN_STREAM_TEXT,
+  PLAYBIN_STREAM_LAST
+};
+
 /* a structure to hold the objects for decoding a uri and the subtitle uri
  */
 struct _GstSourceGroup
@@ -319,7 +334,7 @@ struct _GstSourceGroup
   GList *stream_changed_pending;
 
   /* selectors for different streams */
-  GstSourceSelect selector[GST_PLAY_SINK_TYPE_LAST];
+  GstSourceSelect selector[PLAYBIN_STREAM_LAST];
 };
 
 #define GST_PLAY_BIN_GET_LOCK(bin) (&((GstPlayBin*)(bin))->lock)
@@ -816,6 +831,8 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    *
    * This signal is emitted when the current uri is about to finish. You can
    * set the uri and suburi to make sure that playback continues.
+   *
+   * This signal is emitted from the context of a GStreamer streaming thread.
    */
   gst_play_bin_signals[SIGNAL_ABOUT_TO_FINISH] =
       g_signal_new ("about-to-finish", G_TYPE_FROM_CLASS (klass),
@@ -830,7 +847,12 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * This signal is emitted whenever the number or order of the video
    * streams has changed. The application will most likely want to select
    * a new video stream.
+   *
+   * This signal is usually emitted from the context of a GStreamer streaming
+   * thread. You can use gst_message_new_application() and
+   * gst_element_post_message() to notify your application's main thread.
    */
+  /* FIXME 0.11: turn video-changed signal into message? */
   gst_play_bin_signals[SIGNAL_VIDEO_CHANGED] =
       g_signal_new ("video-changed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST,
@@ -843,7 +865,12 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * This signal is emitted whenever the number or order of the audio
    * streams has changed. The application will most likely want to select
    * a new audio stream.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
    */
+  /* FIXME 0.11: turn audio-changed signal into message? */
   gst_play_bin_signals[SIGNAL_AUDIO_CHANGED] =
       g_signal_new ("audio-changed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST,
@@ -856,7 +883,12 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * This signal is emitted whenever the number or order of the text
    * streams has changed. The application will most likely want to select
    * a new text stream.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
    */
+  /* FIXME 0.11: turn text-changed signal into message? */
   gst_play_bin_signals[SIGNAL_TEXT_CHANGED] =
       g_signal_new ("text-changed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST,
@@ -871,6 +903,10 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * This signal is emitted whenever the tags of a video stream have changed.
    * The application will most likely want to get the new tags.
    *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   *
    * Since: 0.10.24
    */
   gst_play_bin_signals[SIGNAL_VIDEO_TAGS_CHANGED] =
@@ -887,6 +923,10 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * This signal is emitted whenever the tags of an audio stream have changed.
    * The application will most likely want to get the new tags.
    *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   *
    * Since: 0.10.24
    */
   gst_play_bin_signals[SIGNAL_AUDIO_TAGS_CHANGED] =
@@ -903,6 +943,10 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * This signal is emitted whenever the tags of a text stream have changed.
    * The application will most likely want to get the new tags.
    *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   *
    * Since: 0.10.24
    */
   gst_play_bin_signals[SIGNAL_TEXT_TAGS_CHANGED] =
@@ -922,6 +966,9 @@ gst_play_bin_class_init (GstPlayBinClass * klass)
    * an audio cd source). This is functionally equivalent to connecting to
    * the notify::source signal, but more convenient.
    *
+   * This signal is usually emitted from the context of a GStreamer streaming
+   * thread.
+   *
    * Since: 0.10.33
    */
   gst_play_bin_signals[SIGNAL_SOURCE_SETUP] =
@@ -1087,32 +1134,27 @@ init_group (GstPlayBin * playbin, GstSourceGroup * group)
    * matches the media. */
   group->playbin = playbin;
   /* If you add any items to these lists, check that media_list[] is defined
-   * above to be large enough to hold MAX(items)+1, so as to accomodate a
+   * above to be large enough to hold MAX(items)+1, so as to accommodate a
    * NULL terminator (set when the memory is zeroed on allocation) */
-  group->selector[0].media_list[0] = "audio/x-raw-";
-  group->selector[0].type = GST_PLAY_SINK_TYPE_AUDIO_RAW;
-  group->selector[0].channels = group->audio_channels;
-  group->selector[1].media_list[0] = "audio/";
-  group->selector[1].type = GST_PLAY_SINK_TYPE_AUDIO;
-  group->selector[1].channels = group->audio_channels;
-  group->selector[2].media_list[0] = "text/";
-  group->selector[2].media_list[1] = "application/x-subtitle";
-  group->selector[2].media_list[2] = "application/x-ssa";
-  group->selector[2].media_list[3] = "application/x-ass";
-  group->selector[2].media_list[4] = "video/x-dvd-subpicture";
-  group->selector[2].media_list[5] = "subpicture/";
-  group->selector[2].media_list[6] = "subtitle/";
-  group->selector[2].get_media_caps = gst_subtitle_overlay_create_factory_caps;
-  group->selector[2].type = GST_PLAY_SINK_TYPE_TEXT;
-  group->selector[2].channels = group->text_channels;
-  group->selector[3].media_list[0] = "video/x-raw-";
-  group->selector[3].type = GST_PLAY_SINK_TYPE_VIDEO_RAW;
-  group->selector[3].channels = group->video_channels;
-  group->selector[4].media_list[0] = "video/";
-  group->selector[4].type = GST_PLAY_SINK_TYPE_VIDEO;
-  group->selector[4].channels = group->video_channels;
-
-  for (n = 0; n < GST_PLAY_SINK_TYPE_LAST; n++) {
+  group->selector[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
+  group->selector[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
+  group->selector[PLAYBIN_STREAM_AUDIO].channels = group->audio_channels;
+  group->selector[PLAYBIN_STREAM_VIDEO].media_list[0] = "video/";
+  group->selector[PLAYBIN_STREAM_VIDEO].type = GST_PLAY_SINK_TYPE_VIDEO;
+  group->selector[PLAYBIN_STREAM_VIDEO].channels = group->video_channels;
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[0] = "text/";
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[1] = "application/x-subtitle";
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[2] = "application/x-ssa";
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[3] = "application/x-ass";
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[4] = "video/x-dvd-subpicture";
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[5] = "subpicture/";
+  group->selector[PLAYBIN_STREAM_TEXT].media_list[6] = "subtitle/";
+  group->selector[PLAYBIN_STREAM_TEXT].get_media_caps =
+      gst_subtitle_overlay_create_factory_caps;
+  group->selector[PLAYBIN_STREAM_TEXT].type = GST_PLAY_SINK_TYPE_TEXT;
+  group->selector[PLAYBIN_STREAM_TEXT].channels = group->text_channels;
+
+  for (n = 0; n < PLAYBIN_STREAM_LAST; n++) {
     GstSourceSelect *select = &group->selector[n];
     select->sinkpad_delayed_event = NULL;
     select->sinkpad_data_probe = 0;
@@ -1124,7 +1166,7 @@ free_group (GstPlayBin * playbin, GstSourceGroup * group)
 {
   int n;
 
-  for (n = 0; n < GST_PLAY_SINK_TYPE_LAST; n++) {
+  for (n = 0; n < PLAYBIN_STREAM_LAST; n++) {
     GstSourceSelect *select = &group->selector[n];
     if (select->sinkpad && select->sinkpad_data_probe)
       gst_pad_remove_data_probe (select->sinkpad, select->sinkpad_data_probe);
@@ -1268,6 +1310,34 @@ gst_play_bin_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static gboolean
+gst_playbin_uri_is_valid (GstPlayBin * playbin, const gchar * uri)
+{
+  const gchar *c;
+
+  GST_LOG_OBJECT (playbin, "checking uri '%s'", uri);
+
+  /* this just checks the protocol */
+  if (!gst_uri_is_valid (uri))
+    return FALSE;
+
+  for (c = uri; *c != '\0'; ++c) {
+    if (!g_ascii_isprint (*c))
+      goto invalid;
+    if (*c == ' ')
+      goto invalid;
+  }
+
+  return TRUE;
+
+invalid:
+  {
+    GST_WARNING_OBJECT (playbin, "uri '%s' not valid, character #%u",
+        uri, (guint) ((guintptr) c - (guintptr) uri));
+    return FALSE;
+  }
+}
+
 static void
 gst_play_bin_set_uri (GstPlayBin * playbin, const gchar * uri)
 {
@@ -1278,6 +1348,17 @@ gst_play_bin_set_uri (GstPlayBin * playbin, const gchar * uri)
     return;
   }
 
+  if (!gst_playbin_uri_is_valid (playbin, uri)) {
+    if (g_str_has_prefix (uri, "file:")) {
+      GST_WARNING_OBJECT (playbin, "not entirely correct file URI '%s' - make "
+          "sure to escape spaces and non-ASCII characters properly and specify "
+          "an absolute path. Use gst_filename_to_uri() to convert filenames "
+          "to URIs", uri);
+    } else {
+      /* GST_ERROR_OBJECT (playbin, "malformed URI '%s'", uri); */
+    }
+  }
+
   GST_PLAY_BIN_LOCK (playbin);
   group = playbin->next_group;
 
@@ -1493,6 +1574,10 @@ gst_play_bin_set_current_video_stream (GstPlayBin * playbin, gint stream)
   GstPad *sinkpad;
 
   GST_PLAY_BIN_LOCK (playbin);
+
+  GST_DEBUG_OBJECT (playbin, "Changing current video stream %d -> %d",
+      playbin->current_video, stream);
+
   group = get_group (playbin);
   if (!(channels = group->video_channels))
     goto no_channels;
@@ -1536,6 +1621,10 @@ gst_play_bin_set_current_audio_stream (GstPlayBin * playbin, gint stream)
   GstPad *sinkpad;
 
   GST_PLAY_BIN_LOCK (playbin);
+
+  GST_DEBUG_OBJECT (playbin, "Changing current audio stream %d -> %d",
+      playbin->current_audio, stream);
+
   group = get_group (playbin);
   if (!(channels = group->audio_channels))
     goto no_channels;
@@ -1647,6 +1736,10 @@ gst_play_bin_set_current_text_stream (GstPlayBin * playbin, gint stream)
   GstPad *sinkpad;
 
   GST_PLAY_BIN_LOCK (playbin);
+
+  GST_DEBUG_OBJECT (playbin, "Changing current text stream %d -> %d",
+      playbin->current_text, stream);
+
   group = get_group (playbin);
   if (!(channels = group->text_channels))
     goto no_channels;
@@ -2306,7 +2399,7 @@ selector_active_pad_changed (GObject * selector, GParamSpec * pspec,
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
 
-  for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
     if (selector == G_OBJECT (group->selector[i].selector)) {
       select = &group->selector[i];
     }
@@ -2387,12 +2480,14 @@ stream_changed_data_probe (GstPad * pad, GstMiniObject * object, gpointer data)
 
 /* helper function to lookup stuff in lists */
 static gboolean
-array_has_value (const gchar * values[], const gchar * value)
+array_has_value (const gchar * values[], const gchar * value, gboolean exact)
 {
   gint i;
 
   for (i = 0; values[i]; i++) {
-    if (g_str_has_prefix (value, values[i]))
+    if (exact && !strcmp (value, values[i]))
+      return TRUE;
+    if (!exact && g_str_has_prefix (value, values[i]))
       return TRUE;
   }
   return FALSE;
@@ -2450,7 +2545,7 @@ pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
   GstPad *sinkpad;
   GstPadLinkReturn res;
   GstSourceSelect *select = NULL;
-  gint i;
+  gint i, pass;
   gboolean changed = FALSE;
 
   playbin = group->playbin;
@@ -2463,20 +2558,24 @@ pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
       "pad %s:%s with caps %" GST_PTR_FORMAT " added in group %p",
       GST_DEBUG_PAD_NAME (pad), caps, group);
 
-  /* major type of the pad, this determines the selector to use */
-  for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
-    if (array_has_value (group->selector[i].media_list, name)) {
-      select = &group->selector[i];
-      break;
-    } else if (group->selector[i].get_media_caps) {
-      GstCaps *media_caps = group->selector[i].get_media_caps ();
-
-      if (media_caps && gst_caps_can_intersect (media_caps, caps)) {
+  /* major type of the pad, this determines the selector to use,
+     try exact match first so we don't prematurely match video/
+     for video/x-dvd-subpicture */
+  for (pass = 0; !select && pass < 2; pass++) {
+    for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+      if (array_has_value (group->selector[i].media_list, name, pass == 0)) {
         select = &group->selector[i];
-        gst_caps_unref (media_caps);
         break;
+      } else if (group->selector[i].get_media_caps) {
+        GstCaps *media_caps = group->selector[i].get_media_caps ();
+
+        if (media_caps && gst_caps_can_intersect (media_caps, caps)) {
+          select = &group->selector[i];
+          gst_caps_unref (media_caps);
+          break;
+        }
+        gst_caps_unref (media_caps);
       }
-      gst_caps_unref (media_caps);
     }
   }
   /* no selector found for the media type, don't bother linking it to a
@@ -2499,6 +2598,8 @@ pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
           (_("Missing element '%s' - check your GStreamer installation."),
               "input-selector"), (NULL));
     } else {
+      g_object_set (select->selector, "sync-streams", TRUE, NULL);
+
       g_signal_connect (select->selector, "notify::active-pad",
           G_CALLBACK (selector_active_pad_changed), playbin);
 
@@ -2550,7 +2651,7 @@ pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
           G_CALLBACK (notify_tags_cb), ntdata, (GClosureNotify) g_free,
           (GConnectFlags) 0);
       g_object_set_data (G_OBJECT (sinkpad), "playbin2.notify_tags_handler",
-          (gpointer) notify_tags_handler);
+          (gpointer) (guintptr) notify_tags_handler);
 
       /* store the pad in the array */
       GST_DEBUG_OBJECT (playbin, "pad %p added to array", sinkpad);
@@ -2652,7 +2753,7 @@ pad_removed_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
     gulong notify_tags_handler;
 
     notify_tags_handler =
-        (gulong) g_object_get_data (G_OBJECT (peer),
+        (guintptr) g_object_get_data (G_OBJECT (peer),
         "playbin2.notify_tags_handler");
     if (notify_tags_handler != 0)
       g_signal_handler_disconnect (G_OBJECT (peer), notify_tags_handler);
@@ -2723,7 +2824,7 @@ no_more_pads_cb (GstElement * decodebin, GstSourceGroup * group)
   GST_PLAY_BIN_SHUTDOWN_LOCK (playbin, shutdown);
 
   GST_SOURCE_GROUP_LOCK (group);
-  for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
     GstSourceSelect *select = &group->selector[i];
 
     /* check if the specific media type was detected and thus has a selector
@@ -2769,31 +2870,33 @@ no_more_pads_cb (GstElement * decodebin, GstSourceGroup * group)
     /* if we have custom sinks, configure them now */
     GST_SOURCE_GROUP_LOCK (group);
 
-    GST_INFO_OBJECT (playbin, "setting custom audio sink %" GST_PTR_FORMAT,
-        group->audio_sink);
-    gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO,
-        group->audio_sink);
+    if (group->audio_sink) {
+      GST_INFO_OBJECT (playbin, "setting custom audio sink %" GST_PTR_FORMAT,
+          group->audio_sink);
+      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO,
+          group->audio_sink);
+    }
 
-    GST_INFO_OBJECT (playbin, "setting custom video sink %" GST_PTR_FORMAT,
-        group->video_sink);
-    gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
-        group->video_sink);
+    if (group->video_sink) {
+      GST_INFO_OBJECT (playbin, "setting custom video sink %" GST_PTR_FORMAT,
+          group->video_sink);
+      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
+          group->video_sink);
+    }
 
-    GST_INFO_OBJECT (playbin, "setting custom text sink %" GST_PTR_FORMAT,
-        playbin->text_sink);
-    gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT,
-        playbin->text_sink);
+    if (playbin->text_sink) {
+      GST_INFO_OBJECT (playbin, "setting custom text sink %" GST_PTR_FORMAT,
+          playbin->text_sink);
+      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT,
+          playbin->text_sink);
+    }
 
     GST_SOURCE_GROUP_UNLOCK (group);
 
-    GST_LOG_OBJECT (playbin, "reconfigure sink");
-    /* we configure the modes if we were the last decodebin to complete. */
-    gst_play_sink_reconfigure (playbin->playsink);
-
     /* signal the other decodebins that they can continue now. */
     GST_SOURCE_GROUP_LOCK (group);
     /* unblock all selectors */
-    for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+    for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
       GstSourceSelect *select = &group->selector[i];
 
       /* All streamsynchronizer streams should see stream-changed message,
@@ -2859,7 +2962,7 @@ shutdown:
      * instead of a NOT_LINKED error.
      */
     GST_SOURCE_GROUP_LOCK (group);
-    for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+    for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
       GstSourceSelect *select = &group->selector[i];
 
       if (select->srcpad) {
@@ -2900,6 +3003,34 @@ drained_cb (GstElement * decodebin, GstSourceGroup * group)
   setup_next_source (playbin, GST_STATE_PAUSED);
 }
 
+/* Like gst_element_factory_can_sink_any_caps() but doesn't
+ * allow ANY caps on the sinkpad template */
+static gboolean
+_factory_can_sink_caps (GstElementFactory * factory, GstCaps * caps)
+{
+  const GList *templs;
+
+  templs = gst_element_factory_get_static_pad_templates (factory);
+
+  while (templs) {
+    GstStaticPadTemplate *templ = (GstStaticPadTemplate *) templs->data;
+
+    if (templ->direction == GST_PAD_SINK) {
+      GstCaps *templcaps = gst_static_caps_get (&templ->static_caps);
+
+      if (!gst_caps_is_any (templcaps)
+          && gst_caps_can_intersect (templcaps, caps)) {
+        gst_caps_unref (templcaps);
+        return TRUE;
+      }
+      gst_caps_unref (templcaps);
+    }
+    templs = g_list_next (templs);
+  }
+
+  return FALSE;
+}
+
 /* Called when we must provide a list of factories to plug to @pad with @caps.
  * We first check if we have a sink that can handle the format and if we do, we
  * return NULL, to expose the pad. If we have no sink (or the sink does not
@@ -2928,12 +3059,52 @@ autoplug_factories_cb (GstElement * decodebin, GstPad * pad,
   GST_DEBUG_OBJECT (playbin, "found factories %p", mylist);
   GST_PLUGIN_FEATURE_LIST_DEBUG (mylist);
 
-  result = g_value_array_new (g_list_length (mylist));
+  /* 2 additional elements for the already set audio/video sinks */
+  result = g_value_array_new (g_list_length (mylist) + 2);
+
+  /* Check if we already have an audio/video sink and if this is the case
+   * put it as the first element of the array */
+  if (group->audio_sink) {
+    GstElementFactory *factory = gst_element_get_factory (group->audio_sink);
+
+    if (factory && _factory_can_sink_caps (factory, caps)) {
+      GValue val = { 0, };
+
+      g_value_init (&val, G_TYPE_OBJECT);
+      g_value_set_object (&val, factory);
+      result = g_value_array_append (result, &val);
+      g_value_unset (&val);
+    }
+  }
+
+  if (group->video_sink) {
+    GstElementFactory *factory = gst_element_get_factory (group->video_sink);
+
+    if (factory && _factory_can_sink_caps (factory, caps)) {
+      GValue val = { 0, };
+
+      g_value_init (&val, G_TYPE_OBJECT);
+      g_value_set_object (&val, factory);
+      result = g_value_array_append (result, &val);
+      g_value_unset (&val);
+    }
+  }
 
   for (tmp = mylist; tmp; tmp = tmp->next) {
     GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (tmp->data);
     GValue val = { 0, };
 
+    if (group->audio_sink && gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_SINK |
+            GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+      continue;
+    }
+    if (group->video_sink && gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_SINK | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
+            | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+      continue;
+    }
+
     g_value_init (&val, G_TYPE_OBJECT);
     g_value_set_object (&val, factory);
     g_value_array_append (result, &val);
@@ -2949,7 +3120,7 @@ autoplug_factories_cb (GstElement * decodebin, GstPad * pad,
  * supported subtitles directly */
 
 /* FIXME 0.11: Remove the checks for ANY caps, a sink should specify
- * explicitely the caps it supports and if it claims to support ANY
+ * explicitly the caps it supports and if it claims to support ANY
  * caps it really should support everything */
 static gboolean
 autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
@@ -2980,7 +3151,7 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
     gst_object_unref (sinkpad);
   } else {
     GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
-    ret = !gst_caps_can_intersect (caps, subcaps);
+    ret = !gst_caps_is_subset (caps, subcaps);
     gst_caps_unref (subcaps);
   }
   /* If autoplugging can stop don't do additional checks */
@@ -3072,6 +3243,11 @@ sink_accepts_caps (GstElement * sink, GstCaps * caps)
   return TRUE;
 }
 
+static GstStaticCaps raw_audio_caps = GST_STATIC_CAPS ("audio/x-raw-int; "
+    "audio/x-raw-float");
+static GstStaticCaps raw_video_caps = GST_STATIC_CAPS ("video/x-raw-rgb; "
+    "video/x-raw-yuv; " "video/x-raw-gray");
+
 /* We are asked to select an element. See if the next element to check
  * is a sink. If this is the case, we see if the sink works by setting it to
  * READY. If the sink works, we return SELECT_EXPOSE to make decodebin
@@ -3094,10 +3270,75 @@ autoplug_select_cb (GstElement * decodebin, GstPad * pad,
   GST_DEBUG_OBJECT (playbin, "checking factory %s",
       GST_PLUGIN_FEATURE_NAME (factory));
 
-  /* if it's not a sink, we just make decodebin try it */
+  /* if it's not a sink, we make sure the element is compatible with
+   * the fixed sink */
   if (!gst_element_factory_list_is_type (factory,
-          GST_ELEMENT_FACTORY_TYPE_SINK))
-    return GST_AUTOPLUG_SELECT_TRY;
+          GST_ELEMENT_FACTORY_TYPE_SINK)) {
+    gboolean isvideodec = gst_element_factory_list_is_type (factory,
+        GST_ELEMENT_FACTORY_TYPE_DECODER |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE);
+    gboolean isaudiodec = gst_element_factory_list_is_type (factory,
+        GST_ELEMENT_FACTORY_TYPE_DECODER |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO);
+
+    /* If it is a decoder and we have a fixed sink for the media
+     * type it outputs, check that the decoder is compatible with this sink */
+    if ((isvideodec && group->video_sink) || (isaudiodec && group->audio_sink)) {
+      gboolean compatible = TRUE;
+      GstPad *sinkpad;
+      GstCaps *caps;
+      GstElement *sink;
+
+      if (isaudiodec)
+        sink = group->audio_sink;
+      else
+        sink = group->video_sink;
+
+      if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
+        GstPlayFlags flags = gst_play_bin_get_flags (playbin);
+        GstCaps *raw_caps =
+            (isaudiodec) ? gst_static_caps_get (&raw_audio_caps) :
+            gst_static_caps_get (&raw_video_caps);
+
+        caps = gst_pad_get_caps_reffed (sinkpad);
+
+        /* If the sink supports raw audio/video, we first check
+         * if the decoder could output any raw audio/video format
+         * and assume it is compatible with the sink then. We don't
+         * do a complete compatibility check here if converters
+         * are plugged between the decoder and the sink because
+         * the converters will convert between raw formats and
+         * even if the decoder format is not supported by the decoder
+         * a converter will convert it.
+         *
+         * We assume here that the converters can convert between
+         * any raw format.
+         */
+        if ((isaudiodec && !(flags & GST_PLAY_FLAG_NATIVE_AUDIO)
+                && gst_caps_can_intersect (caps, raw_caps)) || (!isaudiodec
+                && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO)
+                && gst_caps_can_intersect (caps, raw_caps))) {
+          compatible = gst_element_factory_can_src_any_caps (factory, raw_caps)
+              || gst_element_factory_can_src_any_caps (factory, caps);
+        } else {
+          compatible = gst_element_factory_can_src_any_caps (factory, caps);
+        }
+
+        gst_object_unref (sinkpad);
+        gst_caps_unref (caps);
+      }
+
+      if (compatible)
+        return GST_AUTOPLUG_SELECT_TRY;
+
+      GST_DEBUG_OBJECT (playbin, "%s not compatible with the fixed sink",
+          GST_PLUGIN_FEATURE_NAME (factory));
+
+      return GST_AUTOPLUG_SELECT_SKIP;
+    } else
+      return GST_AUTOPLUG_SELECT_TRY;
+  }
 
   /* it's a sink, see if an instance of it actually works */
   GST_DEBUG_OBJECT (playbin, "we found a sink");
@@ -3457,7 +3698,7 @@ deactivate_group (GstPlayBin * playbin, GstSourceGroup * group)
 
   GST_SOURCE_GROUP_LOCK (group);
   group->active = FALSE;
-  for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
     GstSourceSelect *select = &group->selector[i];
 
     GST_DEBUG_OBJECT (playbin, "unlinking selector %s", select->media_list[0]);
@@ -3605,7 +3846,7 @@ save_current_group (GstPlayBin * playbin)
   /* see if there is a current group */
   GST_PLAY_BIN_LOCK (playbin);
   curr_group = playbin->curr_group;
-  if (curr_group && curr_group->valid) {
+  if (curr_group && curr_group->valid && curr_group->active) {
     /* unlink our pads with the sink */
     deactivate_group (playbin, curr_group);
   }
index 326baa6..b6e62d3 100644 (file)
@@ -1,5 +1,6 @@
 /* GStreamer
  * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include <string.h>
 #include <gst/gst.h>
 
@@ -30,6 +35,8 @@
 
 #include "gstplaysink.h"
 #include "gststreamsynchronizer.h"
+#include "gstplaysinkvideoconvert.h"
+#include "gstplaysinkaudioconvert.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_play_sink_debug);
 #define GST_CAT_DEFAULT gst_play_sink_debug
@@ -58,7 +65,6 @@ typedef struct
   GstPad *sinkpad;
   GstElement *queue;
   GstElement *conv;
-  GstElement *resample;
   GstElement *volume;           /* element with the volume property */
   gboolean sink_volume;         /* if the volume was provided by the sink */
   GstElement *mute;             /* element with the mute property */
@@ -80,7 +86,6 @@ typedef struct
   GstPad *sinkpad;
   GstElement *queue;
   GstElement *conv;
-  GstElement *scale;
   GstElement *sink;
   gboolean async;
   GstElement *ts_offset;
@@ -126,6 +131,19 @@ typedef struct
   g_static_rec_mutex_unlock (GST_PLAY_SINK_GET_LOCK (playsink)); \
 } G_STMT_END
 
+#define PENDING_FLAG_SET(playsink, flagtype) \
+  ((playsink->pending_blocked_pads) |= (1 << flagtype))
+#define PENDING_FLAG_UNSET(playsink, flagtype) \
+  ((playsink->pending_blocked_pads) &= ~(1 << flagtype))
+#define PENDING_FLAG_IS_SET(playsink, flagtype) \
+  ((playsink->pending_blocked_pads) & (1 << flagtype))
+#define PENDING_VIDEO_BLOCK(playsink) \
+  ((playsink->pending_blocked_pads) & (1 << GST_PLAY_SINK_TYPE_VIDEO_RAW | 1 << GST_PLAY_SINK_TYPE_VIDEO))
+#define PENDING_AUDIO_BLOCK(playsink) \
+  ((playsink->pending_blocked_pads) & (1 << GST_PLAY_SINK_TYPE_AUDIO_RAW | 1 << GST_PLAY_SINK_TYPE_AUDIO))
+#define PENDING_TEXT_BLOCK(playsink) \
+  PENDING_FLAG_IS_SET(playsink, GST_PLAY_SINK_TYPE_TEXT)
+
 struct _GstPlaySink
 {
   GstBin bin;
@@ -149,6 +167,7 @@ struct _GstPlaySink
   /* audio */
   GstPad *audio_pad;
   gboolean audio_pad_raw;
+  gboolean audio_pad_blocked;
   GstPad *audio_srcpad_stream_synchronizer;
   GstPad *audio_sinkpad_stream_synchronizer;
   /* audio tee */
@@ -159,13 +178,17 @@ struct _GstPlaySink
   /* video */
   GstPad *video_pad;
   gboolean video_pad_raw;
+  gboolean video_pad_blocked;
   GstPad *video_srcpad_stream_synchronizer;
   GstPad *video_sinkpad_stream_synchronizer;
   /* text */
   GstPad *text_pad;
+  gboolean text_pad_blocked;
   GstPad *text_srcpad_stream_synchronizer;
   GstPad *text_sinkpad_stream_synchronizer;
 
+  guint32 pending_blocked_pads;
+
   /* properties */
   GstElement *audio_sink;
   GstElement *video_sink;
@@ -191,31 +214,35 @@ struct _GstPlaySinkClass
   GstBuffer *(*convert_frame) (GstPlaySink * playsink, GstCaps * caps);
 };
 
-static GstStaticPadTemplate audiorawtemplate =
-GST_STATIC_PAD_TEMPLATE ("audio_raw_sink",
+
+static GstStaticPadTemplate audiotemplate =
+GST_STATIC_PAD_TEMPLATE ("audio_sink",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate audiotemplate =
-GST_STATIC_PAD_TEMPLATE ("audio_sink",
+static GstStaticPadTemplate videotemplate =
+GST_STATIC_PAD_TEMPLATE ("video_sink",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate videorawtemplate =
-GST_STATIC_PAD_TEMPLATE ("video_raw_sink",
+static GstStaticPadTemplate texttemplate = GST_STATIC_PAD_TEMPLATE ("text_sink",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate videotemplate =
-GST_STATIC_PAD_TEMPLATE ("video_sink",
+
+/* FIXME 0.11: Remove */
+static GstStaticPadTemplate audiorawtemplate =
+GST_STATIC_PAD_TEMPLATE ("audio_raw_sink",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate texttemplate = GST_STATIC_PAD_TEMPLATE ("text_sink",
+static GstStaticPadTemplate videorawtemplate =
+GST_STATIC_PAD_TEMPLATE ("video_raw_sink",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
 
+
 /* props */
 enum
 {
@@ -228,6 +255,9 @@ enum
   PROP_VIS_PLUGIN,
   PROP_FRAME,
   PROP_AV_OFFSET,
+  PROP_VIDEO_SINK,
+  PROP_AUDIO_SINK,
+  PROP_TEXT_SINK,
   PROP_LAST
 };
 
@@ -383,6 +413,44 @@ gst_play_sink_class_init (GstPlaySinkClass * klass)
           G_MININT64, G_MAXINT64, 0,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstPlaySink:video-sink:
+   *
+   * Set the used video sink element. NULL will use the default sink. playsink
+   * must be in %GST_STATE_NULL
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (gobject_klass, PROP_VIDEO_SINK,
+      g_param_spec_object ("video-sink", "Video Sink",
+          "the video output element to use (NULL = default sink)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlaySink:audio-sink:
+   *
+   * Set the used audio sink element. NULL will use the default sink. playsink
+   * must be in %GST_STATE_NULL
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (gobject_klass, PROP_AUDIO_SINK,
+      g_param_spec_object ("audio-sink", "Audio Sink",
+          "the audio output element to use (NULL = default sink)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlaySink:text-sink:
+   *
+   * Set the used text sink element. NULL will use the default sink. playsink
+   * must be in %GST_STATE_NULL
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (gobject_klass, PROP_TEXT_SINK,
+      g_param_spec_object ("text-sink", "Text sink",
+          "the text output element to use (NULL = default textoverlay)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+
   g_signal_new ("reconfigure", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstPlaySinkClass,
           reconfigure), NULL, NULL, gst_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN,
@@ -409,16 +477,16 @@ gst_play_sink_class_init (GstPlaySinkClass * klass)
       G_STRUCT_OFFSET (GstPlaySinkClass, convert_frame), NULL, NULL,
       gst_play_marshal_BUFFER__BOXED, GST_TYPE_BUFFER, 1, GST_TYPE_CAPS);
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&audiorawtemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&audiotemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&videorawtemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&videotemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&texttemplate));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &audiorawtemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &audiotemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &videorawtemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &videotemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &texttemplate);
   gst_element_class_set_details_simple (gstelement_klass, "Player Sink",
       "Generic/Bin/Sink",
       "Convenience sink for multiple streams",
@@ -613,6 +681,7 @@ gst_play_sink_get_sink (GstPlaySink * playsink, GstPlaySinkType type)
   GST_PLAY_SINK_LOCK (playsink);
   switch (type) {
     case GST_PLAY_SINK_TYPE_AUDIO:
+    case GST_PLAY_SINK_TYPE_AUDIO_RAW:
     {
       GstPlayAudioChain *chain;
       if ((chain = (GstPlayAudioChain *) playsink->audiochain))
@@ -621,6 +690,7 @@ gst_play_sink_get_sink (GstPlaySink * playsink, GstPlaySinkType type)
       break;
     }
     case GST_PLAY_SINK_TYPE_VIDEO:
+    case GST_PLAY_SINK_TYPE_VIDEO_RAW:
     {
       GstPlayVideoChain *chain;
       if ((chain = (GstPlayVideoChain *) playsink->videochain))
@@ -1077,7 +1147,7 @@ try_element (GstPlaySink * playsink, GstElement * element, gboolean unref)
 }
 
 /* make the element (bin) that contains the elements needed to perform
- * video display.
+ * video display. Only used for *raw* video streams.
  *
  *  +------------------------------------------------------------+
  *  | vbin                                                       |
@@ -1108,13 +1178,13 @@ gen_video_deinterlace_chain (GstPlaySink * playsink)
   bin = GST_BIN_CAST (chain->chain.bin);
   gst_object_ref_sink (bin);
 
-  GST_DEBUG_OBJECT (playsink, "creating ffmpegcolorspace");
-  chain->conv = gst_element_factory_make ("ffmpegcolorspace", "vdconv");
+  GST_DEBUG_OBJECT (playsink, "creating " COLORSPACE);
+  chain->conv = gst_element_factory_make (COLORSPACE, "vdconv");
   if (chain->conv == NULL) {
-    post_missing_element_message (playsink, "ffmpegcolorspace");
+    post_missing_element_message (playsink, COLORSPACE);
     GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
         (_("Missing element '%s' - check your GStreamer installation."),
-            "ffmpegcolorspace"), ("video rendering might fail"));
+            COLORSPACE), ("video rendering might fail"));
   } else {
     gst_bin_add (bin, chain->conv);
     head = chain->conv;
@@ -1170,6 +1240,22 @@ link_failed:
   }
 }
 
+#ifdef GST_EXT_LINK_FIMCCONVERT
+static gint
+compare_name (GstElement * element, const gchar * name)
+{
+  gchar *str;
+  GST_OBJECT_LOCK (element);
+  str = g_strrstr(GST_ELEMENT_NAME (element), name);
+  GST_OBJECT_UNLOCK (element);
+
+  if (str)
+    return 0;
+  else
+    return -1;
+}
+#endif
+
 /* make the element (bin) that contains the elements needed to perform
  * video display.
  *
@@ -1190,6 +1276,7 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
   GstBin *bin;
   GstPad *pad;
   GstElement *head = NULL, *prev = NULL, *elem = NULL;
+  GstPlugin *p;
 
   chain = g_new0 (GstPlayVideoChain, 1);
   chain->chain.playsink = playsink;
@@ -1238,9 +1325,9 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
   }
 
   /* find ts-offset element */
-  chain->ts_offset =
+  gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
       gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
-      G_TYPE_INT64);
+          G_TYPE_INT64));
 
   /* create a bin to hold objects, as we create them we add them to this bin so
    * that when something goes wrong we only need to unref the bin */
@@ -1268,46 +1355,29 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
     head = prev = chain->queue;
   }
 
-  if (raw && !(playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO)) {
-    GST_DEBUG_OBJECT (playsink, "creating ffmpegcolorspace");
-    chain->conv = gst_element_factory_make ("ffmpegcolorspace", "vconv");
-    if (chain->conv == NULL) {
-      post_missing_element_message (playsink, "ffmpegcolorspace");
-      GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-          (_("Missing element '%s' - check your GStreamer installation."),
-              "ffmpegcolorspace"), ("video rendering might fail"));
+  if (!(playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO)) {
+    GST_DEBUG_OBJECT (playsink, "creating videoconverter");
+#ifdef GST_EXT_LINK_FIMCCONVERT
+    GstIterator *iter = gst_bin_iterate_recurse (gst_element_get_parent(playsink));
+    gpointer e = gst_iterator_find_custom (iter, (GCompareFunc) compare_name, "omx");
+    gst_iterator_free (iter);
+    if (e) {
+      chain->conv = gst_element_factory_make ("fimcconvert", "vconv");
+      gst_object_unref(p);
+    } else
+      chain->conv = gst_element_factory_make (COLORSPACE, "vconv");
+#else
+       chain->conv = g_object_new (GST_TYPE_PLAY_SINK_VIDEO_CONVERT, "name", "vconv", NULL);
+#endif
+    gst_bin_add (bin, chain->conv);
+    if (prev) {
+      if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
+              GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+        goto link_failed;
     } else {
-      gst_bin_add (bin, chain->conv);
-      if (prev) {
-        if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
-                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
-          goto link_failed;
-      } else {
-        head = chain->conv;
-      }
-      prev = chain->conv;
-    }
-
-    GST_DEBUG_OBJECT (playsink, "creating videoscale");
-    chain->scale = gst_element_factory_make ("videoscale", "vscale");
-    if (chain->scale == NULL) {
-      post_missing_element_message (playsink, "videoscale");
-      GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-          (_("Missing element '%s' - check your GStreamer installation."),
-              "videoscale"), ("possibly a liboil version mismatch?"));
-    } else {
-      /* Add black borders if necessary to keep the DAR */
-      g_object_set (chain->scale, "add-borders", TRUE, NULL);
-      gst_bin_add (bin, chain->scale);
-      if (prev) {
-        if (!gst_element_link_pads_full (prev, "src", chain->scale, "sink",
-                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
-          goto link_failed;
-      } else {
-        head = chain->scale;
-      }
-      prev = chain->scale;
+      head = chain->conv;
     }
+    prev = chain->conv;
   }
 
   if (prev) {
@@ -1378,22 +1448,22 @@ setup_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
 
   chain = playsink->videochain;
 
+  chain->chain.raw = raw;
+
   /* if the chain was active we don't do anything */
   if (GST_PLAY_CHAIN (chain)->activated == TRUE)
     return TRUE;
 
-  if (chain->chain.raw != raw)
-    return FALSE;
-
   /* try to set the sink element to READY again */
   ret = gst_element_set_state (chain->sink, GST_STATE_READY);
   if (ret == GST_STATE_CHANGE_FAILURE)
     return FALSE;
 
   /* find ts-offset element */
-  chain->ts_offset =
+
+  gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
       gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
-      G_TYPE_INT64);
+          G_TYPE_INT64));
 
   /* if we can disable async behaviour of the sink, we can avoid adding a
    * queue for the audio chain. */
@@ -1413,6 +1483,7 @@ setup_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
 }
 
 /* make an element for playback of video with subtitles embedded.
+ * Only used for *raw* video streams.
  *
  *  +--------------------------------------------+
  *  | tbin                                       |
@@ -1486,7 +1557,7 @@ gen_text_chain (GstPlaySink * playsink)
           chain->queue = NULL;
         }
         /* try to set sync to true but it's no biggie when we can't */
-        if ((elem =
+        if (chain->sink && (elem =
                 gst_play_sink_find_property_sinks (playsink, chain->sink,
                     "sync", G_TYPE_BOOLEAN)))
           g_object_set (elem, "sync", TRUE, NULL);
@@ -1559,10 +1630,18 @@ gen_text_chain (GstPlaySink * playsink)
               "max-size-bytes", 0, "max-size-time", (gint64) 0,
               "silent", TRUE, NULL);
           gst_bin_add (bin, element);
-          gst_element_link_pads_full (element, "src", chain->overlay,
-              "subtitle_sink", GST_PAD_LINK_CHECK_TEMPLATE_CAPS);
-          textsinkpad = gst_element_get_static_pad (element, "sink");
-          srcpad = gst_element_get_static_pad (chain->overlay, "src");
+          if (gst_element_link_pads_full (element, "src", chain->overlay,
+                  "subtitle_sink", GST_PAD_LINK_CHECK_TEMPLATE_CAPS)) {
+            textsinkpad = gst_element_get_static_pad (element, "sink");
+            srcpad = gst_element_get_static_pad (chain->overlay, "src");
+          } else {
+            gst_bin_remove (bin, chain->sink);
+            gst_bin_remove (bin, chain->overlay);
+            chain->sink = NULL;
+            chain->overlay = NULL;
+            gst_object_unref (videosinkpad);
+            videosinkpad = NULL;
+          }
         }
       }
     }
@@ -1707,9 +1786,9 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
   }
 
   /* find ts-offset element */
-  chain->ts_offset =
+  gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
       gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
-      G_TYPE_INT64);
+          G_TYPE_INT64));
 
   /* check if the sink, or something within the sink, has the volume property.
    * If it does we don't need to add a volume element.  */
@@ -1757,54 +1836,33 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
     chain->sink_volume = FALSE;
   }
 
-  if (raw && !(playsink->flags & GST_PLAY_FLAG_NATIVE_AUDIO)) {
-    GST_DEBUG_OBJECT (playsink, "creating audioconvert");
-    chain->conv = gst_element_factory_make ("audioconvert", "aconv");
-    if (chain->conv == NULL) {
-      post_missing_element_message (playsink, "audioconvert");
-      GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-          (_("Missing element '%s' - check your GStreamer installation."),
-              "audioconvert"), ("possibly a liboil version mismatch?"));
-    } else {
-      gst_bin_add (bin, chain->conv);
-      if (prev) {
-        if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
-                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
-          goto link_failed;
-      } else {
-        head = chain->conv;
-      }
-      prev = chain->conv;
-    }
-
-    GST_DEBUG_OBJECT (playsink, "creating audioresample");
-    chain->resample = gst_element_factory_make ("audioresample", "aresample");
-    if (chain->resample == NULL) {
-      post_missing_element_message (playsink, "audioresample");
-      GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-          (_("Missing element '%s' - check your GStreamer installation."),
-              "audioresample"), ("possibly a liboil version mismatch?"));
+  if (!(playsink->flags & GST_PLAY_FLAG_NATIVE_AUDIO) || (!have_volume
+          && playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME)) {
+    gboolean use_converters = !(playsink->flags & GST_PLAY_FLAG_NATIVE_AUDIO);
+    gboolean use_volume =
+        !have_volume && playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME;
+    GST_DEBUG_OBJECT (playsink,
+        "creating audioconvert with use-converters %d, use-volume %d",
+        use_converters, use_volume);
+    chain->conv =
+        g_object_new (GST_TYPE_PLAY_SINK_AUDIO_CONVERT, "name", "aconv",
+        "use-converters", use_converters, "use-volume", use_volume, NULL);
+    gst_bin_add (bin, chain->conv);
+    if (prev) {
+      if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
+              GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+        goto link_failed;
     } else {
-      gst_bin_add (bin, chain->resample);
-      if (prev) {
-        if (!gst_element_link_pads_full (prev, "src", chain->resample, "sink",
-                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
-          goto link_failed;
-      } else {
-        head = chain->resample;
-      }
-      prev = chain->resample;
+      head = chain->conv;
     }
+    prev = chain->conv;
 
     if (!have_volume && playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME) {
-      GST_DEBUG_OBJECT (playsink, "creating volume");
-      chain->volume = gst_element_factory_make ("volume", "volume");
-      if (chain->volume == NULL) {
-        post_missing_element_message (playsink, "volume");
-        GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
-            (_("Missing element '%s' - check your GStreamer installation."),
-                "volume"), ("possibly a liboil version mismatch?"));
-      } else {
+      GstPlaySinkAudioConvert *conv =
+          GST_PLAY_SINK_AUDIO_CONVERT_CAST (chain->conv);
+
+      if (conv->volume) {
+        chain->volume = conv->volume;
         have_volume = TRUE;
 
         g_signal_connect (chain->volume, "notify::volume",
@@ -1819,16 +1877,6 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
         g_object_set (G_OBJECT (chain->volume), "volume", playsink->volume,
             NULL);
         g_object_set (G_OBJECT (chain->mute), "mute", playsink->mute, NULL);
-        gst_bin_add (bin, chain->volume);
-
-        if (prev) {
-          if (!gst_element_link_pads_full (prev, "src", chain->volume, "sink",
-                  GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
-            goto link_failed;
-        } else {
-          head = chain->volume;
-        }
-        prev = chain->volume;
       }
     }
   }
@@ -1910,22 +1958,21 @@ setup_audio_chain (GstPlaySink * playsink, gboolean raw)
 
   chain = playsink->audiochain;
 
+  chain->chain.raw = raw;
+
   /* if the chain was active we don't do anything */
   if (GST_PLAY_CHAIN (chain)->activated == TRUE)
     return TRUE;
 
-  if (chain->chain.raw != raw)
-    return FALSE;
-
   /* try to set the sink element to READY again */
   ret = gst_element_set_state (chain->sink, GST_STATE_READY);
   if (ret == GST_STATE_CHANGE_FAILURE)
     return FALSE;
 
   /* find ts-offset element */
-  chain->ts_offset =
+  gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
       gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
-      G_TYPE_INT64);
+          G_TYPE_INT64));
 
   /* check if the sink, or something within the sink, has the volume property.
    * If it does we don't need to add a volume element.  */
@@ -1956,29 +2003,35 @@ setup_audio_chain (GstPlaySink * playsink, gboolean raw)
       g_signal_connect (chain->mute, "notify::mute",
           G_CALLBACK (notify_mute_cb), playsink);
     }
+
+    g_object_set (chain->conv, "use-volume", FALSE, NULL);
   } else {
+    GstPlaySinkAudioConvert *conv =
+        GST_PLAY_SINK_AUDIO_CONVERT_CAST (chain->conv);
+
     /* no volume, we need to add a volume element when we can */
+    g_object_set (chain->conv, "use-volume", TRUE, NULL);
     GST_DEBUG_OBJECT (playsink, "the sink has no volume property");
-    if (!raw) {
-      GST_LOG_OBJECT (playsink, "non-raw format, can't do soft volume control");
 
-      disconnect_chain (chain, playsink);
-      chain->volume = NULL;
-      chain->mute = NULL;
-    } else {
-      /* both last and current chain are raw audio, there should be a volume
-       * element already, unless the sink changed from one with a volume
-       * property to one that hasn't got a volume property, in which case we
-       * re-generate the chain */
-      if (chain->volume == NULL) {
-        GST_DEBUG_OBJECT (playsink, "no existing volume element to re-use");
-        /* undo background state change done earlier */
-        gst_element_set_state (chain->sink, GST_STATE_NULL);
-        return FALSE;
-      }
+    /* Disconnect signals */
+    disconnect_chain (chain, playsink);
 
-      GST_DEBUG_OBJECT (playsink, "reusing existing volume element");
+    if (conv->volume) {
+      chain->volume = conv->volume;
+      chain->mute = chain->volume;
+
+      g_signal_connect (chain->volume, "notify::volume",
+          G_CALLBACK (notify_volume_cb), playsink);
+
+      g_signal_connect (chain->mute, "notify::mute",
+          G_CALLBACK (notify_mute_cb), playsink);
+
+      /* configure with the latest volume and mute */
+      g_object_set (G_OBJECT (chain->volume), "volume", playsink->volume, NULL);
+      g_object_set (G_OBJECT (chain->mute), "mute", playsink->mute, NULL);
     }
+
+    GST_DEBUG_OBJECT (playsink, "reusing existing volume element");
   }
   return TRUE;
 }
@@ -2331,6 +2384,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
 
       add_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
       activate_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
+      if (playsink->videochain->ts_offset)
+        gst_object_unref (playsink->videochain->ts_offset);
       playsink->videochain->ts_offset = NULL;
     }
 
@@ -2384,6 +2439,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
         disconnect_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
+        if (playsink->audiochain->ts_offset)
+          gst_object_unref (playsink->audiochain->ts_offset);
         playsink->audiochain->ts_offset = NULL;
         free_chain ((GstPlayChain *) playsink->audiochain);
         playsink->audiochain = NULL;
@@ -2452,6 +2509,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
         disconnect_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
+        if (playsink->audiochain->ts_offset)
+          gst_object_unref (playsink->audiochain->ts_offset);
         playsink->audiochain->ts_offset = NULL;
       }
       add_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
@@ -2843,12 +2902,221 @@ gst_play_sink_convert_frame (GstPlaySink * playsink, GstCaps * caps)
        * on the bus or not. It's not like it's a critical issue regarding
        * playsink behaviour. */
       GST_ERROR ("Error converting frame: %s", err->message);
+      g_error_free (err);
     }
     result = temp;
   }
   return result;
 }
 
+static gboolean
+is_raw_structure (GstStructure * s)
+{
+  const gchar *name;
+
+  name = gst_structure_get_name (s);
+
+  if (g_str_has_prefix (name, "video/x-raw-") ||
+      g_str_has_prefix (name, "audio/x-raw-"))
+    return TRUE;
+  return FALSE;
+}
+
+static gboolean
+is_raw_pad (GstPad * pad)
+{
+  GstPad *peer = gst_pad_get_peer (pad);
+  GstCaps *caps;
+  gboolean raw = TRUE;
+
+  if (!peer)
+    return raw;
+
+  caps = gst_pad_get_negotiated_caps (peer);
+  if (!caps) {
+    guint i, n;
+
+    caps = gst_pad_get_caps_reffed (peer);
+
+    n = gst_caps_get_size (caps);
+    for (i = 0; i < n; i++) {
+      gboolean r = is_raw_structure (gst_caps_get_structure (caps, i));
+
+      if (i == 0) {
+        raw = r;
+      } else if (raw != r) {
+        GST_ERROR_OBJECT (pad,
+            "Caps contains raw and non-raw structures: %" GST_PTR_FORMAT, caps);
+        raw = FALSE;
+        break;
+      }
+    }
+  } else {
+    raw = is_raw_structure (gst_caps_get_structure (caps, 0));
+  }
+  gst_caps_unref (caps);
+  gst_object_unref (peer);
+
+  return raw;
+}
+
+static void
+sinkpad_blocked_cb (GstPad * blockedpad, gboolean blocked, gpointer user_data)
+{
+  GstPlaySink *playsink = (GstPlaySink *) user_data;
+  GstPad *pad;
+
+  GST_PLAY_SINK_LOCK (playsink);
+
+  pad = GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (blockedpad)));
+  if (pad == playsink->video_pad) {
+    playsink->video_pad_blocked = blocked;
+    GST_DEBUG_OBJECT (pad, "Video pad blocked: %d", blocked);
+    if (!blocked) {
+      PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_VIDEO_RAW);
+      PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_VIDEO);
+    }
+  } else if (pad == playsink->audio_pad) {
+    playsink->audio_pad_blocked = blocked;
+    GST_DEBUG_OBJECT (pad, "Audio pad blocked: %d", blocked);
+    if (!blocked) {
+      PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_AUDIO_RAW);
+      PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_AUDIO);
+    }
+  } else if (pad == playsink->text_pad) {
+    playsink->text_pad_blocked = blocked;
+    GST_DEBUG_OBJECT (pad, "Text pad blocked: %d", blocked);
+    if (!blocked)
+      PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_TEXT);
+  }
+
+  if (!blocked) {
+    gst_object_unref (pad);
+    GST_PLAY_SINK_UNLOCK (playsink);
+    return;
+  }
+
+  /* We reconfigure when for ALL streams:
+   * * there isn't a pad
+   * * OR the pad is blocked
+   * * OR there are no pending blocks on that pad
+   */
+
+  if ((!playsink->video_pad || playsink->video_pad_blocked
+          || !PENDING_VIDEO_BLOCK (playsink)) && (!playsink->audio_pad
+          || playsink->audio_pad_blocked || !PENDING_AUDIO_BLOCK (playsink))
+      && (!playsink->text_pad || playsink->text_pad_blocked
+          || !PENDING_TEXT_BLOCK (playsink))) {
+    GST_DEBUG_OBJECT (playsink, "All pads blocked -- reconfiguring");
+
+    if (playsink->video_pad) {
+      playsink->video_pad_raw = is_raw_pad (playsink->video_pad);
+      GST_DEBUG_OBJECT (playsink, "Video pad is raw: %d",
+          playsink->video_pad_raw);
+    }
+
+    if (playsink->audio_pad) {
+      playsink->audio_pad_raw = is_raw_pad (playsink->audio_pad);
+      GST_DEBUG_OBJECT (playsink, "Audio pad is raw: %d",
+          playsink->audio_pad_raw);
+    }
+
+    gst_play_sink_reconfigure (playsink);
+
+    if (playsink->video_pad) {
+      GstPad *opad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+              (playsink->video_pad)));
+      gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      gst_object_unref (opad);
+    }
+
+    if (playsink->audio_pad) {
+      GstPad *opad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+              (playsink->audio_pad)));
+      gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      gst_object_unref (opad);
+    }
+
+    if (playsink->text_pad) {
+      GstPad *opad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+              (playsink->text_pad)));
+      gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      gst_object_unref (opad);
+    }
+  }
+
+  gst_object_unref (pad);
+
+  GST_PLAY_SINK_UNLOCK (playsink);
+}
+
+static void
+caps_notify_cb (GstPad * pad, GParamSpec * unused, GstPlaySink * playsink)
+{
+  gboolean reconfigure = FALSE;
+  GstCaps *caps;
+  gboolean raw;
+
+  g_object_get (pad, "caps", &caps, NULL);
+  if (!caps)
+    return;
+
+  if (pad == playsink->audio_pad) {
+    raw = is_raw_pad (pad);
+    reconfigure = (!!playsink->audio_pad_raw != !!raw)
+        && playsink->audiochain;
+    GST_DEBUG_OBJECT (pad,
+        "Audio caps changed: raw %d reconfigure %d caps %" GST_PTR_FORMAT, raw,
+        reconfigure, caps);
+  } else if (pad == playsink->video_pad) {
+    raw = is_raw_pad (pad);
+    reconfigure = (!!playsink->video_pad_raw != !!raw)
+        && playsink->videochain;
+    GST_DEBUG_OBJECT (pad,
+        "Video caps changed: raw %d reconfigure %d caps %" GST_PTR_FORMAT, raw,
+        reconfigure, caps);
+  }
+
+  gst_caps_unref (caps);
+
+  if (reconfigure) {
+    GST_PLAY_SINK_LOCK (playsink);
+    if (playsink->video_pad) {
+      GstPad *opad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+              (playsink->video_pad)));
+      gst_pad_set_blocked_async_full (opad, TRUE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      gst_object_unref (opad);
+    }
+
+    if (playsink->audio_pad) {
+      GstPad *opad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+              (playsink->audio_pad)));
+      gst_pad_set_blocked_async_full (opad, TRUE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      gst_object_unref (opad);
+    }
+
+    if (playsink->text_pad) {
+      GstPad *opad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+              (playsink->text_pad)));
+      gst_pad_set_blocked_async_full (opad, TRUE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      gst_object_unref (opad);
+    }
+    GST_PLAY_SINK_UNLOCK (playsink);
+  }
+}
+
 /**
  * gst_play_sink_request_pad
  * @playsink: a #GstPlaySink
@@ -2863,7 +3131,6 @@ gst_play_sink_request_pad (GstPlaySink * playsink, GstPlaySinkType type)
 {
   GstPad *res = NULL;
   gboolean created = FALSE;
-  gboolean raw = FALSE;
   gboolean activate = TRUE;
   const gchar *pad_name = NULL;
 
@@ -2872,11 +3139,8 @@ gst_play_sink_request_pad (GstPlaySink * playsink, GstPlaySinkType type)
   GST_PLAY_SINK_LOCK (playsink);
   switch (type) {
     case GST_PLAY_SINK_TYPE_AUDIO_RAW:
-      pad_name = "audio_raw_sink";
-      raw = TRUE;
     case GST_PLAY_SINK_TYPE_AUDIO:
-      if (pad_name == NULL)
-        pad_name = "audio_sink";
+      pad_name = "audio_sink";
       if (!playsink->audio_tee) {
         GST_LOG_OBJECT (playsink, "creating tee");
         /* create tee when needed. This element will feed the audio sink chain
@@ -2902,24 +3166,25 @@ gst_play_sink_request_pad (GstPlaySink * playsink, GstPlaySinkType type)
         GST_LOG_OBJECT (playsink, "ghosting tee sinkpad");
         playsink->audio_pad =
             gst_ghost_pad_new (pad_name, playsink->audio_tee_sink);
+        g_signal_connect (G_OBJECT (playsink->audio_pad), "notify::caps",
+            G_CALLBACK (caps_notify_cb), playsink);
         created = TRUE;
       }
-      playsink->audio_pad_raw = raw;
+      playsink->audio_pad_raw = FALSE;
       res = playsink->audio_pad;
       break;
     case GST_PLAY_SINK_TYPE_VIDEO_RAW:
-      pad_name = "video_raw_sink";
-      raw = TRUE;
     case GST_PLAY_SINK_TYPE_VIDEO:
-      if (pad_name == NULL)
-        pad_name = "video_sink";
+      pad_name = "video_sink";
       if (!playsink->video_pad) {
         GST_LOG_OBJECT (playsink, "ghosting videosink");
         playsink->video_pad =
             gst_ghost_pad_new_no_target (pad_name, GST_PAD_SINK);
+        g_signal_connect (G_OBJECT (playsink->video_pad), "notify::caps",
+            G_CALLBACK (caps_notify_cb), playsink);
         created = TRUE;
       }
-      playsink->video_pad_raw = raw;
+      playsink->video_pad_raw = FALSE;
       res = playsink->video_pad;
       break;
     case GST_PLAY_SINK_TYPE_TEXT:
@@ -2955,6 +3220,15 @@ gst_play_sink_request_pad (GstPlaySink * playsink, GstPlaySinkType type)
      * element is 'running' */
     gst_pad_set_active (res, TRUE);
     gst_element_add_pad (GST_ELEMENT_CAST (playsink), res);
+    if (type != GST_PLAY_SINK_TYPE_FLUSHING) {
+      GstPad *blockpad =
+          GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (res)));
+
+      gst_pad_set_blocked_async_full (blockpad, TRUE, sinkpad_blocked_cb,
+          gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+      PENDING_FLAG_SET (playsink, type);
+      gst_object_unref (blockpad);
+    }
     if (!activate)
       gst_pad_set_active (res, activate);
   }
@@ -3011,8 +3285,12 @@ gst_play_sink_release_pad (GstPlaySink * playsink, GstPad * pad)
   GST_PLAY_SINK_LOCK (playsink);
   if (pad == playsink->video_pad) {
     res = &playsink->video_pad;
+    g_signal_handlers_disconnect_by_func (playsink->video_pad, caps_notify_cb,
+        playsink);
   } else if (pad == playsink->audio_pad) {
     res = &playsink->audio_pad;
+    g_signal_handlers_disconnect_by_func (playsink->audio_pad, caps_notify_cb,
+        playsink);
   } else if (pad == playsink->text_pad) {
     res = &playsink->text_pad;
   } else {
@@ -3099,7 +3377,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
   if (playsink->textchain && playsink->textchain->sink) {
     gst_event_ref (event);
     if ((res = gst_element_send_event (playsink->textchain->chain.bin, event))) {
-      GST_DEBUG_OBJECT (playsink, "Sent event succesfully to text sink");
+      GST_DEBUG_OBJECT (playsink, "Sent event successfully to text sink");
     } else {
       GST_DEBUG_OBJECT (playsink, "Event failed when sent to text sink");
     }
@@ -3108,7 +3386,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
   if (playsink->videochain) {
     gst_event_ref (event);
     if ((res = gst_element_send_event (playsink->videochain->chain.bin, event))) {
-      GST_DEBUG_OBJECT (playsink, "Sent event succesfully to video sink");
+      GST_DEBUG_OBJECT (playsink, "Sent event successfully to video sink");
       goto done;
     }
     GST_DEBUG_OBJECT (playsink, "Event failed when sent to video sink");
@@ -3116,7 +3394,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
   if (playsink->audiochain) {
     gst_event_ref (event);
     if ((res = gst_element_send_event (playsink->audiochain->chain.bin, event))) {
-      GST_DEBUG_OBJECT (playsink, "Sent event succesfully to audio sink");
+      GST_DEBUG_OBJECT (playsink, "Sent event successfully to audio sink");
       goto done;
     }
     GST_DEBUG_OBJECT (playsink, "Event failed when sent to audio sink");
@@ -3193,6 +3471,46 @@ gst_play_sink_change_state (GstElement * element, GstStateChange transition)
       ret = GST_STATE_CHANGE_ASYNC;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      /* unblock all pads here */
+      GST_PLAY_SINK_LOCK (playsink);
+      if (playsink->video_pad) {
+        GstPad *opad =
+            GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+                (playsink->video_pad)));
+        if (gst_pad_is_blocked (opad)) {
+          gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+              gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+        }
+        gst_object_unref (opad);
+        playsink->video_pad_blocked = FALSE;
+      }
+
+      if (playsink->audio_pad) {
+        GstPad *opad =
+            GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+                (playsink->audio_pad)));
+
+        if (gst_pad_is_blocked (opad)) {
+          gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+              gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+        }
+        gst_object_unref (opad);
+        playsink->audio_pad_blocked = FALSE;
+      }
+
+      if (playsink->text_pad) {
+        GstPad *opad =
+            GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+                (playsink->text_pad)));
+        if (gst_pad_is_blocked (opad)) {
+          gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+              gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+        }
+        gst_object_unref (opad);
+        playsink->text_pad_blocked = FALSE;
+      }
+      GST_PLAY_SINK_UNLOCK (playsink);
+      /* fall through */
     case GST_STATE_CHANGE_READY_TO_NULL:
       if (playsink->audiochain && playsink->audiochain->sink_volume) {
         /* remove our links to the mute and volume elements when they were
@@ -3200,8 +3518,17 @@ gst_play_sink_change_state (GstElement * element, GstStateChange transition)
         disconnect_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
+      }
+
+      if (playsink->audiochain && playsink->audiochain->ts_offset) {
+        gst_object_unref (playsink->audiochain->ts_offset);
         playsink->audiochain->ts_offset = NULL;
       }
+
+      if (playsink->videochain && playsink->videochain->ts_offset) {
+        gst_object_unref (playsink->videochain->ts_offset);
+        playsink->videochain->ts_offset = NULL;
+      }
       ret = GST_STATE_CHANGE_SUCCESS;
       break;
     default:
@@ -3376,6 +3703,18 @@ gst_play_sink_set_property (GObject * object, guint prop_id,
     case PROP_AV_OFFSET:
       gst_play_sink_set_av_offset (playsink, g_value_get_int64 (value));
       break;
+    case PROP_VIDEO_SINK:
+      gst_play_sink_set_sink (playsink, GST_PLAY_SINK_TYPE_VIDEO,
+          g_value_get_object (value));
+      break;
+    case PROP_AUDIO_SINK:
+      gst_play_sink_set_sink (playsink, GST_PLAY_SINK_TYPE_AUDIO,
+          g_value_get_object (value));
+      break;
+    case PROP_TEXT_SINK:
+      gst_play_sink_set_sink (playsink, GST_PLAY_SINK_TYPE_TEXT,
+          g_value_get_object (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, spec);
       break;
@@ -3414,6 +3753,18 @@ gst_play_sink_get_property (GObject * object, guint prop_id,
     case PROP_AV_OFFSET:
       g_value_set_int64 (value, gst_play_sink_get_av_offset (playsink));
       break;
+    case PROP_VIDEO_SINK:
+      g_value_take_object (value, gst_play_sink_get_sink (playsink,
+              GST_PLAY_SINK_TYPE_VIDEO));
+      break;
+    case PROP_AUDIO_SINK:
+      g_value_take_object (value, gst_play_sink_get_sink (playsink,
+              GST_PLAY_SINK_TYPE_AUDIO));
+      break;
+    case PROP_TEXT_SINK:
+      g_value_take_object (value, gst_play_sink_get_sink (playsink,
+              GST_PLAY_SINK_TYPE_TEXT));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, spec);
       break;
index 3ca96d3..6759ea4 100644 (file)
@@ -41,11 +41,11 @@ G_BEGIN_DECLS
 
 /**
  * GstPlaySinkType:
- * @GST_PLAY_SINK_TYPE_AUDIO: A non-raw audio pad
- * @GST_PLAY_SINK_TYPE_AUDIO_RAW: a raw audio pad
- * @GST_PLAY_SINK_TYPE_VIDEO: a non-raw video pad
- * @GST_PLAY_SINK_TYPE_VIDEO_RAW: a raw video pad
- * @GST_PLAY_SINK_TYPE_TEXT: a raw text pad
+ * @GST_PLAY_SINK_TYPE_AUDIO: an audio pad
+ * @GST_PLAY_SINK_TYPE_AUDIO_RAW: a raw audio pad. Deprecated.
+ * @GST_PLAY_SINK_TYPE_VIDEO: a video pad
+ * @GST_PLAY_SINK_TYPE_VIDEO_RAW: a raw video pad. Deprecated.
+ * @GST_PLAY_SINK_TYPE_TEXT: a text pad
  * @GST_PLAY_SINK_TYPE_LAST: the last type
  * @GST_PLAY_SINK_TYPE_FLUSHING: a flushing pad, used when shutting down
  *
diff --git a/gst/playback/gstplaysinkaudioconvert.c b/gst/playback/gstplaysinkaudioconvert.c
new file mode 100644 (file)
index 0000000..a0756bc
--- /dev/null
@@ -0,0 +1,212 @@
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstplaysinkaudioconvert.h"
+
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_sink_audio_convert_debug);
+#define GST_CAT_DEFAULT gst_play_sink_audio_convert_debug
+
+#define parent_class gst_play_sink_audio_convert_parent_class
+
+G_DEFINE_TYPE (GstPlaySinkAudioConvert, gst_play_sink_audio_convert,
+    GST_TYPE_PLAY_SINK_CONVERT_BIN);
+
+enum
+{
+  PROP_0,
+  PROP_USE_CONVERTERS,
+  PROP_USE_VOLUME,
+};
+
+static gboolean
+gst_play_sink_audio_convert_add_conversion_elements (GstPlaySinkAudioConvert *
+    self)
+{
+  GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+  GstElement *el, *prev = NULL;
+
+  g_assert (cbin->conversion_elements == NULL);
+
+  GST_DEBUG_OBJECT (self,
+      "Building audio conversion with use-converters %d, use-volume %d",
+      self->use_converters, self->use_volume);
+
+  if (self->use_converters) {
+    el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+        "audioconvert", "conv");
+    if (el) {
+      prev = el;
+    }
+
+    el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+        "audioresample", "resample");
+    if (el) {
+
+      if (prev) {
+        if (!gst_element_link_pads_full (prev, "src", el, "sink",
+                GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+          goto link_failed;
+      }
+      prev = el;
+    }
+  }
+
+  if (self->use_volume && self->volume) {
+    el = self->volume;
+    gst_play_sink_convert_bin_add_conversion_element (cbin, el);
+    if (prev) {
+      if (!gst_element_link_pads_full (prev, "src", el, "sink",
+              GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+        goto link_failed;
+    }
+    prev = el;
+  }
+
+  return TRUE;
+
+link_failed:
+  return FALSE;
+}
+
+static void
+gst_play_sink_audio_convert_finalize (GObject * object)
+{
+  GstPlaySinkAudioConvert *self = GST_PLAY_SINK_AUDIO_CONVERT_CAST (object);
+
+  if (self->volume)
+    gst_object_unref (self->volume);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_play_sink_audio_convert_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstPlaySinkAudioConvert *self = GST_PLAY_SINK_AUDIO_CONVERT_CAST (object);
+  gboolean v, changed = FALSE;
+
+  GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+  switch (prop_id) {
+    case PROP_USE_CONVERTERS:
+      v = g_value_get_boolean (value);
+      if (v != self->use_converters) {
+        self->use_converters = v;
+        changed = TRUE;
+      }
+      break;
+    case PROP_USE_VOLUME:
+      v = g_value_get_boolean (value);
+      if (v != self->use_volume) {
+        self->use_volume = v;
+        changed = TRUE;
+      }
+      break;
+    default:
+      break;
+  }
+
+  if (changed) {
+    GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+    GST_DEBUG_OBJECT (self, "Rebuilding converter bin");
+    gst_play_sink_convert_bin_remove_elements (cbin);
+    gst_play_sink_audio_convert_add_conversion_elements (self);
+    gst_play_sink_convert_bin_add_identity (cbin);
+    gst_play_sink_convert_bin_cache_converter_caps (cbin);
+  }
+  GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+}
+
+static void
+gst_play_sink_audio_convert_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstPlaySinkAudioConvert *self = GST_PLAY_SINK_AUDIO_CONVERT_CAST (object);
+
+  GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+  switch (prop_id) {
+    case PROP_USE_CONVERTERS:
+      g_value_set_boolean (value, self->use_converters);
+      break;
+    case PROP_USE_VOLUME:
+      g_value_set_boolean (value, self->use_volume);
+      break;
+    default:
+      break;
+  }
+  GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+}
+
+static void
+gst_play_sink_audio_convert_class_init (GstPlaySinkAudioConvertClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+
+  GST_DEBUG_CATEGORY_INIT (gst_play_sink_audio_convert_debug,
+      "playsinkaudioconvert", 0, "play bin");
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+
+  gobject_class->finalize = gst_play_sink_audio_convert_finalize;
+  gobject_class->set_property = gst_play_sink_audio_convert_set_property;
+  gobject_class->get_property = gst_play_sink_audio_convert_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_USE_CONVERTERS,
+      g_param_spec_boolean ("use-converters", "Use converters",
+          "Whether to use conversion elements", FALSE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_USE_VOLUME,
+      g_param_spec_boolean ("use-volume", "Use volume",
+          "Whether to use a volume element", FALSE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_element_class_set_details_simple (gstelement_class,
+      "Player Sink Audio Converter", "Audio/Bin/Converter",
+      "Convenience bin for audio conversion",
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+}
+
+static void
+gst_play_sink_audio_convert_init (GstPlaySinkAudioConvert * self)
+{
+  GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+
+  cbin->audio = TRUE;
+
+  /* FIXME: Only create this on demand but for now we need
+   * it to always exist because of playsink's volume proxying
+   * logic.
+   */
+  self->volume = gst_element_factory_make ("volume", "volume");
+  if (self->volume)
+    gst_object_ref_sink (self->volume);
+
+  gst_play_sink_audio_convert_add_conversion_elements (self);
+  gst_play_sink_convert_bin_cache_converter_caps (cbin);
+}
diff --git a/gst/playback/gstplaysinkaudioconvert.h b/gst/playback/gstplaysinkaudioconvert.h
new file mode 100644 (file)
index 0000000..ad532e2
--- /dev/null
@@ -0,0 +1,60 @@
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/gst.h>
+#include "gstplaysinkconvertbin.h"
+
+#ifndef __GST_PLAY_SINK_AUDIO_CONVERT_H__
+#define __GST_PLAY_SINK_AUDIO_CONVERT_H__
+
+G_BEGIN_DECLS
+#define GST_TYPE_PLAY_SINK_AUDIO_CONVERT \
+  (gst_play_sink_audio_convert_get_type())
+#define GST_PLAY_SINK_AUDIO_CONVERT(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY_SINK_AUDIO_CONVERT, GstPlaySinkAudioConvert))
+#define GST_PLAY_SINK_AUDIO_CONVERT_CAST(obj) \
+  ((GstPlaySinkAudioConvert *) obj)
+#define GST_PLAY_SINK_AUDIO_CONVERT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAY_SINK_AUDIO_CONVERT, GstPlaySinkAudioConvertClass))
+#define GST_IS_PLAY_SINK_AUDIO_CONVERT(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLAY_SINK_AUDIO_CONVERT))
+#define GST_IS_PLAY_SINK_AUDIO_CONVERT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLAY_SINK_AUDIO_CONVERT))
+typedef struct _GstPlaySinkAudioConvert GstPlaySinkAudioConvert;
+typedef struct _GstPlaySinkAudioConvertClass GstPlaySinkAudioConvertClass;
+
+struct _GstPlaySinkAudioConvert
+{
+  GstPlaySinkConvertBin parent;
+
+  /* < pseudo public > */
+  GstElement *volume;
+  gboolean use_converters;
+  gboolean use_volume;
+};
+
+struct _GstPlaySinkAudioConvertClass
+{
+  GstPlaySinkConvertBinClass parent;
+};
+
+GType gst_play_sink_audio_convert_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_PLAY_SINK_AUDIO_CONVERT_H__ */
diff --git a/gst/playback/gstplaysinkconvertbin.c b/gst/playback/gstplaysinkconvertbin.c
new file mode 100644 (file)
index 0000000..51ede9b
--- /dev/null
@@ -0,0 +1,616 @@
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Vincent Penquerch <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstplaysinkconvertbin.h"
+
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst-i18n-plugin.h>
+#include "gst/glib-compat-private.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_sink_convert_bin_debug);
+#define GST_CAT_DEFAULT gst_play_sink_convert_bin_debug
+
+#define parent_class gst_play_sink_convert_bin_parent_class
+
+G_DEFINE_TYPE (GstPlaySinkConvertBin, gst_play_sink_convert_bin, GST_TYPE_BIN);
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static gboolean
+is_raw_caps (GstCaps * caps, gboolean audio)
+{
+  gint i, n;
+  GstStructure *s;
+  const gchar *name;
+  const gchar *prefix = audio ? "audio/x-raw-" : "video/x-raw-";
+
+  n = gst_caps_get_size (caps);
+  for (i = 0; i < n; i++) {
+    s = gst_caps_get_structure (caps, i);
+    name = gst_structure_get_name (s);
+    if (!g_str_has_prefix (name, prefix))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+static void
+gst_play_sink_convert_bin_post_missing_element_message (GstPlaySinkConvertBin *
+    self, const gchar * name)
+{
+  GstMessage *msg;
+
+  msg = gst_missing_element_message_new (GST_ELEMENT_CAST (self), name);
+  gst_element_post_message (GST_ELEMENT_CAST (self), msg);
+}
+
+static void
+distribute_running_time (GstElement * element, const GstSegment * segment)
+{
+  GstEvent *event;
+  GstPad *pad;
+
+  pad = gst_element_get_static_pad (element, "sink");
+
+  gst_pad_send_event (pad, gst_event_new_flush_start ());
+  gst_pad_send_event (pad, gst_event_new_flush_stop ());
+
+  if (segment->accum && segment->format != GST_FORMAT_UNDEFINED) {
+    event = gst_event_new_new_segment_full (FALSE, segment->rate,
+        segment->applied_rate, segment->format, 0, segment->accum, 0);
+    gst_pad_send_event (pad, event);
+  }
+
+  if (segment->format != GST_FORMAT_UNDEFINED) {
+    event = gst_event_new_new_segment_full (FALSE, segment->rate,
+        segment->applied_rate, segment->format,
+        segment->start, segment->stop, segment->time);
+    gst_pad_send_event (pad, event);
+  }
+
+  gst_object_unref (pad);
+}
+
+void
+gst_play_sink_convert_bin_add_conversion_element (GstPlaySinkConvertBin * self,
+    GstElement * el)
+{
+  self->conversion_elements = g_list_append (self->conversion_elements, el);
+  gst_bin_add (GST_BIN (self), gst_object_ref (el));
+}
+
+GstElement *
+gst_play_sink_convert_bin_add_conversion_element_factory (GstPlaySinkConvertBin
+    * self, const char *factory, const char *name)
+{
+  GstElement *el;
+
+  el = gst_element_factory_make (factory, name);
+  if (el == NULL) {
+    gst_play_sink_convert_bin_post_missing_element_message (self, factory);
+    GST_ELEMENT_WARNING (self, CORE, MISSING_PLUGIN,
+        (_("Missing element '%s' - check your GStreamer installation."),
+            factory),
+        (self->audio ? "audio rendering might fail" :
+            "video rendering might fail"));
+  } else {
+    gst_play_sink_convert_bin_add_conversion_element (self, el);
+  }
+  return el;
+}
+
+void
+gst_play_sink_convert_bin_add_identity (GstPlaySinkConvertBin * self)
+{
+  if (self->identity)
+    return;
+
+  self->identity = gst_element_factory_make ("identity", "identity");
+  if (self->identity == NULL) {
+    gst_play_sink_convert_bin_post_missing_element_message (self, "identity");
+    GST_ELEMENT_WARNING (self, CORE, MISSING_PLUGIN,
+        (_("Missing element '%s' - check your GStreamer installation."),
+            "identity"), (self->audio ?
+            "audio rendering might fail" : "video rendering might fail")
+
+        );
+  } else {
+    g_object_set (self->identity, "silent", TRUE, "signal-handoffs", FALSE,
+        NULL);
+    gst_bin_add (GST_BIN_CAST (self), self->identity);
+  }
+}
+
+static void
+gst_play_sink_convert_bin_set_targets (GstPlaySinkConvertBin * self,
+    gboolean passthrough)
+{
+  GstPad *pad;
+  GstElement *head, *tail;
+
+  GST_DEBUG_OBJECT (self, "Setting pad targets with passthrough %d",
+      passthrough);
+  if (self->conversion_elements == NULL || passthrough) {
+    GST_DEBUG_OBJECT (self, "no conversion elements, using identity (%p) as "
+        "head/tail", self->identity);
+    if (!passthrough) {
+      GST_WARNING_OBJECT (self,
+          "Doing passthrough as no converter elements were added");
+    }
+    head = tail = self->identity;
+  } else {
+    head = GST_ELEMENT (g_list_first (self->conversion_elements)->data);
+    tail = GST_ELEMENT (g_list_last (self->conversion_elements)->data);
+    GST_DEBUG_OBJECT (self, "conversion elements in use, picking "
+        "head:%s and tail:%s", GST_OBJECT_NAME (head), GST_OBJECT_NAME (tail));
+  }
+
+  g_return_if_fail (head != NULL);
+  g_return_if_fail (tail != NULL);
+
+  pad = gst_element_get_static_pad (head, "sink");
+  GST_DEBUG_OBJECT (self, "Ghosting bin sink pad to %" GST_PTR_FORMAT, pad);
+  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), pad);
+  gst_object_unref (pad);
+
+  pad = gst_element_get_static_pad (tail, "src");
+  GST_DEBUG_OBJECT (self, "Ghosting bin src pad to %" GST_PTR_FORMAT, pad);
+  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), pad);
+  gst_object_unref (pad);
+}
+
+static void
+gst_play_sink_convert_bin_remove_element (GstElement * element,
+    GstPlaySinkConvertBin * self)
+{
+  gst_element_set_state (element, GST_STATE_NULL);
+  gst_bin_remove (GST_BIN_CAST (self), element);
+}
+
+static void
+gst_play_sink_convert_bin_on_element_added (GstElement * element,
+    GstPlaySinkConvertBin * self)
+{
+  gst_element_sync_state_with_parent (element);
+  distribute_running_time (element, &self->segment);
+}
+
+static void
+pad_blocked_cb (GstPad * pad, gboolean blocked, GstPlaySinkConvertBin * self)
+{
+  GstPad *peer;
+  GstCaps *caps;
+  gboolean raw;
+
+  GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+  self->sink_proxypad_blocked = blocked;
+  GST_DEBUG_OBJECT (self, "Pad blocked: %d", blocked);
+  if (!blocked)
+    goto done;
+
+  /* There must be a peer at this point */
+  peer = gst_pad_get_peer (self->sinkpad);
+  caps = gst_pad_get_negotiated_caps (peer);
+  if (!caps)
+    caps = gst_pad_get_caps_reffed (peer);
+  gst_object_unref (peer);
+
+  raw = is_raw_caps (caps, self->audio);
+  GST_DEBUG_OBJECT (self, "Caps %" GST_PTR_FORMAT " are raw: %d", caps, raw);
+  gst_caps_unref (caps);
+
+  if (raw == self->raw)
+    goto unblock;
+  self->raw = raw;
+
+  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), NULL);
+  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), NULL);
+
+  if (raw) {
+    GST_DEBUG_OBJECT (self, "Switching to raw conversion pipeline");
+
+    if (self->conversion_elements)
+      g_list_foreach (self->conversion_elements,
+          (GFunc) gst_play_sink_convert_bin_on_element_added, self);
+  } else {
+
+    GST_DEBUG_OBJECT (self, "Switch to passthrough pipeline");
+
+    gst_play_sink_convert_bin_on_element_added (self->identity, self);
+  }
+
+  gst_play_sink_convert_bin_set_targets (self, !raw);
+
+unblock:
+  gst_pad_set_blocked_async_full (self->sink_proxypad, FALSE,
+      (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+      (GDestroyNotify) gst_object_unref);
+
+done:
+  GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+  return;
+}
+
+static gboolean
+gst_play_sink_convert_bin_sink_event (GstPad * pad, GstEvent * event)
+{
+  GstPlaySinkConvertBin *self =
+      GST_PLAY_SINK_CONVERT_BIN (gst_pad_get_parent (pad));
+  gboolean ret;
+
+  ret = gst_proxy_pad_event_default (pad, gst_event_ref (event));
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
+    gboolean update;
+    gdouble rate, applied_rate;
+    GstFormat format;
+    gint64 start, stop, position;
+
+    GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+    gst_event_parse_new_segment_full (event, &update, &rate, &applied_rate,
+        &format, &start, &stop, &position);
+
+    GST_DEBUG_OBJECT (self, "Segment before %" GST_SEGMENT_FORMAT,
+        &self->segment);
+    gst_segment_set_newsegment_full (&self->segment, update, rate, applied_rate,
+        format, start, stop, position);
+    GST_DEBUG_OBJECT (self, "Segment after %" GST_SEGMENT_FORMAT,
+        &self->segment);
+    GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+  } else if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+    GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+    GST_DEBUG_OBJECT (self, "Resetting segment");
+    gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+    GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+  }
+
+  gst_event_unref (event);
+  gst_object_unref (self);
+
+  return ret;
+}
+
+static gboolean
+gst_play_sink_convert_bin_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstPlaySinkConvertBin *self =
+      GST_PLAY_SINK_CONVERT_BIN (gst_pad_get_parent (pad));
+  gboolean ret;
+  GstStructure *s;
+  const gchar *name;
+  gboolean reconfigure = FALSE;
+  gboolean raw;
+
+  GST_DEBUG_OBJECT (pad, "setcaps: %" GST_PTR_FORMAT, caps);
+  GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+  s = gst_caps_get_structure (caps, 0);
+  name = gst_structure_get_name (s);
+
+  if (self->audio) {
+    raw = g_str_has_prefix (name, "audio/x-raw-");
+  } else {
+    raw = g_str_has_prefix (name, "video/x-raw-");
+  }
+
+  GST_DEBUG_OBJECT (self, "raw %d, self->raw %d, blocked %d",
+      raw, self->raw, gst_pad_is_blocked (self->sink_proxypad));
+
+  if (raw) {
+    if (!gst_pad_is_blocked (self->sink_proxypad)) {
+      GstPad *target = gst_ghost_pad_get_target (GST_GHOST_PAD (self->sinkpad));
+
+      if (!self->raw || (target && !gst_pad_accept_caps (target, caps))) {
+        if (!self->raw)
+          GST_DEBUG_OBJECT (self, "Changing caps from non-raw to raw");
+        else
+          GST_DEBUG_OBJECT (self, "Changing caps in an incompatible way");
+
+        reconfigure = TRUE;
+        gst_pad_set_blocked_async_full (self->sink_proxypad, TRUE,
+            (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+            (GDestroyNotify) gst_object_unref);
+      }
+
+      if (target)
+        gst_object_unref (target);
+    }
+  } else {
+    if (self->raw && !gst_pad_is_blocked (self->sink_proxypad)) {
+      GST_DEBUG_OBJECT (self, "Changing caps from raw to non-raw");
+      reconfigure = TRUE;
+      gst_pad_set_blocked_async_full (self->sink_proxypad, TRUE,
+          (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+          (GDestroyNotify) gst_object_unref);
+    }
+  }
+
+  /* Otherwise the setcaps below fails */
+  if (reconfigure) {
+    gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), NULL);
+    gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), NULL);
+  }
+
+  GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+  ret = gst_ghost_pad_setcaps_default (pad, caps);
+
+  GST_DEBUG_OBJECT (self, "Setting sink caps %" GST_PTR_FORMAT ": %d", caps,
+      ret);
+
+  gst_object_unref (self);
+
+  return ret;
+}
+
+static GstCaps *
+gst_play_sink_convert_bin_getcaps (GstPad * pad)
+{
+  GstPlaySinkConvertBin *self =
+      GST_PLAY_SINK_CONVERT_BIN (gst_pad_get_parent (pad));
+  GstCaps *ret;
+  GstPad *otherpad, *peer;
+
+  GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+  if (pad == self->srcpad) {
+    otherpad = self->sinkpad;
+  } else if (pad == self->sinkpad) {
+    otherpad = self->srcpad;
+  } else {
+    GST_ERROR_OBJECT (pad, "Not one of our pads");
+    otherpad = NULL;
+  }
+
+  if (otherpad) {
+    peer = gst_pad_get_peer (otherpad);
+    if (peer) {
+      GstCaps *peer_caps = gst_pad_get_caps_reffed (peer);
+      gst_object_unref (peer);
+      if (self->converter_caps && is_raw_caps (peer_caps, self->audio)) {
+        peer_caps = gst_caps_make_writable (peer_caps);
+        gst_caps_merge (peer_caps, gst_caps_ref (self->converter_caps));
+        ret = peer_caps;
+      } else {
+        ret = peer_caps;
+      }
+    } else {
+      ret = gst_caps_ref (self->converter_caps);
+    }
+  } else {
+    ret = gst_caps_new_any ();
+  }
+  GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+
+  gst_object_unref (self);
+
+  GST_DEBUG_OBJECT (pad, "Returning caps %" GST_PTR_FORMAT, ret);
+
+  return ret;
+}
+
+static gboolean
+gst_play_sink_convert_bin_acceptcaps (GstPad * pad, GstCaps * caps)
+{
+  GstCaps *allowed_caps;
+  gboolean ret;
+
+  allowed_caps = gst_pad_get_caps_reffed (pad);
+  /* FIXME 0.11: Should be a subset check now */
+  ret = gst_caps_can_intersect (caps, allowed_caps);
+  gst_caps_unref (allowed_caps);
+
+  return ret;
+}
+
+void
+gst_play_sink_convert_bin_remove_elements (GstPlaySinkConvertBin * self)
+{
+  if (self->conversion_elements) {
+    g_list_foreach (self->conversion_elements,
+        (GFunc) gst_play_sink_convert_bin_remove_element, self);
+    g_list_free (self->conversion_elements);
+    self->conversion_elements = NULL;
+  }
+  if (self->converter_caps) {
+    gst_caps_unref (self->converter_caps);
+    self->converter_caps = NULL;
+  }
+}
+
+static void
+gst_play_sink_convert_bin_dispose (GObject * object)
+{
+  GstPlaySinkConvertBin *self = GST_PLAY_SINK_CONVERT_BIN_CAST (object);
+
+  gst_play_sink_convert_bin_remove_elements (self);
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_play_sink_convert_bin_finalize (GObject * object)
+{
+  GstPlaySinkConvertBin *self = GST_PLAY_SINK_CONVERT_BIN_CAST (object);
+
+  gst_object_unref (self->sink_proxypad);
+  g_mutex_free (self->lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+void
+gst_play_sink_convert_bin_cache_converter_caps (GstPlaySinkConvertBin * self)
+{
+  GstElement *head;
+  GstPad *pad;
+
+  if (self->converter_caps) {
+    gst_caps_unref (self->converter_caps);
+    self->converter_caps = NULL;
+  }
+
+  if (!self->conversion_elements) {
+    GST_WARNING_OBJECT (self, "No conversion elements");
+    return;
+  }
+
+  head = GST_ELEMENT (g_list_first (self->conversion_elements)->data);
+  pad = gst_element_get_static_pad (head, "sink");
+  if (!pad) {
+    GST_WARNING_OBJECT (self, "No sink pad found");
+    return;
+  }
+
+  self->converter_caps = gst_pad_get_caps_reffed (pad);
+  GST_INFO_OBJECT (self, "Converter caps: %" GST_PTR_FORMAT,
+      self->converter_caps);
+
+  gst_object_unref (pad);
+}
+
+static GstStateChangeReturn
+gst_play_sink_convert_bin_change_state (GstElement * element,
+    GstStateChange transition)
+{
+  GstStateChangeReturn ret;
+  GstPlaySinkConvertBin *self = GST_PLAY_SINK_CONVERT_BIN_CAST (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+      if (gst_pad_is_blocked (self->sink_proxypad))
+        gst_pad_set_blocked_async_full (self->sink_proxypad, FALSE,
+            (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+            (GDestroyNotify) gst_object_unref);
+      GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+      gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+      gst_play_sink_convert_bin_set_targets (self, TRUE);
+      self->raw = FALSE;
+      GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+      gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+      gst_play_sink_convert_bin_set_targets (self, TRUE);
+      self->raw = FALSE;
+      GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+      if (!gst_pad_is_blocked (self->sink_proxypad))
+        gst_pad_set_blocked_async_full (self->sink_proxypad, TRUE,
+            (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+            (GDestroyNotify) gst_object_unref);
+      GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_play_sink_convert_bin_class_init (GstPlaySinkConvertBinClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+
+  GST_DEBUG_CATEGORY_INIT (gst_play_sink_convert_bin_debug,
+      "playsinkconvertbin", 0, "play bin");
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+
+  gobject_class->dispose = gst_play_sink_convert_bin_dispose;
+  gobject_class->finalize = gst_play_sink_convert_bin_finalize;
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_set_details_simple (gstelement_class,
+      "Player Sink Converter Bin", "Bin/Converter",
+      "Convenience bin for audio/video conversion",
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_change_state);
+}
+
+static void
+gst_play_sink_convert_bin_init (GstPlaySinkConvertBin * self)
+{
+  GstPadTemplate *templ;
+
+  self->lock = g_mutex_new ();
+  gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+
+  templ = gst_static_pad_template_get (&sinktemplate);
+  self->sinkpad = gst_ghost_pad_new_no_target_from_template ("sink", templ);
+  gst_pad_set_event_function (self->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_sink_event));
+  gst_pad_set_setcaps_function (self->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_sink_setcaps));
+  gst_pad_set_getcaps_function (self->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_getcaps));
+  gst_pad_set_acceptcaps_function (self->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_acceptcaps));
+
+  self->sink_proxypad =
+      GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (self->sinkpad)));
+
+  gst_element_add_pad (GST_ELEMENT_CAST (self), self->sinkpad);
+  gst_object_unref (templ);
+
+  templ = gst_static_pad_template_get (&srctemplate);
+  self->srcpad = gst_ghost_pad_new_no_target_from_template ("src", templ);
+  gst_pad_set_getcaps_function (self->srcpad,
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_getcaps));
+  gst_pad_set_acceptcaps_function (self->srcpad,
+      GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_acceptcaps));
+  gst_element_add_pad (GST_ELEMENT_CAST (self), self->srcpad);
+  gst_object_unref (templ);
+
+  gst_play_sink_convert_bin_add_identity (self);
+}
diff --git a/gst/playback/gstplaysinkconvertbin.h b/gst/playback/gstplaysinkconvertbin.h
new file mode 100644 (file)
index 0000000..0e71866
--- /dev/null
@@ -0,0 +1,103 @@
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/gst.h>
+
+#ifndef __GST_PLAY_SINK_CONVERT_BIN_H__
+#define __GST_PLAY_SINK_CONVERT_BIN_H__
+
+G_BEGIN_DECLS
+#define GST_TYPE_PLAY_SINK_CONVERT_BIN \
+  (gst_play_sink_convert_bin_get_type())
+#define GST_PLAY_SINK_CONVERT_BIN(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY_SINK_CONVERT_BIN, GstPlaySinkConvertBin))
+#define GST_PLAY_SINK_CONVERT_BIN_CAST(obj) \
+  ((GstPlaySinkConvertBin *) obj)
+#define GST_PLAY_SINK_CONVERT_BIN_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAY_SINK_CONVERT_BIN, GstPlaySinkConvertBinClass))
+#define GST_IS_PLAY_SINK_CONVERT_BIN(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLAY_SINK_CONVERT_BIN))
+#define GST_IS_PLAY_SINK_CONVERT_BIN_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLAY_SINK_CONVERT_BIN))
+
+#define GST_PLAY_SINK_CONVERT_BIN_LOCK(obj) G_STMT_START {                   \
+    GST_LOG_OBJECT (obj,                                                \
+                    "locking from thread %p",                           \
+                    g_thread_self ());                                  \
+    g_mutex_lock (GST_PLAY_SINK_CONVERT_BIN_CAST(obj)->lock);                \
+    GST_LOG_OBJECT (obj,                                                \
+                    "locked from thread %p",                            \
+                    g_thread_self ());                                  \
+} G_STMT_END
+
+#define GST_PLAY_SINK_CONVERT_BIN_UNLOCK(obj) G_STMT_START {                 \
+    GST_LOG_OBJECT (obj,                                                \
+                    "unlocking from thread %p",                         \
+                    g_thread_self ());                                  \
+    g_mutex_unlock (GST_PLAY_SINK_CONVERT_BIN_CAST(obj)->lock);              \
+} G_STMT_END
+
+typedef struct _GstPlaySinkConvertBin GstPlaySinkConvertBin;
+typedef struct _GstPlaySinkConvertBinClass GstPlaySinkConvertBinClass;
+
+struct _GstPlaySinkConvertBin
+{
+  GstBin parent;
+
+  /* < private > */
+  GMutex *lock;
+
+  GstPad *sinkpad, *sink_proxypad;
+  gboolean sink_proxypad_blocked;
+  GstSegment segment;
+
+  GstPad *srcpad;
+
+  gboolean raw;
+  GList *conversion_elements;
+  GstElement *identity;
+
+  GstCaps *converter_caps;
+
+  /* configuration for derived classes */
+  gboolean audio;
+};
+
+struct _GstPlaySinkConvertBinClass
+{
+  GstBinClass parent;
+};
+
+GType gst_play_sink_convert_bin_get_type (void);
+GstElement *
+gst_play_sink_convert_bin_add_conversion_element_factory (GstPlaySinkConvertBin *self,
+    const char *factory, const char *name);
+void
+gst_play_sink_convert_bin_add_conversion_element (GstPlaySinkConvertBin *self,
+    GstElement *el);
+void
+gst_play_sink_convert_bin_cache_converter_caps (GstPlaySinkConvertBin * self);
+void
+gst_play_sink_convert_bin_remove_elements (GstPlaySinkConvertBin * self);
+void
+gst_play_sink_convert_bin_add_identity (GstPlaySinkConvertBin * self);
+
+G_END_DECLS
+#endif /* __GST_PLAY_SINK_CONVERT_BIN_H__ */
diff --git a/gst/playback/gstplaysinkvideoconvert.c b/gst/playback/gstplaysinkvideoconvert.c
new file mode 100644 (file)
index 0000000..72a9aff
--- /dev/null
@@ -0,0 +1,92 @@
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstplaysinkvideoconvert.h"
+
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_sink_video_convert_debug);
+#define GST_CAT_DEFAULT gst_play_sink_video_convert_debug
+
+#define parent_class gst_play_sink_video_convert_parent_class
+
+G_DEFINE_TYPE (GstPlaySinkVideoConvert, gst_play_sink_video_convert,
+    GST_TYPE_PLAY_SINK_CONVERT_BIN);
+
+static gboolean
+gst_play_sink_video_convert_add_conversion_elements (GstPlaySinkVideoConvert *
+    self)
+{
+  GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+  GstElement *el, *prev = NULL;
+
+  el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+      COLORSPACE, "conv");
+  if (el)
+    prev = el;
+
+  el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+      "videoscale", "scale");
+  if (el) {
+    /* Add black borders if necessary to keep the DAR */
+    g_object_set (el, "add-borders", TRUE, NULL);
+    if (prev) {
+      if (!gst_element_link_pads_full (prev, "src", el, "sink",
+              GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+        goto link_failed;
+    }
+    prev = el;
+  }
+
+  return TRUE;
+
+link_failed:
+  return FALSE;
+}
+
+static void
+gst_play_sink_video_convert_class_init (GstPlaySinkVideoConvertClass * klass)
+{
+  GstElementClass *gstelement_class;
+
+  GST_DEBUG_CATEGORY_INIT (gst_play_sink_video_convert_debug,
+      "playsinkvideoconvert", 0, "play bin");
+
+  gstelement_class = (GstElementClass *) klass;
+
+  gst_element_class_set_details_simple (gstelement_class,
+      "Player Sink Video Converter", "Video/Bin/Converter",
+      "Convenience bin for video conversion",
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+}
+
+static void
+gst_play_sink_video_convert_init (GstPlaySinkVideoConvert * self)
+{
+  GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+  cbin->audio = FALSE;
+
+  gst_play_sink_video_convert_add_conversion_elements (self);
+  gst_play_sink_convert_bin_cache_converter_caps (cbin);
+}
diff --git a/gst/playback/gstplaysinkvideoconvert.h b/gst/playback/gstplaysinkvideoconvert.h
new file mode 100644 (file)
index 0000000..df56d97
--- /dev/null
@@ -0,0 +1,56 @@
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/gst.h>
+#include "gstplaysinkconvertbin.h"
+
+#ifndef __GST_PLAY_SINK_VIDEO_CONVERT_H__
+#define __GST_PLAY_SINK_VIDEO_CONVERT_H__
+
+G_BEGIN_DECLS
+#define GST_TYPE_PLAY_SINK_VIDEO_CONVERT \
+  (gst_play_sink_video_convert_get_type())
+#define GST_PLAY_SINK_VIDEO_CONVERT(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY_SINK_VIDEO_CONVERT, GstPlaySinkVideoConvert))
+#define GST_PLAY_SINK_VIDEO_CONVERT_CAST(obj) \
+  ((GstPlaySinkVideoConvert *) obj)
+#define GST_PLAY_SINK_VIDEO_CONVERT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAY_SINK_VIDEO_CONVERT, GstPlaySinkVideoConvertClass))
+#define GST_IS_PLAY_SINK_VIDEO_CONVERT(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLAY_SINK_VIDEO_CONVERT))
+#define GST_IS_PLAY_SINK_VIDEO_CONVERT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLAY_SINK_VIDEO_CONVERT))
+typedef struct _GstPlaySinkVideoConvert GstPlaySinkVideoConvert;
+typedef struct _GstPlaySinkVideoConvertClass GstPlaySinkVideoConvertClass;
+
+struct _GstPlaySinkVideoConvert
+{
+  GstPlaySinkConvertBin parent;
+
+};
+
+struct _GstPlaySinkVideoConvertClass
+{
+  GstPlaySinkConvertBinClass parent;
+};
+
+GType gst_play_sink_video_convert_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_PLAY_SINK_VIDEO_CONVERT_H__ */
index 294eac4..aafe1fb 100644 (file)
@@ -466,10 +466,10 @@ gst_stream_selector_base_init (GstStreamSelectorClass * klass)
       "Julien Moutte <julien@moutte.net>, "
       "Jan Schmidt <thaytan@mad.scientist.com>, "
       "Wim Taymans <wim.taymans@gmail.com>");
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_stream_selector_sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_stream_selector_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_stream_selector_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_stream_selector_src_factory);
 }
 
 static void
index 9a48ab0..8b80a6b 100644 (file)
 #include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include "gststreamsynchronizer.h"
+#include "gst/glib-compat-private.h"
 
 GST_DEBUG_CATEGORY_STATIC (stream_synchronizer_debug);
 #define GST_CAT_DEFAULT stream_synchronizer_debug
@@ -89,11 +94,16 @@ gst_stream_get_other_pad (GstStream * stream, GstPad * pad)
 static GstPad *
 gst_stream_get_other_pad_from_pad (GstPad * pad)
 {
-  GstStreamSynchronizer *self =
-      GST_STREAM_SYNCHRONIZER (gst_pad_get_parent (pad));
+  GstObject *parent = gst_pad_get_parent (pad);
+  GstStreamSynchronizer *self;
   GstStream *stream;
   GstPad *opad = NULL;
 
+  /* released pad does not have parent anymore */
+  if (!G_LIKELY (parent))
+    goto exit;
+
+  self = GST_STREAM_SYNCHRONIZER (parent);
   GST_STREAM_SYNCHRONIZER_LOCK (self);
   stream = gst_pad_get_element_private (pad);
   if (!stream)
@@ -105,6 +115,7 @@ out:
   GST_STREAM_SYNCHRONIZER_UNLOCK (self);
   gst_object_unref (self);
 
+exit:
   if (!opad)
     GST_WARNING_OBJECT (pad, "Trying to get other pad after releasing");
 
@@ -554,7 +565,7 @@ gst_stream_synchronizer_sink_bufferalloc (GstPad * pad, guint64 offset,
     guint size, GstCaps * caps, GstBuffer ** buf)
 {
   GstPad *opad;
-  GstFlowReturn ret = GST_FLOW_ERROR;
+  GstFlowReturn ret = GST_FLOW_OK;
 
   GST_LOG_OBJECT (pad, "Allocating buffer: size=%u", size);
 
@@ -562,6 +573,10 @@ gst_stream_synchronizer_sink_bufferalloc (GstPad * pad, guint64 offset,
   if (opad) {
     ret = gst_pad_alloc_buffer (opad, offset, size, caps, buf);
     gst_object_unref (opad);
+  } else {
+    /* may have been released during shutdown;
+     * silently trigger fallback */
+    *buf = NULL;
   }
 
   GST_LOG_OBJECT (pad, "Allocation: %s", gst_flow_get_name (ret));
@@ -605,7 +620,8 @@ gst_stream_synchronizer_sink_chain (GstPad * pad, GstBuffer * buffer)
   GST_STREAM_SYNCHRONIZER_LOCK (self);
   stream = gst_pad_get_element_private (pad);
 
-  stream->seen_data = TRUE;
+  if (stream)
+    stream->seen_data = TRUE;
   if (stream && stream->drop_discont) {
     buffer = gst_buffer_make_metadata_writable (buffer);
     GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT);
@@ -955,10 +971,8 @@ gst_stream_synchronizer_base_init (gpointer g_class)
 {
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_details_simple (gstelement_class,
       "Stream Synchronizer", "Generic",
index 98fe15d..a3e96c7 100644 (file)
@@ -45,6 +45,8 @@
 #include <gst/video/video.h>
 #include <string.h>
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (subtitle_overlay_debug);
 #define GST_CAT_DEFAULT subtitle_overlay_debug
 
@@ -178,6 +180,59 @@ static const gchar *_sub_pad_names[] = { "subpicture", "subpicture_sink",
   "subtitle_sink", "subtitle"
 };
 
+static inline gboolean
+_is_raw_video (GstStructure * s)
+{
+  const gchar *name;
+
+  name = gst_structure_get_name (s);
+
+  if (g_str_has_prefix (name, "video/x-raw-"))
+    return TRUE;
+  return FALSE;
+}
+
+static gboolean
+_is_video_pad (GstPad * pad, gboolean * hw_accelerated)
+{
+  GstPad *peer = gst_pad_get_peer (pad);
+  GstCaps *caps;
+  gboolean ret;
+  const gchar *name;
+
+  if (peer) {
+    caps = gst_pad_get_negotiated_caps (peer);
+    if (!caps) {
+      caps = gst_pad_get_caps_reffed (peer);
+    }
+    gst_object_unref (peer);
+  } else {
+    caps = gst_pad_get_caps_reffed (pad);
+  }
+
+
+  name = gst_structure_get_name (gst_caps_get_structure (caps, 0));
+  if (g_str_has_prefix (name, "video/x-raw-")) {
+    ret = TRUE;
+    if (hw_accelerated)
+      *hw_accelerated = FALSE;
+
+  } else if (g_str_has_prefix (name, "video/x-surface")) {
+    ret = TRUE;
+    if (hw_accelerated)
+      *hw_accelerated = TRUE;
+  } else {
+
+    ret = FALSE;
+    if (hw_accelerated)
+      *hw_accelerated = FALSE;
+  }
+
+  gst_caps_unref (caps);
+
+  return ret;
+}
+
 static GstCaps *
 _get_sub_caps (GstElementFactory * factory)
 {
@@ -262,26 +317,16 @@ _factory_filter (GstPluginFeature * feature, GstCaps ** subcaps)
   templ_caps = _get_sub_caps (factory);
 
   if (is_renderer && have_video_sink && templ_caps) {
-    GstCaps *tmp;
-
     GST_DEBUG ("Found renderer element %s (%s) with caps %" GST_PTR_FORMAT,
         gst_element_factory_get_longname (factory),
         gst_plugin_feature_get_name (feature), templ_caps);
-    tmp = gst_caps_union (*subcaps, templ_caps);
-    gst_caps_unref (templ_caps);
-    gst_caps_replace (subcaps, tmp);
-    gst_caps_unref (tmp);
+    gst_caps_merge (*subcaps, templ_caps);
     return TRUE;
   } else if (!is_renderer && !have_video_sink && templ_caps) {
-    GstCaps *tmp;
-
     GST_DEBUG ("Found parser element %s (%s) with caps %" GST_PTR_FORMAT,
         gst_element_factory_get_longname (factory),
         gst_plugin_feature_get_name (feature), templ_caps);
-    tmp = gst_caps_union (*subcaps, templ_caps);
-    gst_caps_unref (templ_caps);
-    gst_caps_replace (subcaps, tmp);
-    gst_caps_unref (tmp);
+    gst_caps_merge (*subcaps, templ_caps);
     return TRUE;
   } else {
     if (templ_caps)
@@ -347,7 +392,7 @@ gst_subtitle_overlay_create_factory_caps (void)
 }
 
 static gboolean
-_filter_factories_for_caps (GstElementFactory * factory, const GstCaps * caps)
+check_factory_for_caps (GstElementFactory * factory, const GstCaps * caps)
 {
   GstCaps *fcaps = _get_sub_caps (factory);
   gboolean ret = (fcaps) ? gst_caps_can_intersect (fcaps, caps) : FALSE;
@@ -360,6 +405,26 @@ _filter_factories_for_caps (GstElementFactory * factory, const GstCaps * caps)
   return ret;
 }
 
+static GList *
+gst_subtitle_overlay_get_factories_for_caps (const GList * list,
+    const GstCaps * caps)
+{
+  const GList *walk = list;
+  GList *result = NULL;
+
+  while (walk) {
+    GstElementFactory *factory = walk->data;
+
+    walk = g_list_next (walk);
+
+    if (check_factory_for_caps (factory, caps)) {
+      result = g_list_prepend (result, factory);
+    }
+  }
+
+  return result;
+}
+
 static gint
 _sort_by_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
 {
@@ -606,13 +671,11 @@ _setup_passthrough (GstSubtitleOverlay * self)
 out:
   /* Unblock pads */
   gst_pad_set_blocked_async_full (self->video_block_pad, FALSE,
-      _pad_blocked_cb, gst_object_ref (self),
-      (GDestroyNotify) gst_object_unref);
+      _pad_blocked_cb, self, NULL);
 
   if (self->subtitle_sink_blocked)
     gst_pad_set_blocked_async_full (self->subtitle_block_pad, FALSE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
 
   return TRUE;
 }
@@ -755,13 +818,11 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
 
       /* Unblock pads */
       gst_pad_set_blocked_async_full (self->video_block_pad, FALSE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
 
       if (self->subtitle_sink_blocked)
         gst_pad_set_blocked_async_full (self->subtitle_block_pad, FALSE,
-            _pad_blocked_cb, gst_object_ref (self),
-            (GDestroyNotify) gst_object_unref);
+            _pad_blocked_cb, self, NULL);
       goto out;
     } else if (target) {
       gst_object_unref (target);
@@ -771,8 +832,7 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
   if (self->subtitle_sink_blocked && !self->video_sink_blocked) {
     GST_DEBUG_OBJECT (self, "Subtitle sink blocked but video not blocked");
     gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
     goto out;
   }
 
@@ -782,8 +842,8 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
   g_mutex_lock (self->factories_lock);
   gst_subtitle_overlay_update_factory_list (self);
   if (subcaps) {
-    factories = gst_filter_run (self->factories,
-        (GstFilterFunc) _filter_factories_for_caps, FALSE, subcaps);
+    factories =
+        gst_subtitle_overlay_get_factories_for_caps (self->factories, subcaps);
     if (!factories) {
       GstMessage *msg;
 
@@ -810,7 +870,7 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
 
   for (l = factories; l; l = l->next) {
     GstElementFactory *factory = l->data;
-    gboolean is_renderer = _is_renderer (factory);
+    gboolean is_video, is_hw, is_renderer = _is_renderer (factory);
     GstElement *element;
     GstPad *sink, *src;
 
@@ -841,6 +901,7 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
 
     element = is_renderer ? self->renderer : self->parser;
 
+    is_video = _is_video_pad (self->video_sinkpad, &is_hw);
     /* If this is a parser, create textoverlay and link video and the parser to it
      * Else link the renderer to the output colorspace */
     if (!is_renderer) {
@@ -918,84 +979,113 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
       gst_object_unref (sink);
       gst_object_unref (src);
 
-      if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
-                  "ffmpegcolorspace", NULL, "post-colorspace", FALSE))) {
-        continue;
-      }
+      /* If we are working with video/x-surface, we do not add
+       * colorspace conversion elements */
+      if (is_video && !is_hw) {
+        if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
+                    COLORSPACE, NULL, "post-colorspace", FALSE))) {
+          continue;
+        }
 
-      src = gst_element_get_static_pad (overlay, "src");
-      if (G_UNLIKELY (!src)) {
-        GST_WARNING_OBJECT (self, "Can't get src pad from overlay");
-        continue;
-      }
+        src = gst_element_get_static_pad (overlay, "src");
+        if (G_UNLIKELY (!src)) {
+          GST_WARNING_OBJECT (self, "Can't get src pad from overlay");
+          continue;
+        }
 
-      sink = gst_element_get_static_pad (self->post_colorspace, "sink");
-      if (G_UNLIKELY (!sink)) {
-        GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
-        gst_object_unref (src);
-        continue;
-      }
+        sink = gst_element_get_static_pad (self->post_colorspace, "sink");
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+          gst_object_unref (src);
+          continue;
+        }
 
-      if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
-        GST_WARNING_OBJECT (self, "Can't link overlay with ffmpegcolorspace");
+        if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+          GST_WARNING_OBJECT (self, "Can't link overlay with " COLORSPACE);
+          gst_object_unref (src);
+          gst_object_unref (sink);
+          continue;
+        }
         gst_object_unref (src);
         gst_object_unref (sink);
-        continue;
-      }
-      gst_object_unref (src);
-      gst_object_unref (sink);
 
-      if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
-                  "ffmpegcolorspace", NULL, "pre-colorspace", FALSE))) {
-        continue;
-      }
+        if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
+                    "identity", NULL, "pre-colorspace", FALSE))) {
+          continue;
+        }
 
-      sink = gst_element_get_static_pad (overlay, "video_sink");
-      if (G_UNLIKELY (!sink)) {
-        GST_WARNING_OBJECT (self, "Can't get video sink from textoverlay");
-        continue;
-      }
+        sink = gst_element_get_static_pad (overlay, "video_sink");
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get video sink from textoverlay");
+          continue;
+        }
 
-      src = gst_element_get_static_pad (self->pre_colorspace, "src");
-      if (G_UNLIKELY (!src)) {
-        GST_WARNING_OBJECT (self, "Can't get srcpad from ffmpegcolorspace");
-        gst_object_unref (sink);
-        continue;
-      }
+        src = gst_element_get_static_pad (self->pre_colorspace, "src");
+        if (G_UNLIKELY (!src)) {
+          GST_WARNING_OBJECT (self, "Can't get srcpad from " COLORSPACE);
+          gst_object_unref (sink);
+          continue;
+        }
 
-      if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
-        GST_WARNING_OBJECT (self, "Can't link ffmpegcolorspace to textoverlay");
+        if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+          GST_WARNING_OBJECT (self, "Can't link " COLORSPACE " to textoverlay");
+          gst_object_unref (src);
+          gst_object_unref (sink);
+          continue;
+        }
         gst_object_unref (src);
         gst_object_unref (sink);
-        continue;
-      }
-      gst_object_unref (src);
-      gst_object_unref (sink);
 
-      /* Set src ghostpad target */
-      src = gst_element_get_static_pad (self->post_colorspace, "src");
-      if (G_UNLIKELY (!src)) {
-        GST_WARNING_OBJECT (self, "Can't get src pad from ffmpegcolorspace");
-        continue;
-      }
+        /* Set src ghostpad target */
+        src = gst_element_get_static_pad (self->post_colorspace, "src");
+        if (G_UNLIKELY (!src)) {
+          GST_WARNING_OBJECT (self, "Can't get src pad from " COLORSPACE);
+          continue;
+        }
 
-      if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
-                  (self->srcpad), src))) {
-        GST_WARNING_OBJECT (self, "Can't set srcpad target");
+        if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
+                    (self->srcpad), src))) {
+          GST_WARNING_OBJECT (self, "Can't set srcpad target");
+          gst_object_unref (src);
+          continue;
+        }
+        gst_object_unref (src);
+      } else if (is_hw) {
+        GST_DEBUG_OBJECT (self,
+            "Is Hardware, not adding colorspace converters, ");
+        /* Set src ghostpad target */
+        src = gst_element_get_static_pad (self->overlay, "src");
+        if (G_UNLIKELY (!src)) {
+          GST_WARNING_OBJECT (self, "Can't get src pad from textoverlay");
+          continue;
+        }
+
+        if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
+                    (self->srcpad), src))) {
+          GST_WARNING_OBJECT (self, "Can't set srcpad target");
+          gst_object_unref (src);
+          continue;
+        }
         gst_object_unref (src);
-        continue;
       }
-      gst_object_unref (src);
 
       /* Send segments to the parser/overlay if necessary. These are not sent
        * outside this element because of the proxy pad event function */
       if (self->video_segment.format != GST_FORMAT_UNDEFINED) {
         GstEvent *event1, *event2;
 
-        sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
-        if (G_UNLIKELY (!sink)) {
-          GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
-          continue;
+        if (is_video) {
+          sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
+          if (G_UNLIKELY (!sink)) {
+            GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+            continue;
+          }
+        } else {
+          sink = gst_element_get_static_pad (self->overlay, "video_sink");
+          if (G_UNLIKELY (!sink)) {
+            GST_WARNING_OBJECT (self, "Can't get sink pad from textoverlay");
+            continue;
+          }
         }
 
         _generate_update_newsegment_event (&self->video_segment, &event1,
@@ -1036,10 +1126,19 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
       }
 
       /* Set the sink ghostpad targets */
-      sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
-      if (G_UNLIKELY (!sink)) {
-        GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
-        continue;
+      if (is_video && !is_hw) {
+        sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+          continue;
+        }
+      } else if (is_video && is_hw) {
+        GST_DEBUG_OBJECT (self, "Setting ghostpad to overlay video sink");
+        sink = gst_element_get_static_pad (self->overlay, "video_sink");
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get sink pad from overlay");
+          continue;
+        }
       }
 
       if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
@@ -1086,66 +1185,137 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
           g_object_set (self->renderer, "font-desc", self->font_desc, NULL);
       }
 
-      /* First link everything internally */
-      if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
-                  "ffmpegcolorspace", NULL, "post-colorspace", FALSE))) {
-        continue;
-      }
+      if (is_video) {
+        gboolean render_is_hw;
 
-      src = gst_element_get_static_pad (element, "src");
-      if (G_UNLIKELY (!src)) {
-        GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
-        continue;
-      }
-
-      sink = gst_element_get_static_pad (self->post_colorspace, "sink");
-      if (G_UNLIKELY (!sink)) {
-        GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
-        gst_object_unref (src);
-        continue;
-      }
+        /* First check that renderer also supports the video format */
+        sink = _get_video_pad (element);
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
+          continue;
+        }
 
-      if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
-        GST_WARNING_OBJECT (self, "Can't link renderer with ffmpegcolorspace");
-        gst_object_unref (src);
+        if (is_video != _is_video_pad (sink, &render_is_hw) ||
+            is_hw != render_is_hw) {
+          GST_DEBUG_OBJECT (self, "Renderer doesn't support %s video",
+              is_hw ? "surface" : "raw");
+          gst_object_unref (sink);
+          continue;
+        }
         gst_object_unref (sink);
-        continue;
-      }
-      gst_object_unref (src);
-      gst_object_unref (sink);
 
-      if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
-                  "ffmpegcolorspace", NULL, "pre-colorspace", FALSE))) {
-        continue;
-      }
+        if (!is_hw) {
+          /* First link everything internally */
+          if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
+                      COLORSPACE, NULL, "post-colorspace", FALSE))) {
+            continue;
+          }
+          src = gst_element_get_static_pad (element, "src");
+          if (G_UNLIKELY (!src)) {
+            GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
+            continue;
+          }
 
-      sink = _get_video_pad (element);
-      if (G_UNLIKELY (!sink)) {
-        GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
-        continue;
-      }
+          sink = gst_element_get_static_pad (self->post_colorspace, "sink");
+          if (G_UNLIKELY (!sink)) {
+            GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+            gst_object_unref (src);
+            continue;
+          }
 
-      src = gst_element_get_static_pad (self->pre_colorspace, "src");
-      if (G_UNLIKELY (!src)) {
-        GST_WARNING_OBJECT (self, "Can't get srcpad from ffmpegcolorspace");
-        gst_object_unref (sink);
-        continue;
-      }
+          if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+            GST_WARNING_OBJECT (self, "Can't link renderer with " COLORSPACE);
+            gst_object_unref (src);
+            gst_object_unref (sink);
+            continue;
+          }
+          gst_object_unref (src);
+          gst_object_unref (sink);
 
-      if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
-        GST_WARNING_OBJECT (self, "Can't link ffmpegcolorspace to renderer");
-        gst_object_unref (src);
+          if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
+                      COLORSPACE, NULL, "pre-colorspace", FALSE))) {
+            continue;
+          }
+
+          sink = _get_video_pad (element);
+          if (G_UNLIKELY (!sink)) {
+            GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
+            continue;
+          }
+
+          src = gst_element_get_static_pad (self->pre_colorspace, "src");
+          if (G_UNLIKELY (!src)) {
+            GST_WARNING_OBJECT (self, "Can't get srcpad from " COLORSPACE);
+            gst_object_unref (sink);
+            continue;
+          }
+
+          if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+            GST_WARNING_OBJECT (self, "Can't link " COLORSPACE " to renderer");
+            gst_object_unref (src);
+            gst_object_unref (sink);
+            continue;
+          }
+          gst_object_unref (src);
+          gst_object_unref (sink);
+
+          /* Set src ghostpad target */
+          src = gst_element_get_static_pad (self->post_colorspace, "src");
+          if (G_UNLIKELY (!src)) {
+            GST_WARNING_OBJECT (self, "Can't get src pad from " COLORSPACE);
+            continue;
+          }
+        } else {
+          /* Set src ghostpad target in the harware accelerated case */
+
+          src = gst_element_get_static_pad (self->renderer, "src");
+          if (G_UNLIKELY (!src)) {
+            GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
+            continue;
+          }
+        }
+      } else {                  /* No video pad */
+        GstCaps *allowed_caps, *video_caps = NULL;
+        GstPad *video_peer;
+        gboolean can_intersect = FALSE;
+
+        video_peer = gst_pad_get_peer (self->video_sinkpad);
+        if (video_peer) {
+          video_caps = gst_pad_get_negotiated_caps (video_peer);
+          if (!video_caps) {
+            video_caps = gst_pad_get_caps_reffed (video_peer);
+          }
+          gst_object_unref (video_peer);
+        }
+
+        sink = _get_video_pad (element);
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
+          continue;
+        }
+        allowed_caps = gst_pad_get_caps_reffed (sink);
         gst_object_unref (sink);
-        continue;
-      }
-      gst_object_unref (src);
-      gst_object_unref (sink);
 
-      /* Set src ghostpad target */
-      src = gst_element_get_static_pad (self->post_colorspace, "src");
-      if (G_UNLIKELY (!src)) {
-        GST_WARNING_OBJECT (self, "Can't get src pad from ffmpegcolorspace");
-        continue;
+        if (allowed_caps && video_caps)
+          can_intersect = gst_caps_can_intersect (allowed_caps, video_caps);
+
+        if (allowed_caps)
+          gst_caps_unref (allowed_caps);
+
+        if (video_caps)
+          gst_caps_unref (video_caps);
+
+        if (G_UNLIKELY (!can_intersect)) {
+          GST_WARNING_OBJECT (self, "Renderer with custom caps is not "
+              "compatible with video stream");
+          continue;
+        }
+
+        src = gst_element_get_static_pad (element, "src");
+        if (G_UNLIKELY (!src)) {
+          GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
+          continue;
+        }
       }
 
       if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
@@ -1163,7 +1333,7 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
 
         sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
         if (G_UNLIKELY (!sink)) {
-          GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
+          GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
           continue;
         }
 
@@ -1203,10 +1373,19 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
       }
 
       /* Set the sink ghostpad targets */
-      sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
-      if (G_UNLIKELY (!sink)) {
-        GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
-        continue;
+      if (self->pre_colorspace) {
+        sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+          continue;
+        }
+      } else {
+        sink = _get_video_pad (element);
+        if (G_UNLIKELY (!sink)) {
+          GST_WARNING_OBJECT (self, "Can't get sink pad from %" GST_PTR_FORMAT,
+              element);
+          continue;
+        }
       }
 
       if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
@@ -1244,11 +1423,9 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
   } else {
     GST_DEBUG_OBJECT (self, "Everything worked, unblocking pads");
     gst_pad_set_blocked_async_full (self->video_block_pad, FALSE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
     gst_pad_set_blocked_async_full (self->subtitle_block_pad, FALSE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
     do_async_done (self);
   }
 
@@ -1278,11 +1455,9 @@ gst_subtitle_overlay_change_state (GstElement * element,
       GST_SUBTITLE_OVERLAY_LOCK (self);
       /* Set the internal pads to blocking */
       gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
       gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
       GST_SUBTITLE_OVERLAY_UNLOCK (self);
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
@@ -1328,6 +1503,15 @@ gst_subtitle_overlay_change_state (GstElement * element,
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       GST_DEBUG_OBJECT (self, "State change PAUSED->READY");
+
+      /* Set the pads back to blocking state */
+      GST_SUBTITLE_OVERLAY_LOCK (self);
+      gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
+          _pad_blocked_cb, self, NULL);
+      gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
+          _pad_blocked_cb, self, NULL);
+      GST_SUBTITLE_OVERLAY_UNLOCK (self);
+
       do_async_done (self);
 
       break;
@@ -1349,13 +1533,13 @@ gst_subtitle_overlay_change_state (GstElement * element,
       if (self->video_block_pad) {
         pad = self->video_block_pad;
         gst_pad_set_blocked_async_full (pad, FALSE, _pad_blocked_cb,
-            gst_object_ref (self), (GDestroyNotify) gst_object_unref);
+            self, NULL);
       }
 
       if (self->subtitle_block_pad) {
         pad = self->subtitle_block_pad;
         gst_pad_set_blocked_async_full (pad, FALSE, _pad_blocked_cb,
-            gst_object_ref (self), (GDestroyNotify) gst_object_unref);
+            self, NULL);
       }
 
       /* Remove elements */
@@ -1415,12 +1599,10 @@ gst_subtitle_overlay_handle_message (GstBin * bin, GstMessage * message)
       self->subtitle_error = TRUE;
 
       gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
 
       gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
       GST_SUBTITLE_OVERLAY_UNLOCK (self);
     }
   }
@@ -1476,12 +1658,10 @@ gst_subtitle_overlay_set_property (GObject * object, guint prop_id,
           g_object_set (self->renderer, self->silent_property, silent, NULL);
       } else {
         gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-            _pad_blocked_cb, gst_object_ref (self),
-            (GDestroyNotify) gst_object_unref);
+            _pad_blocked_cb, self, NULL);
 
         gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-            _pad_blocked_cb, gst_object_ref (self),
-            (GDestroyNotify) gst_object_unref);
+            _pad_blocked_cb, self, NULL);
       }
       GST_SUBTITLE_OVERLAY_UNLOCK (self);
       break;
@@ -1517,13 +1697,12 @@ gst_subtitle_overlay_base_init (gpointer g_class)
 {
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sinktemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subtitle_sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sinktemplate);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitle_sinktemplate);
 
   gst_element_class_set_details_simple (gstelement_class, "Subtitle Overlay",
       "Video/Overlay/Subtitle",
@@ -1589,7 +1768,7 @@ gst_subtitle_overlay_src_proxy_chain (GstPad * proxypad, GstBuffer * buffer)
     return GST_FLOW_ERROR;
   }
 
-  ret = self->src_proxy_chain (proxypad, buffer);
+  ret = gst_proxy_pad_chain_default (proxypad, buffer);
 
   if (IS_VIDEO_CHAIN_IGNORE_ERROR (ret)) {
     GST_ERROR_OBJECT (self, "Downstream chain error: %s",
@@ -1626,7 +1805,7 @@ gst_subtitle_overlay_src_proxy_event (GstPad * proxypad, GstEvent * event)
     event = NULL;
     ret = TRUE;
   } else {
-    ret = self->src_proxy_event (proxypad, event);
+    ret = gst_proxy_pad_event_default (proxypad, event);
     event = NULL;
   }
 
@@ -1644,18 +1823,33 @@ static gboolean
 gst_subtitle_overlay_video_sink_setcaps (GstPad * pad, GstCaps * caps)
 {
   GstSubtitleOverlay *self = GST_SUBTITLE_OVERLAY (gst_pad_get_parent (pad));
+  GstPad *target;
   gboolean ret = TRUE;
   gint fps_n, fps_d;
 
   GST_DEBUG_OBJECT (pad, "Setting caps: %" GST_PTR_FORMAT, caps);
 
+  target = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (self->video_sinkpad));
+
+  GST_SUBTITLE_OVERLAY_LOCK (self);
+
+  if (!target || !gst_pad_accept_caps (target, caps)) {
+    GST_DEBUG_OBJECT (pad, "Target did not accept caps -- reconfiguring");
+
+    gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
+        _pad_blocked_cb, self, NULL);
+
+    gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
+        _pad_blocked_cb, self, NULL);
+  }
+
   if (!gst_video_parse_caps_framerate (caps, &fps_n, &fps_d)) {
     GST_ERROR_OBJECT (pad, "Failed to parse framerate from caps");
     ret = FALSE;
+    GST_SUBTITLE_OVERLAY_UNLOCK (self);
     goto out;
   }
 
-  GST_SUBTITLE_OVERLAY_LOCK (self);
   if (self->fps_n != fps_n || self->fps_d != fps_d) {
     GST_DEBUG_OBJECT (self, "New video fps: %d/%d", fps_n, fps_d);
     self->fps_n = fps_n;
@@ -1664,9 +1858,11 @@ gst_subtitle_overlay_video_sink_setcaps (GstPad * pad, GstCaps * caps)
   }
   GST_SUBTITLE_OVERLAY_UNLOCK (self);
 
-  ret = self->video_sink_setcaps (pad, caps);
+  ret = gst_ghost_pad_setcaps_default (pad, caps);
 
 out:
+  if (target)
+    gst_object_unref (target);
   gst_object_unref (self);
   return ret;
 }
@@ -1684,7 +1880,7 @@ gst_subtitle_overlay_video_sink_event (GstPad * pad, GstEvent * event)
     self->fps_n = self->fps_d = 0;
   }
 
-  ret = self->video_sink_event (pad, gst_event_ref (event));
+  ret = gst_proxy_pad_event_default (pad, gst_event_ref (event));
 
   if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
     gboolean update;
@@ -1700,7 +1896,7 @@ gst_subtitle_overlay_video_sink_event (GstPad * pad, GstEvent * event)
     if (format != GST_FORMAT_TIME) {
       GST_ERROR_OBJECT (pad, "Newsegment event in non-time format: %s",
           gst_format_get_name (format));
-      gst_object_unref (event);
+      gst_event_unref (event);
       gst_object_unref (self);
       return FALSE;
     }
@@ -1722,7 +1918,7 @@ static GstFlowReturn
 gst_subtitle_overlay_video_sink_chain (GstPad * pad, GstBuffer * buffer)
 {
   GstSubtitleOverlay *self = GST_SUBTITLE_OVERLAY (GST_PAD_PARENT (pad));
-  GstFlowReturn ret = self->video_sink_chain (pad, buffer);
+  GstFlowReturn ret = gst_proxy_pad_chain_default (pad, buffer);
 
   if (G_UNLIKELY (self->downstream_chain_error) || self->passthrough_identity) {
     return ret;
@@ -1732,12 +1928,10 @@ gst_subtitle_overlay_video_sink_chain (GstPad * pad, GstBuffer * buffer)
     GST_SUBTITLE_OVERLAY_LOCK (self);
     self->subtitle_error = TRUE;
     gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
 
     gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
     GST_SUBTITLE_OVERLAY_UNLOCK (self);
 
     return GST_FLOW_OK;
@@ -1755,7 +1949,7 @@ gst_subtitle_overlay_subtitle_sink_chain (GstPad * pad, GstBuffer * buffer)
     gst_buffer_unref (buffer);
     return GST_FLOW_OK;
   } else {
-    GstFlowReturn ret = self->subtitle_sink_chain (pad, buffer);
+    GstFlowReturn ret = gst_proxy_pad_chain_default (pad, buffer);
 
     if (IS_SUBTITLE_CHAIN_IGNORE_ERROR (ret)) {
       GST_DEBUG_OBJECT (self, "Subtitle chain error: %s",
@@ -1763,12 +1957,10 @@ gst_subtitle_overlay_subtitle_sink_chain (GstPad * pad, GstBuffer * buffer)
       GST_SUBTITLE_OVERLAY_LOCK (self);
       self->subtitle_error = TRUE;
       gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
 
       gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
       GST_SUBTITLE_OVERLAY_UNLOCK (self);
 
       return GST_FLOW_OK;
@@ -1802,7 +1994,7 @@ static gboolean
 gst_subtitle_overlay_subtitle_sink_acceptcaps (GstPad * pad, GstCaps * caps)
 {
   GstCaps *othercaps = gst_subtitle_overlay_subtitle_sink_getcaps (pad);
-  gboolean ret = gst_caps_can_intersect (caps, othercaps);
+  gboolean ret = gst_caps_is_subset (caps, othercaps);
 
   gst_caps_unref (othercaps);
 
@@ -1826,7 +2018,7 @@ gst_subtitle_overlay_subtitle_sink_setcaps (GstPad * pad, GstCaps * caps)
 
   if (target && gst_pad_accept_caps (target, caps)) {
     GST_DEBUG_OBJECT (pad, "Target accepts caps");
-    ret = self->subtitle_sink_setcaps (pad, caps);
+    ret = gst_ghost_pad_setcaps_default (pad, caps);
     GST_SUBTITLE_OVERLAY_UNLOCK (self);
     goto out;
   }
@@ -1836,12 +2028,10 @@ gst_subtitle_overlay_subtitle_sink_setcaps (GstPad * pad, GstCaps * caps)
   self->subtitle_error = FALSE;
 
   gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-      _pad_blocked_cb, gst_object_ref (self),
-      (GDestroyNotify) gst_object_unref);
+      _pad_blocked_cb, self, NULL);
 
   gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-      _pad_blocked_cb, gst_object_ref (self),
-      (GDestroyNotify) gst_object_unref);
+      _pad_blocked_cb, self, NULL);
   GST_SUBTITLE_OVERLAY_UNLOCK (self);
 
 out:
@@ -1877,17 +2067,15 @@ gst_subtitle_overlay_subtitle_sink_link (GstPad * pad, GstPad * peer)
     self->subtitle_error = FALSE;
 
     gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
 
     gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
     GST_SUBTITLE_OVERLAY_UNLOCK (self);
     gst_caps_unref (caps);
   }
 
-  ret = self->subtitle_sink_link (pad, peer);
+  ret = gst_ghost_pad_link_default (pad, peer);
 
   gst_object_unref (self);
   return ret;
@@ -1906,20 +2094,18 @@ gst_subtitle_overlay_subtitle_sink_unlink (GstPad * pad)
   GST_DEBUG_OBJECT (pad, "Pad unlinking");
   gst_caps_replace (&self->subcaps, NULL);
 
-  self->subtitle_sink_unlink (pad);
+  gst_ghost_pad_unlink_default (pad);
 
   GST_SUBTITLE_OVERLAY_LOCK (self);
   self->subtitle_error = FALSE;
 
   if (self->subtitle_block_pad)
     gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
 
   if (self->video_block_pad)
     gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-        _pad_blocked_cb, gst_object_ref (self),
-        (GDestroyNotify) gst_object_unref);
+        _pad_blocked_cb, self, NULL);
   GST_SUBTITLE_OVERLAY_UNLOCK (self);
 
   gst_object_unref (self);
@@ -1942,12 +2128,10 @@ gst_subtitle_overlay_subtitle_sink_event (GstPad * pad, GstEvent * event)
     self->subtitle_error = FALSE;
     if (self->subtitle_block_pad)
       gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
     if (self->video_block_pad)
       gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
-          _pad_blocked_cb, gst_object_ref (self),
-          (GDestroyNotify) gst_object_unref);
+          _pad_blocked_cb, self, NULL);
     GST_SUBTITLE_OVERLAY_UNLOCK (self);
 
     gst_event_unref (event);
@@ -1993,7 +2177,7 @@ gst_subtitle_overlay_subtitle_sink_event (GstPad * pad, GstEvent * event)
       break;
   }
 
-  ret = self->subtitle_sink_event (pad, gst_event_ref (event));
+  ret = gst_proxy_pad_event_default (pad, gst_event_ref (event));
 
   if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
     gboolean update;
@@ -2031,7 +2215,6 @@ gst_subtitle_overlay_init (GstSubtitleOverlay * self,
     GstSubtitleOverlayClass * klass)
 {
   GstPadTemplate *templ;
-  GstIterator *it;
   GstPad *proxypad = NULL;
 
   self->lock = g_mutex_new ();
@@ -2039,67 +2222,48 @@ gst_subtitle_overlay_init (GstSubtitleOverlay * self,
 
   templ = gst_static_pad_template_get (&srctemplate);
   self->srcpad = gst_ghost_pad_new_no_target_from_template ("src", templ);
-  it = gst_pad_iterate_internal_links (self->srcpad);
-  if (G_UNLIKELY (!it
-          || gst_iterator_next (it, (gpointer) & proxypad) != GST_ITERATOR_OK
-          || proxypad == NULL)) {
-    GST_ERROR_OBJECT (self, "Failed to get proxypad of srcpad");
-  } else {
-    self->src_proxy_event = GST_PAD_EVENTFUNC (proxypad);
-    gst_pad_set_event_function (proxypad,
-        GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_event));
-    self->src_proxy_chain = GST_PAD_CHAINFUNC (proxypad);
-    gst_pad_set_chain_function (proxypad,
-        GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_chain));
-    gst_object_unref (proxypad);
-  }
-  if (it)
-    gst_iterator_free (it);
+  gst_object_unref (templ);
+
+  proxypad =
+      GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (self->srcpad)));
+  gst_pad_set_event_function (proxypad,
+      GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_event));
+  gst_pad_set_chain_function (proxypad,
+      GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_chain));
+  gst_object_unref (proxypad);
 
   gst_element_add_pad (GST_ELEMENT_CAST (self), self->srcpad);
 
   templ = gst_static_pad_template_get (&video_sinktemplate);
   self->video_sinkpad =
       gst_ghost_pad_new_no_target_from_template ("video_sink", templ);
-  self->video_sink_event = GST_PAD_EVENTFUNC (self->video_sinkpad);
+  gst_object_unref (templ);
   gst_pad_set_event_function (self->video_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_video_sink_event));
-  self->video_sink_setcaps = GST_PAD_SETCAPSFUNC (self->video_sinkpad);
   gst_pad_set_setcaps_function (self->video_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_video_sink_setcaps));
-  self->video_sink_chain = GST_PAD_CHAINFUNC (self->video_sinkpad);
   gst_pad_set_chain_function (self->video_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_video_sink_chain));
 
-  proxypad = NULL;
-  it = gst_pad_iterate_internal_links (self->video_sinkpad);
-  if (G_UNLIKELY (!it
-          || gst_iterator_next (it, (gpointer) & proxypad) != GST_ITERATOR_OK
-          || proxypad == NULL)) {
-    GST_ERROR_OBJECT (self,
-        "Failed to get internally linked pad from video sinkpad");
-  }
-  if (it)
-    gst_iterator_free (it);
+  proxypad =
+      GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+          (self->video_sinkpad)));
   self->video_block_pad = proxypad;
+  gst_object_unref (proxypad);
   gst_element_add_pad (GST_ELEMENT_CAST (self), self->video_sinkpad);
 
   templ = gst_static_pad_template_get (&subtitle_sinktemplate);
   self->subtitle_sinkpad =
       gst_ghost_pad_new_no_target_from_template ("subtitle_sink", templ);
-  self->subtitle_sink_link = GST_PAD_LINKFUNC (self->subtitle_sinkpad);
+  gst_object_unref (templ);
   gst_pad_set_link_function (self->subtitle_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_link));
-  self->subtitle_sink_unlink = GST_PAD_UNLINKFUNC (self->subtitle_sinkpad);
   gst_pad_set_unlink_function (self->subtitle_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_unlink));
-  self->subtitle_sink_event = GST_PAD_EVENTFUNC (self->subtitle_sinkpad);
   gst_pad_set_event_function (self->subtitle_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_event));
-  self->subtitle_sink_setcaps = GST_PAD_SETCAPSFUNC (self->subtitle_sinkpad);
   gst_pad_set_setcaps_function (self->subtitle_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_setcaps));
-  self->subtitle_sink_chain = GST_PAD_CHAINFUNC (self->subtitle_sinkpad);
   gst_pad_set_chain_function (self->subtitle_sinkpad,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_chain));
   gst_pad_set_getcaps_function (self->subtitle_sinkpad,
@@ -2108,17 +2272,11 @@ gst_subtitle_overlay_init (GstSubtitleOverlay * self,
       GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_acceptcaps));
   gst_pad_set_bufferalloc_function (self->subtitle_sinkpad, NULL);
 
-  proxypad = NULL;
-  it = gst_pad_iterate_internal_links (self->subtitle_sinkpad);
-  if (G_UNLIKELY (!it
-          || gst_iterator_next (it, (gpointer) & proxypad) != GST_ITERATOR_OK
-          || proxypad == NULL)) {
-    GST_ERROR_OBJECT (self,
-        "Failed to get internally linked pad from subtitle sinkpad");
-  }
-  if (it)
-    gst_iterator_free (it);
+  proxypad =
+      GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+          (self->subtitle_sinkpad)));
   self->subtitle_block_pad = proxypad;
+  gst_object_unref (proxypad);
 
   gst_element_add_pad (GST_ELEMENT_CAST (self), self->subtitle_sinkpad);
 
index eee5c78..a6e0d39 100644 (file)
@@ -68,26 +68,16 @@ struct _GstSubtitleOverlay
   gboolean do_async;
 
   GstPad *srcpad;
-  GstPadEventFunction src_proxy_event;
-  GstPadChainFunction src_proxy_chain;
   gboolean downstream_chain_error;
 
   GstPad *video_sinkpad;
   GstPad *video_block_pad;
-  GstPadSetCapsFunction video_sink_setcaps;
-  GstPadEventFunction video_sink_event;
-  GstPadChainFunction video_sink_chain;
   gboolean video_sink_blocked;
   GstSegment video_segment;
   gint fps_n, fps_d;
 
   GstPad *subtitle_sinkpad;
   GstPad *subtitle_block_pad;
-  GstPadLinkFunction subtitle_sink_link;
-  GstPadUnlinkFunction subtitle_sink_unlink;
-  GstPadEventFunction subtitle_sink_event;
-  GstPadChainFunction subtitle_sink_chain;
-  GstPadSetCapsFunction subtitle_sink_setcaps;
   gboolean subtitle_sink_blocked;
   GstSegment subtitle_segment;
   gboolean subtitle_flush;
index bf10583..2a5026f 100644 (file)
@@ -38,6 +38,8 @@
 #include "gstplay-enum.h"
 #include "gstrawcaps.h"
 
+#include "gst/glib-compat-private.h"
+
 #define GST_TYPE_URI_DECODE_BIN \
   (gst_uri_decode_bin_get_type())
 #define GST_URI_DECODE_BIN(obj) \
@@ -57,6 +59,12 @@ typedef struct _GstURIDecodeBinClass GstURIDecodeBinClass;
 #define GST_URI_DECODE_BIN_LOCK(dec) (g_mutex_lock(GST_URI_DECODE_BIN_GET_LOCK(dec)))
 #define GST_URI_DECODE_BIN_UNLOCK(dec) (g_mutex_unlock(GST_URI_DECODE_BIN_GET_LOCK(dec)))
 
+typedef struct _GstURIDecodeBinStream
+{
+  gulong probe_id;
+  guint bitrate;
+} GstURIDecodeBinStream;
+
 /**
  * GstURIDecodeBin
  *
@@ -91,7 +99,7 @@ struct _GstURIDecodeBin
   guint have_type_id;           /* have-type signal id from typefind */
   GSList *decodebins;
   GSList *pending_decodebins;
-  GSList *srcpads;
+  GHashTable *streams;
   gint numpads;
 
   /* for dynamic sources */
@@ -99,7 +107,7 @@ struct _GstURIDecodeBin
   guint src_nmp_sig_id;         /* no-more-pads signal id */
   gint pending;
 
-  gboolean async_pending;       /* async-start has been emited */
+  gboolean async_pending;       /* async-start has been emitted */
 
   gboolean expose_allstreams;   /* Whether to expose unknow type streams or not */
 
@@ -126,7 +134,7 @@ struct _GstURIDecodeBinClass
     GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
       GstPad * pad, GstCaps * caps, GstElementFactory * factory);
 
-  /* emited when all data is decoded */
+  /* emitted when all data is decoded */
   void (*drained) (GstElement * element);
 };
 
@@ -207,8 +215,7 @@ gst_uri_decode_bin_base_init (gpointer g_class)
 {
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
   gst_element_class_set_details_simple (gstelement_class,
       "URI Decoder", "Generic/Bin/Decoder",
       "Autoplug and decode an URI to raw media",
@@ -507,7 +514,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
    * @pad: The #GstPad.
    * @caps: The #GstCaps found.
    *
-   * This function is emited when an array of possible factories for @caps on
+   * This function is emitted when an array of possible factories for @caps on
    * @pad is needed. Uridecodebin will by default return an array with all
    * compatible factories, sorted by rank.
    *
@@ -541,7 +548,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
    * @factories: A #GValueArray of possible #GstElementFactory to use.
    *
    * Once decodebin2 has found the possible #GstElementFactory objects to try
-   * for @caps on @pad, this signal is emited. The purpose of the signal is for
+   * for @caps on @pad, this signal is emitted. The purpose of the signal is for
    * the application to perform additional sorting or filtering on the element
    * factory array.
    *
@@ -576,7 +583,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
    *
    * This signal is emitted once uridecodebin has found all the possible
    * #GstElementFactory that can be used to handle the given @caps. For each of
-   * those factories, this signal is emited.
+   * those factories, this signal is emitted.
    *
    * The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
    * value indicating what decodebin2 should do next.
@@ -935,7 +942,99 @@ source_no_more_pads (GstElement * element, GstURIDecodeBin * bin)
   no_more_pads_full (element, FALSE, bin);
 }
 
-/* Called by the signal handlers when a decodebin has 
+static void
+configure_stream_buffering (GstURIDecodeBin * decoder)
+{
+  GstElement *queue = NULL;
+  GHashTableIter iter;
+  gpointer key, value;
+  gint bitrate = 0;
+
+  /* automatic configuration enabled ? */
+  if (decoder->buffer_size != -1)
+    return;
+
+  GST_URI_DECODE_BIN_LOCK (decoder);
+  if (decoder->queue)
+    queue = gst_object_ref (decoder->queue);
+
+  g_hash_table_iter_init (&iter, decoder->streams);
+  while (g_hash_table_iter_next (&iter, &key, &value)) {
+    GstURIDecodeBinStream *stream = value;
+
+    if (stream->bitrate && bitrate >= 0)
+      bitrate += stream->bitrate;
+    else
+      bitrate = -1;
+  }
+  GST_URI_DECODE_BIN_UNLOCK (decoder);
+
+  GST_DEBUG_OBJECT (decoder, "overall bitrate %d", bitrate);
+  if (!queue)
+    return;
+
+  if (bitrate > 0) {
+    guint64 time;
+    guint bytes;
+
+    /* all streams have a bitrate;
+     * configure queue size based on queue duration using combined bitrate */
+    g_object_get (queue, "max-size-time", &time, NULL);
+    GST_DEBUG_OBJECT (decoder, "queue buffering time %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (time));
+    if (time > 0) {
+      bytes = gst_util_uint64_scale (time, bitrate, 8 * GST_SECOND);
+      GST_DEBUG_OBJECT (decoder, "corresponds to buffer size %d", bytes);
+      g_object_set (queue, "max-size-bytes", bytes, NULL);
+    }
+  }
+
+  gst_object_unref (queue);
+}
+
+static gboolean
+decoded_pad_event_probe (GstPad * pad, GstEvent * event,
+    GstURIDecodeBin * decoder)
+{
+  GST_LOG_OBJECT (pad, "%s, decoder %p", GST_EVENT_TYPE_NAME (event), decoder);
+
+  /* look for a bitrate tag */
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_TAG:
+    {
+      GstTagList *list;
+      guint bitrate = 0;
+      GstURIDecodeBinStream *stream;
+
+      gst_event_parse_tag (event, &list);
+      if (!gst_tag_list_get_uint_index (list, GST_TAG_NOMINAL_BITRATE, 0,
+              &bitrate)) {
+        gst_tag_list_get_uint_index (list, GST_TAG_BITRATE, 0, &bitrate);
+      }
+      GST_DEBUG_OBJECT (pad, "found bitrate %u", bitrate);
+      if (bitrate) {
+        GST_URI_DECODE_BIN_LOCK (decoder);
+        stream = g_hash_table_lookup (decoder->streams, pad);
+        GST_URI_DECODE_BIN_UNLOCK (decoder);
+        if (stream) {
+          stream->bitrate = bitrate;
+          /* no longer need this probe now */
+          gst_pad_remove_event_probe (pad, stream->probe_id);
+          /* configure buffer if possible */
+          configure_stream_buffering (decoder);
+        }
+      }
+      break;
+    }
+    default:
+      break;
+  }
+
+  /* never drop */
+  return TRUE;
+}
+
+/* Called by the signal handlers when a decodebin has
  * found a new raw pad.  
  */
 static void
@@ -945,6 +1044,7 @@ new_decoded_pad_cb (GstElement * element, GstPad * pad, gboolean last,
   GstPad *newpad;
   GstPadTemplate *pad_tmpl;
   gchar *padname;
+  GstURIDecodeBinStream *stream;
 
   GST_DEBUG_OBJECT (element, "new decoded pad, name: <%s>. Last: %d",
       GST_PAD_NAME (pad), last);
@@ -962,11 +1062,19 @@ new_decoded_pad_cb (GstElement * element, GstPad * pad, gboolean last,
   /* store ref to the ghostpad so we can remove it */
   g_object_set_data (G_OBJECT (pad), "uridecodebin.ghostpad", newpad);
 
+  /* add event probe to monitor tags */
+  stream = g_slice_alloc0 (sizeof (GstURIDecodeBinStream));
+  stream->probe_id =
+      gst_pad_add_event_probe (pad, G_CALLBACK (decoded_pad_event_probe),
+      decoder);
+  GST_URI_DECODE_BIN_LOCK (decoder);
+  g_hash_table_insert (decoder->streams, pad, stream);
+  GST_URI_DECODE_BIN_UNLOCK (decoder);
+
   gst_pad_set_active (newpad, TRUE);
   gst_element_add_pad (GST_ELEMENT_CAST (decoder), newpad);
 }
 
-
 static gboolean
 source_pad_event_probe (GstPad * pad, GstEvent * event,
     GstURIDecodeBin * decoder)
@@ -1292,7 +1400,7 @@ analyse_source (GstURIDecodeBin * decoder, gboolean * is_raw,
         gst_iterator_resync (pads_iter);
         break;
       case GST_ITERATOR_OK:
-        /* we now officially have an ouput pad */
+        /* we now officially have an output pad */
         *have_out = TRUE;
 
         /* if FALSE, this pad has no caps and we continue with the next pad. */
@@ -1425,22 +1533,6 @@ remove_decoders (GstURIDecodeBin * bin, gboolean force)
 }
 
 static void
-remove_pads (GstURIDecodeBin * bin)
-{
-  GSList *walk;
-
-  for (walk = bin->srcpads; walk; walk = g_slist_next (walk)) {
-    GstPad *pad = GST_PAD_CAST (walk->data);
-
-    GST_DEBUG_OBJECT (bin, "removing old pad");
-    gst_pad_set_active (pad, FALSE);
-    gst_element_remove_pad (GST_ELEMENT_CAST (bin), pad);
-  }
-  g_slist_free (bin->srcpads);
-  bin->srcpads = NULL;
-}
-
-static void
 proxy_unknown_type_signal (GstElement * element, GstPad * pad, GstCaps * caps,
     GstURIDecodeBin * dec)
 {
@@ -1791,6 +1883,12 @@ could_not_link:
   }
 }
 
+static void
+free_stream (gpointer value)
+{
+  g_slice_free (GstURIDecodeBinStream, value);
+}
+
 /* remove source and all related elements */
 static void
 remove_source (GstURIDecodeBin * bin)
@@ -1824,6 +1922,10 @@ remove_source (GstURIDecodeBin * bin)
     gst_bin_remove (GST_BIN_CAST (bin), bin->typefind);
     bin->typefind = NULL;
   }
+  if (bin->streams) {
+    g_hash_table_destroy (bin->streams);
+    bin->streams = NULL;
+  }
   /* Don't loose the SOURCE flag */
   GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_IS_SOURCE);
 }
@@ -1918,6 +2020,9 @@ setup_source (GstURIDecodeBin * decoder)
   /* remove the old decoders now, if any */
   remove_decoders (decoder, FALSE);
 
+  /* stream admin setup */
+  decoder->streams = g_hash_table_new_full (NULL, NULL, NULL, free_stream);
+
   /* see if the source element emits raw audio/video all by itself,
    * if so, we can create streams for the pads and be done with it.
    * Also check that is has source pads, if not, we assume it will
@@ -2403,14 +2508,12 @@ gst_uri_decode_bin_change_state (GstElement * element,
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       GST_DEBUG ("paused to ready");
       remove_decoders (decoder, FALSE);
-      remove_pads (decoder);
       remove_source (decoder);
       do_async_done (decoder);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       GST_DEBUG ("ready to null");
       remove_decoders (decoder, TRUE);
-      remove_pads (decoder);
       remove_source (decoder);
       break;
     default:
index a683c4c..f026e27 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -118,8 +125,8 @@ am_libgstsubparse_la_OBJECTS = libgstsubparse_la-gstssaparse.lo \
        libgstsubparse_la-mpl2parse.lo \
        libgstsubparse_la-qttextparse.lo
 libgstsubparse_la_OBJECTS = $(am_libgstsubparse_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstsubparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -135,21 +142,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstsubparse_la_SOURCES)
 DIST_SOURCES = $(am__libgstsubparse_la_SOURCES_DIST)
@@ -217,6 +224,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -277,6 +285,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -286,9 +295,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -311,6 +323,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -383,10 +396,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -420,7 +436,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -534,7 +549,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstsubparse.la: $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_DEPENDENCIES) 
+libgstsubparse.la: $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_DEPENDENCIES) $(EXTRA_libgstsubparse_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstsubparse_la_LINK) -rpath $(plugindir) $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -553,74 +568,65 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstsubparse_la-gstssaparse.lo: gstssaparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-gstssaparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-gstssaparse.Tpo -c -o libgstsubparse_la-gstssaparse.lo `test -f 'gstssaparse.c' || echo '$(srcdir)/'`gstssaparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-gstssaparse.Tpo $(DEPDIR)/libgstsubparse_la-gstssaparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstssaparse.c' object='libgstsubparse_la-gstssaparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstssaparse.c' object='libgstsubparse_la-gstssaparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstssaparse.lo `test -f 'gstssaparse.c' || echo '$(srcdir)/'`gstssaparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstssaparse.lo `test -f 'gstssaparse.c' || echo '$(srcdir)/'`gstssaparse.c
 
 libgstsubparse_la-gstsubparse.lo: gstsubparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-gstsubparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-gstsubparse.Tpo -c -o libgstsubparse_la-gstsubparse.lo `test -f 'gstsubparse.c' || echo '$(srcdir)/'`gstsubparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-gstsubparse.Tpo $(DEPDIR)/libgstsubparse_la-gstsubparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstsubparse.c' object='libgstsubparse_la-gstsubparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstsubparse.c' object='libgstsubparse_la-gstsubparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstsubparse.lo `test -f 'gstsubparse.c' || echo '$(srcdir)/'`gstsubparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstsubparse.lo `test -f 'gstsubparse.c' || echo '$(srcdir)/'`gstsubparse.c
 
 libgstsubparse_la-samiparse.lo: samiparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-samiparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-samiparse.Tpo -c -o libgstsubparse_la-samiparse.lo `test -f 'samiparse.c' || echo '$(srcdir)/'`samiparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-samiparse.Tpo $(DEPDIR)/libgstsubparse_la-samiparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='samiparse.c' object='libgstsubparse_la-samiparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='samiparse.c' object='libgstsubparse_la-samiparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-samiparse.lo `test -f 'samiparse.c' || echo '$(srcdir)/'`samiparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-samiparse.lo `test -f 'samiparse.c' || echo '$(srcdir)/'`samiparse.c
 
 libgstsubparse_la-tmplayerparse.lo: tmplayerparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-tmplayerparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-tmplayerparse.Tpo -c -o libgstsubparse_la-tmplayerparse.lo `test -f 'tmplayerparse.c' || echo '$(srcdir)/'`tmplayerparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-tmplayerparse.Tpo $(DEPDIR)/libgstsubparse_la-tmplayerparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tmplayerparse.c' object='libgstsubparse_la-tmplayerparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmplayerparse.c' object='libgstsubparse_la-tmplayerparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-tmplayerparse.lo `test -f 'tmplayerparse.c' || echo '$(srcdir)/'`tmplayerparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-tmplayerparse.lo `test -f 'tmplayerparse.c' || echo '$(srcdir)/'`tmplayerparse.c
 
 libgstsubparse_la-mpl2parse.lo: mpl2parse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-mpl2parse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-mpl2parse.Tpo -c -o libgstsubparse_la-mpl2parse.lo `test -f 'mpl2parse.c' || echo '$(srcdir)/'`mpl2parse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-mpl2parse.Tpo $(DEPDIR)/libgstsubparse_la-mpl2parse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mpl2parse.c' object='libgstsubparse_la-mpl2parse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='mpl2parse.c' object='libgstsubparse_la-mpl2parse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-mpl2parse.lo `test -f 'mpl2parse.c' || echo '$(srcdir)/'`mpl2parse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-mpl2parse.lo `test -f 'mpl2parse.c' || echo '$(srcdir)/'`mpl2parse.c
 
 libgstsubparse_la-qttextparse.lo: qttextparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-qttextparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-qttextparse.Tpo -c -o libgstsubparse_la-qttextparse.lo `test -f 'qttextparse.c' || echo '$(srcdir)/'`qttextparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-qttextparse.Tpo $(DEPDIR)/libgstsubparse_la-qttextparse.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='qttextparse.c' object='libgstsubparse_la-qttextparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='qttextparse.c' object='libgstsubparse_la-qttextparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-qttextparse.lo `test -f 'qttextparse.c' || echo '$(srcdir)/'`qttextparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-qttextparse.lo `test -f 'qttextparse.c' || echo '$(srcdir)/'`qttextparse.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -727,10 +733,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 5aa68e3..e2dccd3 100644 (file)
@@ -58,10 +58,8 @@ gst_ssa_parse_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_details_simple (element_class,
       "SSA Subtitle Parser", "Codec/Parser/Subtitle",
       "Parses SSA subtitle streams",
index 7bf0f2d..9c31b54 100644 (file)
@@ -124,10 +124,8 @@ gst_sub_parse_base_init (GstSubParseClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_details_simple (element_class,
       "Subtitle parser", "Codec/Parser/Subtitle",
       "Parses subtitle (.sub) files into text streams",
@@ -263,6 +261,7 @@ gst_sub_parse_src_query (GstPad * pad, GstQuery * query)
         gst_query_set_position (query, GST_FORMAT_TIME,
             self->segment.last_stop);
       }
+      break;
     }
     case GST_QUERY_SEEKING:
     {
@@ -282,7 +281,6 @@ gst_sub_parse_src_query (GstPad * pad, GstQuery * query)
       }
 
       gst_query_set_seeking (query, fmt, seekable, seekable ? 0 : -1, -1);
-
       break;
     }
     default:
@@ -1238,17 +1236,18 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype)
   switch (regtype) {
     case GST_SUB_PARSE_REGEX_MDVDSUB:
       result =
-          (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}", 0, 0, &gerr);
+          (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}",
+          G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
       if (result == NULL) {
         g_warning ("Compilation of mdvd regex failed: %s", gerr->message);
         g_error_free (gerr);
       }
       break;
     case GST_SUB_PARSE_REGEX_SUBRIP:
-      result = (gpointer) g_regex_new ("^([ 0-9]){0,3}[0-9]\\s*(\x0d)?\x0a"
-          "[ 0-9][0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]"
-          " +--> +([ 0-9])?[0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]",
-          0, 0, &gerr);
+      result = (gpointer) g_regex_new ("^ {0,3}[ 0-9]{1,4}\\s*(\x0d)?\x0a"
+          " ?[0-9]{1,2}: ?[0-9]{1,2}: ?[0-9]{1,2}[,.] {0,2}[0-9]{1,3}"
+          " +--> +[0-9]{1,2}: ?[0-9]{1,2}: ?[0-9]{1,2}[,.] {0,2}[0-9]{1,2}",
+          G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
       if (result == NULL) {
         g_warning ("Compilation of subrip regex failed: %s", gerr->message);
         g_error_free (gerr);
@@ -1256,7 +1255,7 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype)
       break;
     case GST_SUB_PARSE_REGEX_DKS:
       result = (gpointer) g_regex_new ("^\\[[0-9]+:[0-9]+:[0-9]+\\].*",
-          0, 0, &gerr);
+          G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
       if (result == NULL) {
         g_warning ("Compilation of dks regex failed: %s", gerr->message);
         g_error_free (gerr);
@@ -1790,12 +1789,7 @@ gst_subparse_type_find (GstTypeFind * tf, gpointer private)
       }
     }
     converted_str = gst_convert_to_utf8 (str, 128, enc, &tmp, &err);
-    if (converted_str == NULL) {
-      GST_DEBUG ("Charset conversion failed: %s", err->message);
-      g_error_free (err);
-      g_free (str);
-      return;
-    } else {
+    if (converted_str != NULL) {
       g_free (str);
       str = converted_str;
     }
index 96b6273..4b0f983 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -65,6 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -110,6 +111,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -126,8 +133,8 @@ am__objects_1 = libgsttcp_la-gsttcp-enumtypes.lo \
 nodist_libgsttcp_la_OBJECTS = $(am__objects_1)
 libgsttcp_la_OBJECTS = $(am_libgsttcp_la_OBJECTS) \
        $(nodist_libgsttcp_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgsttcp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -143,21 +150,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgsttcp_la_SOURCES) $(nodist_libgsttcp_la_SOURCES)
 DIST_SOURCES = $(libgsttcp_la_SOURCES)
@@ -225,6 +232,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -285,6 +293,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -294,9 +303,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -319,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -391,10 +404,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -428,7 +444,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -511,6 +526,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -551,7 +567,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgsttcp.la: $(libgsttcp_la_OBJECTS) $(libgsttcp_la_DEPENDENCIES) 
+libgsttcp.la: $(libgsttcp_la_OBJECTS) $(libgsttcp_la_DEPENDENCIES) $(EXTRA_libgsttcp_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgsttcp_la_LINK) -rpath $(plugindir) $(libgsttcp_la_OBJECTS) $(libgsttcp_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -573,98 +589,86 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsttcp_la-gsttcpplugin.lo: gsttcpplugin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpplugin.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpplugin.Tpo -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpplugin.Tpo $(DEPDIR)/libgsttcp_la-gsttcpplugin.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcpplugin.c' object='libgsttcp_la-gsttcpplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcpplugin.c' object='libgsttcp_la-gsttcpplugin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
 
 libgsttcp_la-gsttcp.lo: gsttcp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp.Tpo -c -o libgsttcp_la-gsttcp.lo `test -f 'gsttcp.c' || echo '$(srcdir)/'`gsttcp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp.Tpo $(DEPDIR)/libgsttcp_la-gsttcp.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcp.c' object='libgsttcp_la-gsttcp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcp.c' object='libgsttcp_la-gsttcp.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp.lo `test -f 'gsttcp.c' || echo '$(srcdir)/'`gsttcp.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp.lo `test -f 'gsttcp.c' || echo '$(srcdir)/'`gsttcp.c
 
 libgsttcp_la-gstmultifdsink.lo: gstmultifdsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gstmultifdsink.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gstmultifdsink.Tpo -c -o libgsttcp_la-gstmultifdsink.lo `test -f 'gstmultifdsink.c' || echo '$(srcdir)/'`gstmultifdsink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gstmultifdsink.Tpo $(DEPDIR)/libgsttcp_la-gstmultifdsink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstmultifdsink.c' object='libgsttcp_la-gstmultifdsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstmultifdsink.c' object='libgsttcp_la-gstmultifdsink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gstmultifdsink.lo `test -f 'gstmultifdsink.c' || echo '$(srcdir)/'`gstmultifdsink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gstmultifdsink.lo `test -f 'gstmultifdsink.c' || echo '$(srcdir)/'`gstmultifdsink.c
 
 libgsttcp_la-gsttcpclientsrc.lo: gsttcpclientsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpclientsrc.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Tpo -c -o libgsttcp_la-gsttcpclientsrc.lo `test -f 'gsttcpclientsrc.c' || echo '$(srcdir)/'`gsttcpclientsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Tpo $(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcpclientsrc.c' object='libgsttcp_la-gsttcpclientsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcpclientsrc.c' object='libgsttcp_la-gsttcpclientsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsrc.lo `test -f 'gsttcpclientsrc.c' || echo '$(srcdir)/'`gsttcpclientsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsrc.lo `test -f 'gsttcpclientsrc.c' || echo '$(srcdir)/'`gsttcpclientsrc.c
 
 libgsttcp_la-gsttcpclientsink.lo: gsttcpclientsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpclientsink.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpclientsink.Tpo -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo '$(srcdir)/'`gsttcpclientsink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpclientsink.Tpo $(DEPDIR)/libgsttcp_la-gsttcpclientsink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcpclientsink.c' object='libgsttcp_la-gsttcpclientsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcpclientsink.c' object='libgsttcp_la-gsttcpclientsink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo '$(srcdir)/'`gsttcpclientsink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo '$(srcdir)/'`gsttcpclientsink.c
 
 libgsttcp_la-gsttcpserversrc.lo: gsttcpserversrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpserversrc.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpserversrc.Tpo -c -o libgsttcp_la-gsttcpserversrc.lo `test -f 'gsttcpserversrc.c' || echo '$(srcdir)/'`gsttcpserversrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpserversrc.Tpo $(DEPDIR)/libgsttcp_la-gsttcpserversrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcpserversrc.c' object='libgsttcp_la-gsttcpserversrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcpserversrc.c' object='libgsttcp_la-gsttcpserversrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversrc.lo `test -f 'gsttcpserversrc.c' || echo '$(srcdir)/'`gsttcpserversrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversrc.lo `test -f 'gsttcpserversrc.c' || echo '$(srcdir)/'`gsttcpserversrc.c
 
 libgsttcp_la-gsttcpserversink.lo: gsttcpserversink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpserversink.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpserversink.Tpo -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpserversink.Tpo $(DEPDIR)/libgsttcp_la-gsttcpserversink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcpserversink.c' object='libgsttcp_la-gsttcpserversink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcpserversink.c' object='libgsttcp_la-gsttcpserversink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
 
 libgsttcp_la-gsttcp-enumtypes.lo: gsttcp-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Tpo -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Tpo $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcp-enumtypes.c' object='libgsttcp_la-gsttcp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcp-enumtypes.c' object='libgsttcp_la-gsttcp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
 
 libgsttcp_la-gsttcp-marshal.lo: gsttcp-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp-marshal.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Tpo -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Tpo $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttcp-marshal.c' object='libgsttcp_la-gsttcp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttcp-marshal.c' object='libgsttcp_la-gsttcp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -773,10 +777,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 98c62d7..9ebfc49 100644 (file)
@@ -67,7 +67,7 @@
  * prefer a minimum burst size even if it requires not starting with a keyframe.
  *
  * Multifdsink can be instructed to keep at least a minimum amount of data
- * expressed in time or byte units in its internal queues with the the 
+ * expressed in time or byte units in its internal queues with the 
  * #GstMultiFdSink:time-min and #GstMultiFdSink:bytes-min properties respectively.
  * These properties are useful if the application adds clients with the 
  * #GstMultiFdSink::add-full signal to make sure that a burst connect can
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include <gst/gst-i18n-plugin.h>
 
 #include <sys/ioctl.h>
@@ -355,8 +360,7 @@ gst_multi_fd_sink_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_details_simple (element_class,
       "Multi filedescriptor sink", "Sink/Network",
@@ -928,7 +932,7 @@ duplicate:
   }
 }
 
-/* "add" signal implemntation */
+/* "add" signal implementation */
 void
 gst_multi_fd_sink_add (GstMultiFdSink * sink, int fd)
 {
@@ -2249,7 +2253,7 @@ gst_multi_fd_sink_recover_client (GstMultiFdSink * sink, GstTCPClient * client)
  *
  * Special care is taken of clients that were waiting for a new buffer (they
  * had a position of -1) because they can proceed after adding this new buffer.
- * This is done by adding the client back into the write fd_set and signalling
+ * This is done by adding the client back into the write fd_set and signaling
  * the select thread that the fd_set changed.
  */
 static void
@@ -2453,7 +2457,7 @@ gst_multi_fd_sink_handle_clients (GstMultiFdSink * sink)
         GST_CLOCK_TIME_NONE);
 
     /* Handle the special case in which the sink is not receiving more buffers
-     * and will not disconnect innactive client in the streaming thread. */
+     * and will not disconnect inactive client in the streaming thread. */
     if (G_UNLIKELY (result == 0)) {
       GstClockTime now;
       GTimeVal nowtv;
@@ -2884,8 +2888,14 @@ gst_multi_fd_sink_start (GstBaseSink * bsink)
   }
 
   this->running = TRUE;
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   this->thread = g_thread_create ((GThreadFunc) gst_multi_fd_sink_thread,
       this, TRUE, NULL);
+#else
+  this->thread = g_thread_new ("multifdsink",
+      (GThreadFunc) gst_multi_fd_sink_thread, this);
+#endif
 
   GST_OBJECT_FLAG_SET (this, GST_MULTI_FD_SINK_OPEN);
 
index 894fcb8..4479efb 100644 (file)
@@ -116,7 +116,7 @@ gst_tcp_socket_write (int socket, const void *buf, size_t count)
     bytes_written += wrote;
   }
 
-  GST_LOG ("wrote %" G_GSIZE_FORMAT " bytes succesfully", bytes_written);
+  GST_LOG ("wrote %" G_GSIZE_FORMAT " bytes successfully", bytes_written);
   return bytes_written;
 }
 
index ca60578..a4d9108 100644 (file)
@@ -121,8 +121,7 @@ gst_tcp_client_sink_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_details_simple (element_class,
       "TCP client sink", "Sink/Network",
index b8ac849..bfceaca 100644 (file)
@@ -93,8 +93,7 @@ gst_tcp_client_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_details_simple (element_class,
       "TCP client source", "Source/Network",
index c4244da..35d2863 100644 (file)
@@ -91,8 +91,7 @@ gst_tcp_server_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_details_simple (element_class,
       "TCP server source", "Source/Network",
index 3258b15..f64cdc3 100644 (file)
@@ -7,7 +7,7 @@ libgsttypefindfunctions_la_CFLAGS = \
 libgsttypefindfunctions_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgsttypefindfunctions_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
-       $(GST_LIBS) $(GIO_LIBS)
+       $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
 
 libgsttypefindfunctions_la_LIBTOOLFLAGS = --tag=disable-static
 
index 58fe539..9448a85 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -55,6 +55,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -100,17 +101,24 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgsttypefindfunctions_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
-       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
 am_libgsttypefindfunctions_la_OBJECTS =  \
        libgsttypefindfunctions_la-gsttypefindfunctions.lo
 libgsttypefindfunctions_la_OBJECTS =  \
        $(am_libgsttypefindfunctions_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgsttypefindfunctions_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -127,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgsttypefindfunctions_la_SOURCES)
 DIST_SOURCES = $(libgsttypefindfunctions_la_SOURCES)
@@ -208,6 +216,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -268,6 +277,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -277,9 +287,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -302,6 +315,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -374,10 +388,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -411,7 +428,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -441,7 +457,7 @@ libgsttypefindfunctions_la_CFLAGS = \
 libgsttypefindfunctions_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgsttypefindfunctions_la_LIBADD = \
        $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
-       $(GST_LIBS) $(GIO_LIBS)
+       $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
 
 libgsttypefindfunctions_la_LIBTOOLFLAGS = --tag=disable-static
 all: all-am
@@ -509,7 +525,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgsttypefindfunctions.la: $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_DEPENDENCIES) 
+libgsttypefindfunctions.la: $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_DEPENDENCIES) $(EXTRA_libgsttypefindfunctions_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgsttypefindfunctions_la_LINK) -rpath $(plugindir) $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -523,34 +539,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgsttypefindfunctions_la-gsttypefindfunctions.lo: gsttypefindfunctions.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttypefindfunctions_la_CFLAGS) $(CFLAGS) -MT libgsttypefindfunctions_la-gsttypefindfunctions.lo -MD -MP -MF $(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Tpo -c -o libgsttypefindfunctions_la-gsttypefindfunctions.lo `test -f 'gsttypefindfunctions.c' || echo '$(srcdir)/'`gsttypefindfunctions.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Tpo $(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsttypefindfunctions.c' object='libgsttypefindfunctions_la-gsttypefindfunctions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gsttypefindfunctions.c' object='libgsttypefindfunctions_la-gsttypefindfunctions.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttypefindfunctions_la_CFLAGS) $(CFLAGS) -c -o libgsttypefindfunctions_la-gsttypefindfunctions.lo `test -f 'gsttypefindfunctions.c' || echo '$(srcdir)/'`gsttypefindfunctions.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttypefindfunctions_la_CFLAGS) $(CFLAGS) -c -o libgsttypefindfunctions_la-gsttypefindfunctions.lo `test -f 'gsttypefindfunctions.c' || echo '$(srcdir)/'`gsttypefindfunctions.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -657,10 +669,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 734de41..63a6d55 100644 (file)
 #include <ctype.h>
 
 #include <gst/pbutils/pbutils.h>
+#include <gst/base/gstbytereader.h>
 
 GST_DEBUG_CATEGORY_STATIC (type_find_debug);
 #define GST_CAT_DEFAULT type_find_debug
 
+/* so our code stays ready for 0.11 */
+#define gst_type_find_peek(tf,off,len) \
+    ((const guint8 *)gst_type_find_peek((tf),(off),(len)))
+
 /* DataScanCtx: helper for typefind functions that scan through data
  * step-by-step, to avoid doing a peek at each and every offset */
 
@@ -130,7 +135,7 @@ static gboolean
 utf8_type_find_have_valid_utf8_at_offset (GstTypeFind * tf, guint64 offset,
     GstTypeFindProbability * prob)
 {
-  guint8 *data;
+  const guint8 *data;
 
   /* randomly decided values */
   guint min_size = 16;          /* minimum size  */
@@ -202,6 +207,161 @@ utf8_type_find (GstTypeFind * tf, gpointer unused)
   gst_type_find_suggest (tf, (start_prob + mid_prob) / 2, UTF8_CAPS);
 }
 
+/*** text/utf-16 and text/utf-32} ***/
+/* While UTF-8 is unicode too, using text/plain for UTF-16 and UTF-32
+   is going to break stuff. */
+
+typedef struct
+{
+  size_t bomlen;
+  const char *const bom;
+    gboolean (*checker) (const guint8 *, gint, gint);
+  int boost;
+  int endianness;
+} GstUnicodeTester;
+
+static gboolean
+check_utf16 (const guint8 * data, gint len, gint endianness)
+{
+  GstByteReader br;
+  guint16 high, low;
+
+  low = high = 0;
+
+  if (len & 1)
+    return FALSE;
+
+  gst_byte_reader_init (&br, data, len);
+  while (len >= 2) {
+    /* test first for a single 16 bit value in the BMP */
+    if (endianness == G_BIG_ENDIAN)
+      gst_byte_reader_get_uint16_be (&br, &high);
+    else
+      gst_byte_reader_get_uint16_le (&br, &high);
+    if (high >= 0xD800 && high <= 0xDBFF) {
+      /* start of a surrogate pair */
+      if (len < 4)
+        return FALSE;
+      len -= 2;
+      if (endianness == G_BIG_ENDIAN)
+        gst_byte_reader_get_uint16_be (&br, &low);
+      else
+        gst_byte_reader_get_uint16_le (&br, &low);
+      if (low >= 0xDC00 && low <= 0xDFFF) {
+        /* second half of the surrogate pair */
+      } else
+        return FALSE;
+    } else {
+      if (high >= 0xDC00 && high <= 0xDFFF)
+        return FALSE;
+    }
+    len -= 2;
+  }
+  return TRUE;
+}
+
+static gboolean
+check_utf32 (const guint8 * data, gint len, gint endianness)
+{
+  if (len & 3)
+    return FALSE;
+  while (len > 3) {
+    guint32 v;
+    if (endianness == G_BIG_ENDIAN)
+      v = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
+    else
+      v = (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0];
+    if (v >= 0x10FFFF)
+      return FALSE;
+    data += 4;
+    len -= 4;
+  }
+  return TRUE;
+}
+
+static void
+unicode_type_find (GstTypeFind * tf, const GstUnicodeTester * tester,
+    guint n_tester, const char *media_type, gboolean require_bom)
+{
+  size_t n;
+  gint len = 4;
+  const guint8 *data = gst_type_find_peek (tf, 0, len);
+  int prob = -1;
+  const gint max_scan_size = 256 * 1024;
+  int endianness = 0;
+
+  if (!data) {
+    len = 2;
+    data = gst_type_find_peek (tf, 0, len);
+    if (!data)
+      return;
+  }
+
+  /* find a large enough size that works */
+  while (len < max_scan_size) {
+    size_t newlen = len << 1;
+    const guint8 *newdata = gst_type_find_peek (tf, 0, newlen);
+    if (!newdata)
+      break;
+    len = newlen;
+    data = newdata;
+  }
+
+  for (n = 0; n < n_tester; ++n) {
+    int bom_boost = 0, tmpprob;
+    if (len >= tester[n].bomlen) {
+      if (!memcmp (data, tester[n].bom, tester[n].bomlen))
+        bom_boost = tester[n].boost;
+    }
+    if (require_bom && bom_boost == 0)
+      continue;
+    if (!(*tester[n].checker) (data, len, tester[n].endianness))
+      continue;
+    tmpprob = GST_TYPE_FIND_POSSIBLE - 20 + bom_boost;
+    if (tmpprob > prob) {
+      prob = tmpprob;
+      endianness = tester[n].endianness;
+    }
+  }
+
+  if (prob > 0) {
+    GST_DEBUG ("This is valid %s %s", media_type,
+        endianness == G_BIG_ENDIAN ? "be" : "le");
+    gst_type_find_suggest_simple (tf, prob, media_type,
+        "endianness", G_TYPE_INT, endianness, NULL);
+  }
+}
+
+static GstStaticCaps utf16_caps = GST_STATIC_CAPS ("text/utf-16");
+
+#define UTF16_CAPS gst_static_caps_get(&utf16_caps)
+
+static void
+utf16_type_find (GstTypeFind * tf, gpointer unused)
+{
+  static const GstUnicodeTester utf16tester[2] = {
+    {2, "\xff\xfe", check_utf16, 10, G_LITTLE_ENDIAN},
+    {2, "\xfe\xff", check_utf16, 20, G_BIG_ENDIAN},
+  };
+  unicode_type_find (tf, utf16tester, G_N_ELEMENTS (utf16tester),
+      "text/utf-16", TRUE);
+}
+
+static GstStaticCaps utf32_caps = GST_STATIC_CAPS ("text/utf-32");
+
+#define UTF32_CAPS gst_static_caps_get(&utf32_caps)
+
+static void
+utf32_type_find (GstTypeFind * tf, gpointer unused)
+{
+  static const GstUnicodeTester utf32tester[2] = {
+    {4, "\xff\xfe\x00\x00", check_utf32, 10, G_LITTLE_ENDIAN},
+    {4, "\x00\x00\xfe\xff", check_utf32, 20, G_BIG_ENDIAN}
+  };
+  unicode_type_find (tf, utf32tester, G_N_ELEMENTS (utf32tester),
+      "text/utf-32", TRUE);
+}
+
 /*** text/uri-list ***/
 
 static GstStaticCaps uri_caps = GST_STATIC_CAPS ("text/uri-list");
@@ -222,7 +382,7 @@ static GstStaticCaps uri_caps = GST_STATIC_CAPS ("text/uri-list");
 static void
 uri_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, BUFFER_SIZE);
+  const guint8 *data = gst_type_find_peek (tf, 0, BUFFER_SIZE);
   guint pos = 0;
   guint offset = 0;
 
@@ -322,7 +482,7 @@ xml_check_first_element (GstTypeFind * tf, const gchar * element, guint elen,
     gboolean strict)
 {
   gboolean got_xmldec;
-  guint8 *data;
+  const guint8 *data;
   guint offset = 0;
   guint pos = 0;
 
@@ -386,7 +546,7 @@ static GstStaticCaps sdp_caps = GST_STATIC_CAPS ("application/sdp");
 static gboolean
 sdp_check_header (GstTypeFind * tf)
 {
-  guint8 *data;
+  const guint8 *data;
 
   data = gst_type_find_peek (tf, 0, 5);
   if (!data)
@@ -433,9 +593,9 @@ static GstStaticCaps html_caps = GST_STATIC_CAPS ("text/html");
 static void
 html_type_find (GstTypeFind * tf, gpointer unused)
 {
-  gchar *d, *data;
+  const gchar *d, *data;
 
-  data = (gchar *) gst_type_find_peek (tf, 0, 16);
+  data = (const gchar *) gst_type_find_peek (tf, 0, 16);
   if (!data)
     return;
 
@@ -444,7 +604,7 @@ html_type_find (GstTypeFind * tf, gpointer unused)
   } else if (xml_check_first_element (tf, "html", 4, FALSE)) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, HTML_CAPS);
   } else if ((d = memchr (data, '<', 16))) {
-    data = (gchar *) gst_type_find_peek (tf, d - data, 6);
+    data = (const gchar *) gst_type_find_peek (tf, d - data, 6);
     if (data && g_ascii_strncasecmp (data, "<html>", 6) == 0) {
       gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, HTML_CAPS);
     }
@@ -459,7 +619,7 @@ static GstStaticCaps mid_caps = GST_STATIC_CAPS ("audio/midi");
 static void
 mid_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   /* http://jedi.ks.uiuc.edu/~johns/links/music/midifile.html */
   if (data && data[0] == 'M' && data[1] == 'T' && data[2] == 'h'
@@ -467,6 +627,7 @@ mid_type_find (GstTypeFind * tf, gpointer unused)
     gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MID_CAPS);
 }
 
+#ifdef GST_EXT_MIME_TYPES
 /*** audio/xmf ***/
 
 static GstStaticCaps xmf_caps = GST_STATIC_CAPS ("audio/xmf");
@@ -489,8 +650,7 @@ xmf_type_find (GstTypeFind * tf, gpointer unused)
     }
   }
 }
-
-
+#endif
 
 /*** audio/mobile-xmf ***/
 
@@ -500,7 +660,7 @@ static GstStaticCaps mxmf_caps = GST_STATIC_CAPS ("audio/mobile-xmf");
 static void
 mxmf_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = NULL;
+  const guint8 *data = NULL;
 
   /* Search FileId "XMF_" 4 bytes */
   data = gst_type_find_peek (tf, 0, 4);
@@ -519,8 +679,8 @@ mxmf_type_find (GstTypeFind * tf, gpointer unused)
   }
 }
 
+#ifdef GST_EXT_MIME_TYPES
 /*** audio/x-smaf ***/
-
 static GstStaticCaps mmf_caps = GST_STATIC_CAPS ("audio/x-smaf");
 
 #define MMF_CAPS gst_static_caps_get(&mmf_caps)
@@ -537,7 +697,7 @@ mmf_type_find (GstTypeFind * tf, gpointer unused)
         gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MMF_CAPS);
   }
 }
-
+#endif
 
 /*** video/x-fli ***/
 
@@ -547,7 +707,7 @@ static GstStaticCaps flx_caps = GST_STATIC_CAPS ("video/x-fli");
 static void
 flx_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 134);
+  const guint8 *data = gst_type_find_peek (tf, 0, 134);
 
   if (data) {
     /* check magic and the frame type of the first frame */
@@ -578,7 +738,7 @@ static GstStaticCaps id3_caps = GST_STATIC_CAPS ("application/x-id3");
 static void
 id3v2_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 10);
+  const guint8 *data = gst_type_find_peek (tf, 0, 10);
 
   if (data && memcmp (data, "ID3", 3) == 0 &&
       data[3] != 0xFF && data[4] != 0xFF &&
@@ -591,7 +751,7 @@ id3v2_type_find (GstTypeFind * tf, gpointer unused)
 static void
 id3v1_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, -128, 3);
+  const guint8 *data = gst_type_find_peek (tf, -128, 3);
 
   if (data && memcmp (data, "TAG", 3) == 0) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, ID3_CAPS);
@@ -606,7 +766,7 @@ static GstStaticCaps apetag_caps = GST_STATIC_CAPS ("application/x-apetag");
 static void
 apetag_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data;
+  const guint8 *data;
 
   /* APEv1/2 at start of file */
   data = gst_type_find_peek (tf, 0, 8);
@@ -631,7 +791,7 @@ static GstStaticCaps tta_caps = GST_STATIC_CAPS ("audio/x-ttafile");
 static void
 tta_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 3);
+  const guint8 *data = gst_type_find_peek (tf, 0, 3);
 
   if (data) {
     if (memcmp (data, "TTA", 3) == 0) {
@@ -947,7 +1107,7 @@ mp3_type_frame_length_from_header (guint32 header, guint * put_layer,
   /* bitrate index */
   bitrate = header & 0xF;
   if (bitrate == 0 && possible_free_framelen == -1) {
-    GST_LOG ("Possibly a free format mp3 - signalling");
+    GST_LOG ("Possibly a free format mp3 - signaling");
     *may_be_free_format = TRUE;
   }
   if (bitrate == 15 || (bitrate == 0 && possible_free_framelen == -1))
@@ -1029,8 +1189,8 @@ static void
 mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
     guint * found_layer, GstTypeFindProbability * found_prob)
 {
-  guint8 *data = NULL;
-  guint8 *data_end = NULL;
+  const guint8 *data = NULL;
+  const guint8 *data_end = NULL;
   guint size;
   guint64 skipped;
   gint last_free_offset = -1;
@@ -1054,10 +1214,11 @@ mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
       data_end = data + size;
     }
     if (*data == 0xFF) {
-      guint8 *head_data = NULL;
+      const guint8 *head_data = NULL;
       guint layer = 0, bitrate, samplerate, channels;
       guint found = 0;          /* number of valid headers found */
       guint64 offset = skipped;
+      gboolean changed = FALSE;
 
       while (found < GST_MP3_TYPEFIND_TRY_HEADERS) {
         guint32 head;
@@ -1108,6 +1269,8 @@ mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
            * that this is not a mp3 but just a random bytestream. It could
            * be a freaking funky encoded mp3 though. We'll just not count
            * this header*/
+          if (prev_layer)
+            changed = TRUE;
           prev_layer = layer;
           prev_channels = channels;
           prev_samplerate = samplerate;
@@ -1138,6 +1301,8 @@ mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
           probability = GST_TYPE_FIND_MINIMUM;
         if (start_off > 0)
           probability /= 2;
+        if (!changed)
+          probability = (probability + GST_TYPE_FIND_MAXIMUM) / 2;
 
         GST_INFO
             ("audio/mpeg calculated %u  =  %u  *  %u / %u  *  (%u - %"
@@ -1167,7 +1332,7 @@ static void
 mp3_type_find (GstTypeFind * tf, gpointer unused)
 {
   GstTypeFindProbability prob, mid_prob;
-  guint8 *data;
+  const guint8 *data;
   guint layer, mid_layer;
   guint64 length;
 
@@ -1237,7 +1402,7 @@ GST_STATIC_CAPS ("audio/x-musepack, streamversion= (int) { 7, 8 }");
 static void
 musepack_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
   GstTypeFindProbability prop = GST_TYPE_FIND_MINIMUM;
   gint streamversion = -1;
 
@@ -1321,7 +1486,7 @@ ac3_type_find (GstTypeFind * tf, gpointer unused)
 {
   DataScanCtx c = { 0, NULL, 0 };
 
-  /* Search for an ac3 frame; not neccesarily right at the start, but give it
+  /* Search for an ac3 frame; not necessarily right at the start, but give it
    * a lower probability if not found right at the start. Check that the
    * frame is followed by a second frame at the expected offset.
    * We could also check the two ac3 CRCs, but we don't do that right now */
@@ -1488,7 +1653,7 @@ dts_type_find (GstTypeFind * tf, gpointer unused)
 {
   DataScanCtx c = { 0, NULL, 0 };
 
-  /* Search for an dts frame; not neccesarily right at the start, but give it
+  /* Search for an dts frame; not necessarily right at the start, but give it
    * a lower probability if not found right at the start. Check that the
    * frame is followed by a second frame at the expected offset. */
   while (c.offset <= DTS_MAX_FRAMESIZE) {
@@ -1559,7 +1724,7 @@ wavpack_type_find (GstTypeFind * tf, gpointer unused)
 {
   guint64 offset;
   guint32 blocksize;
-  guint8 *data;
+  const guint8 *data;
 
   data = gst_type_find_peek (tf, 0, 32);
   if (!data)
@@ -1622,7 +1787,7 @@ GST_STATIC_CAPS ("application/postscript");
 static void
 postscript_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 3);
+  const guint8 *data = gst_type_find_peek (tf, 0, 3);
   if (!data)
     return;
 
@@ -1672,8 +1837,8 @@ GST_STATIC_CAPS ("multipart/x-mixed-replace");
 static void
 multipart_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data;
-  guint8 *x;
+  const guint8 *data;
+  const guint8 *x;
 
 #define MULTIPART_MAX_BOUNDARY_OFFSET 16
   data = gst_type_find_peek (tf, 0, MULTIPART_MAX_BOUNDARY_OFFSET);
@@ -1782,7 +1947,7 @@ mpeg_sys_is_valid_pack (GstTypeFind * tf, const guint8 * data, guint len,
 }
 
 static gboolean
-mpeg_sys_is_valid_pes (GstTypeFind * tf, guint8 * data, guint len,
+mpeg_sys_is_valid_pes (GstTypeFind * tf, const guint8 * data, guint len,
     guint * pack_size)
 {
   guint pes_packet_len;
@@ -1810,7 +1975,7 @@ mpeg_sys_is_valid_pes (GstTypeFind * tf, guint8 * data, guint len,
 }
 
 static gboolean
-mpeg_sys_is_valid_sys (GstTypeFind * tf, guint8 * data, guint len,
+mpeg_sys_is_valid_sys (GstTypeFind * tf, const guint8 * data, guint len,
     guint * pack_size)
 {
   guint sys_hdr_len;
@@ -1851,7 +2016,7 @@ mpeg_sys_is_valid_sys (GstTypeFind * tf, guint8 * data, guint len,
 static void
 mpeg_sys_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data, *data0, *first_sync, *end;
+  const guint8 *data, *data0, *first_sync, *end;
   gint mpegversion = 0;
   guint pack_headers = 0;
   guint pes_headers = 0;
@@ -1992,7 +2157,7 @@ mpeg_ts_probe_headers (GstTypeFind * tf, guint64 offset, gint packet_size)
 {
   /* We always enter this function having found at least one header already */
   gint found = 1;
-  guint8 *data = NULL;
+  const guint8 *data = NULL;
 
   GST_LOG ("looking for mpeg-ts packets of size %u", packet_size);
   while (found < GST_MPEGTS_TYPEFIND_MAX_HEADERS) {
@@ -2017,8 +2182,7 @@ mpeg_ts_type_find (GstTypeFind * tf, gpointer unused)
   /* TS packet sizes to test: normal, DVHS packet size and 
    * FEC with 16 or 20 byte codes packet size. */
   const gint pack_sizes[] = { 188, 192, 204, 208 };
-
-  guint8 *data = NULL;
+  const guint8 *data = NULL;
   guint size = 0;
   guint64 skipped = 0;
 
@@ -2294,7 +2458,7 @@ h264_video_type_find (GstTypeFind * tf, gpointer unused)
       nut = c.data[3] & 0x9f;   /* forbiden_zero_bit | nal_unit_type */
       ref = c.data[3] & 0x60;   /* nal_ref_idc */
 
-      /* if forbiden bit is different to 0 won't be h264 */
+      /* if forbidden bit is different to 0 won't be h264 */
       if (nut > 0x1f) {
         bad++;
         break;
@@ -2453,7 +2617,7 @@ static GstStaticCaps aiff_caps = GST_STATIC_CAPS ("audio/x-aiff");
 static void
 aiff_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data && memcmp (data, "FORM", 4) == 0) {
     data += 8;
@@ -2470,7 +2634,7 @@ static GstStaticCaps svx_caps = GST_STATIC_CAPS ("audio/x-svx");
 static void
 svx_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data && memcmp (data, "FORM", 4) == 0) {
     data += 8;
@@ -2487,7 +2651,7 @@ static GstStaticCaps shn_caps = GST_STATIC_CAPS ("audio/x-shorten");
 static void
 shn_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data && memcmp (data, "ajkg", 4) == 0) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, SHN_CAPS);
@@ -2506,7 +2670,7 @@ static GstStaticCaps ape_caps = GST_STATIC_CAPS ("application/x-ape");
 static void
 ape_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data && memcmp (data, "MAC ", 4) == 0) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY + 10, APE_CAPS);
@@ -2523,7 +2687,7 @@ static GstStaticCaps m4a_caps = GST_STATIC_CAPS ("audio/x-m4a");
 static void
 m4a_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 4, 8);
+  const guint8 *data = gst_type_find_peek (tf, 4, 8);
 
   if (data && (memcmp (data, "ftypM4A ", 8) == 0)) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, M4A_CAPS);
@@ -2560,7 +2724,7 @@ q3gp_type_find (GstTypeFind * tf, gpointer unused)
   const gchar *profile;
   guint32 ftyp_size = 0;
   gint offset = 0;
-  guint8 *data = NULL;
+  const guint8 *data = NULL;
 
   if ((data = gst_type_find_peek (tf, 0, 12)) == NULL) {
     return;
@@ -2610,7 +2774,7 @@ static GstStaticCaps jp2_caps = GST_STATIC_CAPS ("image/jp2");
 static void
 jp2_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data;
+  const guint8 *data;
 
   data = gst_type_find_peek (tf, 0, 24);
   if (!data)
@@ -2641,7 +2805,7 @@ static GstStaticCaps qt_caps = GST_STATIC_CAPS ("video/quicktime");
 static void
 qt_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data;
+  const guint8 *data;
   guint tip = 0;
   guint64 offset = 0;
   guint64 size;
@@ -2708,7 +2872,7 @@ qt_type_find (GstTypeFind * tf, gpointer unused)
       }
     }
     if (size == 1) {
-      guint8 *sizedata;
+      const guint8 *sizedata;
 
       sizedata = gst_type_find_peek (tf, offset + 8, 8);
       if (sizedata == NULL)
@@ -2804,7 +2968,7 @@ static GstStaticCaps mod_caps = GST_STATIC_CAPS ("audio/x-mod");
 static void
 mod_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data;
+  const guint8 *data;
 
   /* MOD */
   if ((data = gst_type_find_peek (tf, 1080, 4)) != NULL) {
@@ -2860,7 +3024,7 @@ mod_type_find (GstTypeFind * tf, gpointer unused)
     }
     /* DSM */
     if (memcmp (data, "RIFF", 4) == 0) {
-      guint8 *data2 = gst_type_find_peek (tf, 8, 4);
+      const guint8 *data2 = gst_type_find_peek (tf, 8, 4);
 
       if (data2) {
         if (memcmp (data2, "DSMF", 4) == 0) {
@@ -2871,7 +3035,7 @@ mod_type_find (GstTypeFind * tf, gpointer unused)
     }
     /* FAM */
     if (memcmp (data, "FAM\xFE", 4) == 0) {
-      guint8 *data2 = gst_type_find_peek (tf, 44, 3);
+      const guint8 *data2 = gst_type_find_peek (tf, 44, 3);
 
       if (data2) {
         if (memcmp (data2, "compare", 3) == 0) {
@@ -2885,7 +3049,7 @@ mod_type_find (GstTypeFind * tf, gpointer unused)
     }
     /* GDM */
     if (memcmp (data, "GDM\xFE", 4) == 0) {
-      guint8 *data2 = gst_type_find_peek (tf, 71, 4);
+      const guint8 *data2 = gst_type_find_peek (tf, 71, 4);
 
       if (data2) {
         if (memcmp (data2, "GMFS", 4) == 0) {
@@ -2916,7 +3080,7 @@ mod_type_find (GstTypeFind * tf, gpointer unused)
   if ((data = gst_type_find_peek (tf, 20, 8)) != NULL) {
     if (g_ascii_strncasecmp ((gchar *) data, "!Scream!", 8) == 0 ||
         g_ascii_strncasecmp ((gchar *) data, "BMOD2STM", 8) == 0) {
-      guint8 *id, *stmtype;
+      const guint8 *id, *stmtype;
 
       if ((id = gst_type_find_peek (tf, 28, 1)) == NULL)
         return;
@@ -2927,6 +3091,13 @@ mod_type_find (GstTypeFind * tf, gpointer unused)
       return;
     }
   }
+  /* AMF */
+  if ((data = gst_type_find_peek (tf, 0, 19)) != NULL) {
+    if (memcmp (data, "ASYLUM Music Format", 19) == 0) {
+      gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
+      return;
+    }
+  }
 }
 
 /*** application/x-shockwave-flash ***/
@@ -2937,7 +3108,7 @@ GST_STATIC_CAPS ("application/x-shockwave-flash");
 static void
 swf_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data && (data[0] == 'F' || data[0] == 'C') &&
       data[1] == 'W' && data[2] == 'S') {
@@ -3041,7 +3212,9 @@ jpeg_type_find (GstTypeFind * tf, gpointer unused)
         prob = GST_TYPE_FIND_LIKELY;
 
       gst_caps_set_simple (caps, "width", G_TYPE_INT, w,
-          "height", G_TYPE_INT, h, NULL);
+          "height", G_TYPE_INT, h, "sof-marker", G_TYPE_INT, marker & 0xf,
+          NULL);
+
       break;
     } else {
       GST_WARNING ("bad length or unexpected JPEG marker 0xff 0x%02x", marker);
@@ -3128,7 +3301,7 @@ static GstStaticCaps tiff_le_caps = GST_STATIC_CAPS ("image/tiff, "
 static void
 tiff_type_find (GstTypeFind * tf, gpointer ununsed)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 8);
+  const guint8 *data = gst_type_find_peek (tf, 0, 8);
   guint8 le_header[4] = { 0x49, 0x49, 0x2A, 0x00 };
   guint8 be_header[4] = { 0x4D, 0x4D, 0x00, 0x2A };
 
@@ -3245,7 +3418,7 @@ static GstStaticCaps sds_caps = GST_STATIC_CAPS ("audio/x-sds");
 static void
 sds_type_find (GstTypeFind * tf, gpointer ununsed)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
   guint8 mask[4] = { 0xFF, 0xFF, 0x80, 0xFF };
   guint8 match[4] = { 0xF0, 0x7E, 0, 0x01 };
   gint x;
@@ -3266,7 +3439,7 @@ static GstStaticCaps ircam_caps = GST_STATIC_CAPS ("audio/x-ircam");
 static void
 ircam_type_find (GstTypeFind * tf, gpointer ununsed)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
   guint8 mask[4] = { 0xFF, 0xFF, 0xF8, 0xFF };
   guint8 match[4] = { 0x64, 0xA3, 0x00, 0x00 };
   gint x;
@@ -3298,7 +3471,7 @@ static gboolean
 ebml_check_header (GstTypeFind * tf, const gchar * doctype, int doctype_len)
 {
   /* 4 bytes for EBML ID, 1 byte for header length identifier */
-  guint8 *data = gst_type_find_peek (tf, 0, 4 + 1);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4 + 1);
   gint len_mask = 0x80, size = 1, n = 1, total;
 
   if (!data)
@@ -3426,7 +3599,7 @@ static GstStaticCaps dv_caps = GST_STATIC_CAPS ("video/x-dv, "
 static void
 dv_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data;
+  const guint8 *data;
 
   data = gst_type_find_peek (tf, 0, 5);
 
@@ -3458,7 +3631,7 @@ static GstStaticCaps ogg_annodex_caps =
 static void
 ogganx_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if ((data != NULL) && (memcmp (data, "OggS", 4) == 0)) {
 
@@ -3480,7 +3653,7 @@ static GstStaticCaps vorbis_caps = GST_STATIC_CAPS ("audio/x-vorbis");
 static void
 vorbis_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 30);
+  const guint8 *data = gst_type_find_peek (tf, 0, 30);
 
   if (data) {
     guint blocksize_0;
@@ -3525,7 +3698,7 @@ static GstStaticCaps theora_caps = GST_STATIC_CAPS ("video/x-theora");
 static void
 theora_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 7); //42);
+  const guint8 *data = gst_type_find_peek (tf, 0, 7);   //42);
 
   if (data) {
     if (data[0] != 0x80)
@@ -3542,7 +3715,7 @@ theora_type_find (GstTypeFind * tf, gpointer private)
 static void
 kate_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 64);
+  const guint8 *data = gst_type_find_peek (tf, 0, 64);
   gchar category[16] = { 0, };
 
   if (G_UNLIKELY (data == NULL))
@@ -3575,7 +3748,7 @@ GST_STATIC_CAPS ("application/x-ogm-video");
 static void
 ogmvideo_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 9);
+  const guint8 *data = gst_type_find_peek (tf, 0, 9);
 
   if (data) {
     if (memcmp (data, "\001video\000\000\000", 9) != 0)
@@ -3590,7 +3763,7 @@ GST_STATIC_CAPS ("application/x-ogm-audio");
 static void
 ogmaudio_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 9);
+  const guint8 *data = gst_type_find_peek (tf, 0, 9);
 
   if (data) {
     if (memcmp (data, "\001audio\000\000\000", 9) != 0)
@@ -3605,7 +3778,7 @@ static GstStaticCaps ogmtext_caps = GST_STATIC_CAPS ("application/x-ogm-text");
 static void
 ogmtext_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 9);
+  const guint8 *data = gst_type_find_peek (tf, 0, 9);
 
   if (data) {
     if (memcmp (data, "\001text\000\000\000\000", 9) != 0)
@@ -3622,7 +3795,7 @@ static GstStaticCaps speex_caps = GST_STATIC_CAPS ("audio/x-speex");
 static void
 speex_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 80);
+  const guint8 *data = gst_type_find_peek (tf, 0, 80);
 
   if (data) {
     /* 8 byte string "Speex   "
@@ -3658,7 +3831,7 @@ static GstStaticCaps celt_caps = GST_STATIC_CAPS ("audio/x-celt");
 static void
 celt_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 8);
+  const guint8 *data = gst_type_find_peek (tf, 0, 8);
 
   if (data) {
     /* 8 byte string "CELT   " */
@@ -3677,7 +3850,7 @@ GST_STATIC_CAPS ("application/x-ogg-skeleton, parsed=(boolean)FALSE");
 static void
 oggskel_type_find (GstTypeFind * tf, gpointer private)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 12);
+  const guint8 *data = gst_type_find_peek (tf, 0, 12);
 
   if (data) {
     /* 8 byte string "fishead\0" for the ogg skeleton stream */
@@ -3703,7 +3876,7 @@ static void
 cmml_type_find (GstTypeFind * tf, gpointer private)
 {
   /* Header is 12 bytes minimum (though we don't check the minor version */
-  guint8 *data = gst_type_find_peek (tf, 0, 12);
+  const guint8 *data = gst_type_find_peek (tf, 0, 12);
 
   if (data) {
 
@@ -3730,7 +3903,7 @@ static GstStaticCaps tar_caps = GST_STATIC_CAPS ("application/x-tar");
 static void
 tar_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 257, 8);
+  const guint8 *data = gst_type_find_peek (tf, 257, 8);
 
   /* of course we are not certain, but we don't want other typefind funcs
    * to detect formats of files within the tar archive, e.g. mp3s */
@@ -3752,7 +3925,7 @@ static GstStaticCaps ar_caps = GST_STATIC_CAPS ("application/x-ar");
 static void
 ar_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 24);
+  const guint8 *data = gst_type_find_peek (tf, 0, 24);
 
   if (data && memcmp (data, "!<arch>", 7) == 0) {
     gint i;
@@ -3779,7 +3952,7 @@ static GstStaticCaps au_caps = GST_STATIC_CAPS ("audio/x-au");
 static void
 au_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data) {
     if (memcmp (data, ".snd", 4) == 0 || memcmp (data, "dns.", 4) == 0) {
@@ -3801,7 +3974,7 @@ static GstStaticCaps nuv_caps = GST_STATIC_CAPS ("video/x-nuv");
 static void
 nuv_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 11);
+  const guint8 *data = gst_type_find_peek (tf, 0, 11);
 
   if (data) {
     if (memcmp (data, "MythTVVideo", 11) == 0
@@ -3819,7 +3992,7 @@ static GstStaticCaps paris_caps = GST_STATIC_CAPS ("audio/x-paris");
 static void
 paris_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 4);
+  const guint8 *data = gst_type_find_peek (tf, 0, 4);
 
   if (data) {
     if (memcmp (data, " paf", 4) == 0 || memcmp (data, "fap ", 4) == 0) {
@@ -3836,7 +4009,7 @@ static GstStaticCaps ilbc_caps = GST_STATIC_CAPS ("audio/iLBC-sh");
 static void
 ilbc_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 8);
+  const guint8 *data = gst_type_find_peek (tf, 0, 8);
 
   if (data) {
     if (memcmp (data, "#!iLBC30", 8) == 0 || memcmp (data, "#!iLBC20", 8) == 0) {
@@ -3854,7 +4027,7 @@ GST_STATIC_CAPS ("application/x-ms-dos-executable");
 static void
 msdos_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 64);
+  const guint8 *data = gst_type_find_peek (tf, 0, 64);
 
   if (data && data[0] == 'M' && data[1] == 'Z' &&
       GST_READ_UINT16_LE (data + 8) == 4) {
@@ -3881,7 +4054,7 @@ mmsh_type_find (GstTypeFind * tf, gpointer unused)
     0xcf, 0x11, 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c
   };
 
-  guint8 *data;
+  const guint8 *data;
 
   data = gst_type_find_peek (tf, 0, 2 + 2 + 4 + 2 + 2 + 16);
   if (data && data[0] == 0x24 && data[1] == 0x48 &&
@@ -3903,7 +4076,7 @@ static GstStaticCaps dirac_caps = GST_STATIC_CAPS ("video/x-dirac");
 static void
 dirac_type_find (GstTypeFind * tf, gpointer unused)
 {
-  guint8 *data = gst_type_find_peek (tf, 0, 8);
+  const guint8 *data = gst_type_find_peek (tf, 0, 8);
 
   if (data) {
     if (memcmp (data, "BBCD", 4) == 0 || memcmp (data, "KW-DIRAC", 8) == 0) {
@@ -3924,7 +4097,7 @@ vivo_type_find (GstTypeFind * tf, gpointer unused)
   static const guint8 vivo_marker[] = { 'V', 'e', 'r', 's', 'i', 'o', 'n',
     ':', 'V', 'i', 'v', 'o', '/'
   };
-  guint8 *data;
+  const guint8 *data;
   guint hdr_len, pos;
 
   data = gst_type_find_peek (tf, 0, 1024);
@@ -3962,7 +4135,7 @@ xdgmime_typefind (GstTypeFind * find, gpointer user_data)
   gchar *mimetype;
   gsize length = 16384;
   guint64 tf_length;
-  guint8 *data;
+  const guint8 *data;
   gchar *tmp;
 
   if ((tf_length = gst_type_find_get_length (find)) > 0)
@@ -4014,7 +4187,7 @@ xdgmime_typefind (GstTypeFind * find, gpointer user_data)
 static void
 windows_icon_typefind (GstTypeFind * find, gpointer user_data)
 {
-  guint8 *data;
+  const guint8 *data;
   gint64 datalen;
   guint16 type, nimages;
   gint32 size, offset;
@@ -4051,6 +4224,61 @@ windows_icon_typefind (GstTypeFind * find, gpointer user_data)
       "image/x-icon", NULL);
 }
 
+/*** WAP WBMP typefinder ***/
+
+static void
+wbmp_typefind (GstTypeFind * find, gpointer user_data)
+{
+  const guint8 *data;
+  gint64 datalen;
+  guint w, h, size;
+
+  /* http://en.wikipedia.org/wiki/Wireless_Application_Protocol_Bitmap_Format */
+  datalen = gst_type_find_get_length (find);
+  if (datalen == 0)
+    return;
+
+  data = gst_type_find_peek (find, 0, 5);
+  if (data == NULL)
+    return;
+
+  /* want 0x00 0x00 at start */
+  if (*data++ != 0 || *data++ != 0)
+    return;
+
+  /* min header size */
+  size = 4;
+
+  /* let's assume max width/height is 65536 */
+  w = *data++;
+  if ((w & 0x80)) {
+    w = (w << 8) | *data++;
+    if ((w & 0x80))
+      return;
+    ++size;
+    data = gst_type_find_peek (find, 4, 2);
+    if (data == NULL)
+      return;
+  }
+  h = *data++;
+  if ((h & 0x80)) {
+    h = (h << 8) | *data++;
+    if ((h & 0x80))
+      return;
+    ++size;
+  }
+
+  if (w == 0 || h == 0)
+    return;
+
+  /* now add bitmap size */
+  size += h * (GST_ROUND_UP_8 (w) / 8);
+
+  if (datalen == size) {
+    gst_type_find_suggest_simple (find, GST_TYPE_FIND_POSSIBLE - 10,
+        "image/vnd.wap.wbmp", NULL);
+  }
+}
 
 /*** DEGAS Atari images (also to avoid false positives, see #625129) ***/
 static void
@@ -4067,6 +4295,8 @@ degas_type_find (GstTypeFind * tf, gpointer private)
   if (len < 34)                 /* smallest header of the lot */
     return;
   data = gst_type_find_peek (tf, 0, 4);
+  if (G_UNLIKELY (data == NULL))
+    return;
   resolution = GST_READ_UINT16_BE (data);
   if (len == 32034) {
     /* could be DEGAS */
@@ -4077,6 +4307,8 @@ degas_type_find (GstTypeFind * tf, gpointer private)
     /* could be DEGAS Elite */
     if (resolution <= 2) {
       data = gst_type_find_peek (tf, len - 16, 8);
+      if (G_UNLIKELY (data == NULL))
+        return;
       for (n = 0; n < 4; n++) {
         if (GST_READ_UINT16_BE (data + n * 2) > 2)
           return;
@@ -4089,6 +4321,8 @@ degas_type_find (GstTypeFind * tf, gpointer private)
        it does have 4 16 bytes values near the end that are 0-2 though. */
     if ((resolution & 0x8000) && (resolution & 0x7fff) <= 2) {
       data = gst_type_find_peek (tf, len - 16, 8);
+      if (G_UNLIKELY (data == NULL))
+        return;
       for (n = 0; n < 4; n++) {
         if (GST_READ_UINT16_BE (data + n * 2) > 2)
           return;
@@ -4113,7 +4347,7 @@ static void
 start_with_type_find (GstTypeFind * tf, gpointer private)
 {
   GstTypeFindData *start_with = (GstTypeFindData *) private;
-  guint8 *data;
+  const guint8 *data;
 
   GST_LOG ("trying to find mime type %s with the first %u bytes of data",
       gst_structure_get_name (gst_caps_get_structure (start_with->caps, 0)),
@@ -4153,7 +4387,7 @@ static void
 riff_type_find (GstTypeFind * tf, gpointer private)
 {
   GstTypeFindData *riff_data = (GstTypeFindData *) private;
-  guint8 *data = gst_type_find_peek (tf, 0, 12);
+  const guint8 *data = gst_type_find_peek (tf, 0, 12);
 
   if (data && (memcmp (data, "RIFF", 4) == 0 || memcmp (data, "AVF0", 4) == 0)) {
     data += 8;
@@ -4228,6 +4462,7 @@ plugin_init (GstPlugin * plugin)
   static const gchar *rm_exts[] = { "ra", "ram", "rm", "rmvb", NULL };
   static const gchar *swf_exts[] = { "swf", "swfl", NULL };
   static const gchar *utf8_exts[] = { "txt", NULL };
+  static const gchar *unicode_exts[] = { "txt", NULL };
   static const gchar *wav_exts[] = { "wav", NULL };
   static const gchar *aiff_exts[] = { "aiff", "aif", "aifc", NULL };
   static const gchar *svx_exts[] = { "iff", "svx", NULL };
@@ -4293,9 +4528,11 @@ plugin_init (GstPlugin * plugin)
   static const gchar *sap_exts[] = { "sap", NULL };
   static const gchar *vgm_exts[] = { "vgm", NULL };
   static const gchar *mid_exts[] = { "mid", "midi", NULL };
+#ifdef GST_EXT_MIME_TYPES
+  static const gchar *mmf_exts[] = { "mmf", NULL };
   static const gchar *xmf_exts[] = { "xmf", NULL };
+#endif
   static const gchar *mxmf_exts[] = { "mxmf", NULL };
-  static const gchar *mmf_exts[] = { "mmf", NULL };
   static const gchar *imelody_exts[] = { "imy", "ime", "imelody", NULL };
   static const gchar *pdf_exts[] = { "pdf", NULL };
   static const gchar *ps_exts[] = { "ps", NULL };
@@ -4315,7 +4552,7 @@ plugin_init (GstPlugin * plugin)
       asf_exts,
       "\060\046\262\165\216\146\317\021\246\331\000\252\000\142\316\154", 16,
       GST_TYPE_FIND_MAXIMUM);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "audio/x-musepack", GST_RANK_PRIMARY,
       musepack_type_find, musepack_exts, MUSEPACK_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-au", GST_RANK_MARGINAL,
@@ -4323,7 +4560,7 @@ plugin_init (GstPlugin * plugin)
 #endif
   TYPE_FIND_REGISTER_RIFF (plugin, "video/x-msvideo", GST_RANK_PRIMARY,
       avi_exts, "AVI ");
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER_RIFF (plugin, "audio/qcelp", GST_RANK_PRIMARY,
       qcp_exts, "QLCM");
   TYPE_FIND_REGISTER_RIFF (plugin, "video/x-cdxa", GST_RANK_PRIMARY,
@@ -4340,15 +4577,17 @@ plugin_init (GstPlugin * plugin)
 #endif
   TYPE_FIND_REGISTER (plugin, "audio/midi", GST_RANK_PRIMARY, mid_type_find,
       mid_exts, MID_CAPS, NULL, NULL);
-  TYPE_FIND_REGISTER_RIFF (plugin, "audio/riff-midi", GST_RANK_PRIMARY,
-      mid_exts, "RMID");
+#ifdef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "audio/xmf", GST_RANK_PRIMARY,
       xmf_type_find, xmf_exts, XMF_CAPS, NULL, NULL);
-  TYPE_FIND_REGISTER (plugin, "audio/mobile-xmf", GST_RANK_PRIMARY,
-      mxmf_type_find, mxmf_exts, MXMF_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-smaf", GST_RANK_PRIMARY,
       mmf_type_find, mmf_exts, MMF_CAPS, NULL, NULL);
-#if 0
+#endif
+  TYPE_FIND_REGISTER_RIFF (plugin, "audio/riff-midi", GST_RANK_PRIMARY,
+      mid_exts, "RMID");
+  TYPE_FIND_REGISTER (plugin, "audio/mobile-xmf", GST_RANK_PRIMARY,
+      mxmf_type_find, mxmf_exts, MXMF_CAPS, NULL, NULL);
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "video/x-fli", GST_RANK_MARGINAL, flx_type_find,
       flx_exts, FLX_CAPS, NULL, NULL);
 #endif
@@ -4356,7 +4595,7 @@ plugin_init (GstPlugin * plugin)
       id3v2_type_find, id3_exts, ID3_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "application/x-id3v1", GST_RANK_PRIMARY + 101,
       id3v1_type_find, id3_exts, ID3_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "application/x-apetag", GST_RANK_PRIMARY + 102,
       apetag_type_find, apetag_exts, APETAG_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-ttafile", GST_RANK_PRIMARY,
@@ -4370,7 +4609,7 @@ plugin_init (GstPlugin * plugin)
       ac3_exts, AC3_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-dts", GST_RANK_SECONDARY, dts_type_find,
       dts_exts, DTS_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "audio/x-gsm", GST_RANK_PRIMARY, NULL, gsm_exts,
       GSM_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/mpeg-sys", GST_RANK_PRIMARY,
@@ -4378,7 +4617,6 @@ plugin_init (GstPlugin * plugin)
 #endif
   TYPE_FIND_REGISTER (plugin, "video/mpegts", GST_RANK_PRIMARY,
       mpeg_ts_type_find, mpeg_ts_exts, MPEGTS_CAPS, NULL, NULL);
-
   TYPE_FIND_REGISTER (plugin, "application/ogg", GST_RANK_PRIMARY,
       ogganx_type_find, ogg_exts, OGGANX_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/mpeg-elementary", GST_RANK_MARGINAL,
@@ -4390,7 +4628,7 @@ plugin_init (GstPlugin * plugin)
       h263_video_type_find, h263_exts, H263_VIDEO_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/x-h264", GST_RANK_PRIMARY,
       h264_video_type_find, h264_exts, H264_VIDEO_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "video/x-nuv", GST_RANK_SECONDARY, nuv_type_find,
       nuv_exts, NUV_CAPS, NULL, NULL);
 #endif
@@ -4401,7 +4639,7 @@ plugin_init (GstPlugin * plugin)
       q3gp_type_find, q3gp_exts, Q3GP_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/quicktime", GST_RANK_SECONDARY,
       qt_type_find, qt_exts, QT_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "image/x-quicktime", GST_RANK_SECONDARY,
       qtif_type_find, qtif_exts, QTIF_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "image/jp2", GST_RANK_PRIMARY,
@@ -4411,26 +4649,30 @@ plugin_init (GstPlugin * plugin)
 
   TYPE_FIND_REGISTER (plugin, "text/html", GST_RANK_SECONDARY, html_type_find,
       html_exts, HTML_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "application/x-shockwave-flash",
+      GST_RANK_SECONDARY, swf_type_find, swf_exts, SWF_CAPS, NULL, NULL);
+#endif
   TYPE_FIND_REGISTER_START_WITH (plugin, "application/vnd.rn-realmedia",
       GST_RANK_SECONDARY, rm_exts, ".RMF", 4, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER_START_WITH (plugin, "application/x-pn-realaudio",
       GST_RANK_SECONDARY, rm_exts, ".ra\375", 4, GST_TYPE_FIND_MAXIMUM);
-  TYPE_FIND_REGISTER (plugin, "application/x-shockwave-flash",
-      GST_RANK_SECONDARY, swf_type_find, swf_exts, SWF_CAPS, NULL, NULL);
-#endif
   TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-flv", GST_RANK_SECONDARY,
       flv_exts, "FLV", 3, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "text/plain", GST_RANK_MARGINAL, utf8_type_find,
       utf8_exts, UTF8_CAPS, NULL, NULL);
-#if 0
+  TYPE_FIND_REGISTER (plugin, "text/utf-16", GST_RANK_MARGINAL, utf16_type_find,
+      unicode_exts, UTF16_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "text/utf-32", GST_RANK_MARGINAL, utf32_type_find,
+      unicode_exts, UTF32_CAPS, NULL, NULL);
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "text/uri-list", GST_RANK_MARGINAL, uri_type_find,
       uri_exts, URI_CAPS, NULL, NULL);
-#endif  
+#endif
   TYPE_FIND_REGISTER (plugin, "application/x-hls", GST_RANK_MARGINAL,
       hls_type_find, hls_exts, HLS_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "application/sdp", GST_RANK_SECONDARY,
       sdp_type_find, sdp_exts, SDP_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "application/smil", GST_RANK_SECONDARY,
       smil_type_find, smil_exts, SMIL_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "application/xml", GST_RANK_MARGINAL,
@@ -4438,7 +4680,7 @@ plugin_init (GstPlugin * plugin)
 #endif  
   TYPE_FIND_REGISTER_RIFF (plugin, "audio/x-wav", GST_RANK_PRIMARY, wav_exts,
       "WAVE");
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "audio/x-aiff", GST_RANK_SECONDARY,
       aiff_type_find, aiff_exts, AIFF_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-svx", GST_RANK_SECONDARY, svx_type_find,
@@ -4468,7 +4710,7 @@ plugin_init (GstPlugin * plugin)
       png_exts, "\211PNG\015\012\032\012", 8, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "image/bmp", GST_RANK_PRIMARY, bmp_type_find,
       bmp_exts, BMP_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "image/tiff", GST_RANK_PRIMARY, tiff_type_find,
       tiff_exts, TIFF_CAPS, NULL, NULL);
 #endif
@@ -4478,7 +4720,7 @@ plugin_init (GstPlugin * plugin)
       matroska_type_find, matroska_exts, MATROSKA_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/webm", GST_RANK_PRIMARY,
       webm_type_find, webm_exts, WEBM_CAPS, NULL, NULL);
-#if 0  
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "application/mxf", GST_RANK_PRIMARY,
       mxf_type_find, mxf_exts, MXF_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-mve", GST_RANK_SECONDARY,
@@ -4491,7 +4733,7 @@ plugin_init (GstPlugin * plugin)
       amr_exts, "#!AMR", 5, GST_TYPE_FIND_LIKELY);
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-amr-wb-sh", GST_RANK_PRIMARY,
       amr_exts, "#!AMR-WB", 7, GST_TYPE_FIND_MAXIMUM);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "audio/iLBC-sh", GST_RANK_PRIMARY,
       ilbc_type_find, ilbc_exts, ILBC_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-sid", GST_RANK_MARGINAL,
@@ -4524,7 +4766,7 @@ plugin_init (GstPlugin * plugin)
       vorbis_type_find, NULL, VORBIS_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "video/x-theora", GST_RANK_PRIMARY,
       theora_type_find, NULL, THEORA_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER (plugin, "application/x-ogm-video", GST_RANK_PRIMARY,
       ogmvideo_type_find, NULL, OGMVIDEO_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "application/x-ogm-audio", GST_RANK_PRIMARY,
@@ -4544,7 +4786,7 @@ plugin_init (GstPlugin * plugin)
 #endif
   TYPE_FIND_REGISTER (plugin, "audio/aac", GST_RANK_SECONDARY,
       aac_type_find, aac_exts, AAC_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-spc", GST_RANK_SECONDARY,
       spc_exts, "SNES-SPC700 Sound File Data", 27, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "audio/x-wavpack", GST_RANK_SECONDARY,
@@ -4583,7 +4825,7 @@ plugin_init (GstPlugin * plugin)
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-vgm",
       GST_RANK_SECONDARY, vgm_exts, "Vgm\x20", 4, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-sap",
-      GST_RANK_SECONDARY, sap_exts, "SAP\x0d\x0aAUTHOR\x20", 12,
+      GST_RANK_SECONDARY, sap_exts, "SAP\x0d\x0a" "AUTHOR\x20", 12,
       GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-ivf", GST_RANK_SECONDARY,
       ivf_exts, "DKIF", 4, GST_TYPE_FIND_NEARLY_CERTAIN);
@@ -4601,6 +4843,8 @@ plugin_init (GstPlugin * plugin)
   TYPE_FIND_REGISTER_START_WITH (plugin, "image/vnd.adobe.photoshop",
       GST_RANK_SECONDARY, psd_exts, "8BPS\000\001\000\000\000\000", 10,
       GST_TYPE_FIND_LIKELY);
+  TYPE_FIND_REGISTER (plugin, "image/vnd.wap.wbmp", GST_RANK_MARGINAL,
+      wbmp_typefind, NULL, NULL, NULL, NULL);
   TYPE_FIND_REGISTER_START_WITH (plugin, "application/x-yuv4mpeg",
       GST_RANK_SECONDARY, y4m_exts, "YUV4MPEG2 ", 10, GST_TYPE_FIND_LIKELY);
   TYPE_FIND_REGISTER (plugin, "image/x-icon", GST_RANK_MARGINAL,
index fe9b996..b275aba 100644 (file)
@@ -3,9 +3,9 @@ noinst_HEADERS = gstvideorate.h
 plugin_LTLIBRARIES = libgstvideorate.la
 
 libgstvideorate_la_SOURCES = gstvideorate.c
-libgstvideorate_la_CFLAGS = $(GST_CFLAGS)
+libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
 libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstvideorate_la_LIBTOOLFLAGS = --tag=disable-static
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
index a0376ca..b0d8239 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,14 +103,21 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstvideorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+libgstvideorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
 am_libgstvideorate_la_OBJECTS = libgstvideorate_la-gstvideorate.lo
 libgstvideorate_la_OBJECTS = $(am_libgstvideorate_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstvideorate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -125,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstvideorate_la_SOURCES)
 DIST_SOURCES = $(libgstvideorate_la_SOURCES)
@@ -207,6 +215,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -267,6 +276,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -276,9 +286,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -301,6 +314,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -373,10 +387,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -410,7 +427,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -434,9 +450,9 @@ top_srcdir = @top_srcdir@
 noinst_HEADERS = gstvideorate.h
 plugin_LTLIBRARIES = libgstvideorate.la
 libgstvideorate_la_SOURCES = gstvideorate.c
-libgstvideorate_la_CFLAGS = $(GST_CFLAGS)
+libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
 libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
 libgstvideorate_la_LIBTOOLFLAGS = --tag=disable-static
 all: all-am
 
@@ -503,7 +519,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstvideorate.la: $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_DEPENDENCIES) 
+libgstvideorate.la: $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_DEPENDENCIES) $(EXTRA_libgstvideorate_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvideorate_la_LINK) -rpath $(plugindir) $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -517,34 +533,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideorate_la-gstvideorate.lo: gstvideorate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideorate_la_CFLAGS) $(CFLAGS) -MT libgstvideorate_la-gstvideorate.lo -MD -MP -MF $(DEPDIR)/libgstvideorate_la-gstvideorate.Tpo -c -o libgstvideorate_la-gstvideorate.lo `test -f 'gstvideorate.c' || echo '$(srcdir)/'`gstvideorate.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideorate_la-gstvideorate.Tpo $(DEPDIR)/libgstvideorate_la-gstvideorate.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvideorate.c' object='libgstvideorate_la-gstvideorate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvideorate.c' object='libgstvideorate_la-gstvideorate.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideorate_la_CFLAGS) $(CFLAGS) -c -o libgstvideorate_la-gstvideorate.lo `test -f 'gstvideorate.c' || echo '$(srcdir)/'`gstvideorate.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideorate_la_CFLAGS) $(CFLAGS) -c -o libgstvideorate_la-gstvideorate.lo `test -f 'gstvideorate.c' || echo '$(srcdir)/'`gstvideorate.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -651,10 +663,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 4f53c81..e4ba16c 100644 (file)
@@ -86,17 +86,26 @@ enum
 #define DEFAULT_SILENT          TRUE
 #define DEFAULT_NEW_PREF        1.0
 #define DEFAULT_SKIP_TO_FIRST   FALSE
+#define DEFAULT_DROP_ONLY       FALSE
+#define DEFAULT_AVERAGE_PERIOD  0
+#define DEFAULT_MAX_RATE        G_MAXINT
+#define DEFAULT_FORCE_FPS_N     -1
+#define DEFAULT_FORCE_FPS_D     1
 
 enum
 {
-  ARG_0,
-  ARG_IN,
-  ARG_OUT,
-  ARG_DUP,
-  ARG_DROP,
-  ARG_SILENT,
-  ARG_NEW_PREF,
-  ARG_SKIP_TO_FIRST
+  PROP_0,
+  PROP_IN,
+  PROP_OUT,
+  PROP_DUP,
+  PROP_DROP,
+  PROP_SILENT,
+  PROP_NEW_PREF,
+  PROP_SKIP_TO_FIRST,
+  PROP_DROP_ONLY,
+  PROP_AVERAGE_PERIOD,
+  PROP_MAX_RATE,
+  PROP_FORCE_FPS
       /* FILL ME */
 };
 
@@ -118,24 +127,39 @@ static GstStaticPadTemplate gst_video_rate_sink_template =
 
 static void gst_video_rate_swap_prev (GstVideoRate * videorate,
     GstBuffer * buffer, gint64 time);
-static gboolean gst_video_rate_event (GstPad * pad, GstEvent * event);
-static gboolean gst_video_rate_query (GstPad * pad, GstQuery * query);
-static GstFlowReturn gst_video_rate_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_video_rate_event (GstBaseTransform * trans,
+    GstEvent * event);
+static gboolean gst_video_rate_query (GstBaseTransform * trans,
+    GstPadDirection direction, GstQuery * query);
+
+static gboolean gst_video_rate_setcaps (GstBaseTransform * trans,
+    GstCaps * in_caps, GstCaps * out_caps);
+
+static GstCaps *gst_video_rate_transform_caps (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps);
+
+static void gst_video_rate_fixate_caps (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
+
+static GstFlowReturn gst_video_rate_prepare_output_buffer (GstBaseTransform *
+    trans, GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf);
+static GstFlowReturn gst_video_rate_transform_ip (GstBaseTransform * trans,
+    GstBuffer * buf);
+
+static gboolean gst_video_rate_start (GstBaseTransform * trans);
+static gboolean gst_video_rate_stop (GstBaseTransform * trans);
+
 
 static void gst_video_rate_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec);
 static void gst_video_rate_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static GstStateChangeReturn gst_video_rate_change_state (GstElement * element,
-    GstStateChange transition);
-
-/*static guint gst_video_rate_signals[LAST_SIGNAL] = { 0 }; */
-
 static GParamSpec *pspec_drop = NULL;
 static GParamSpec *pspec_duplicate = NULL;
 
-GST_BOILERPLATE (GstVideoRate, gst_video_rate, GstElement, GST_TYPE_ELEMENT);
+GST_BOILERPLATE (GstVideoRate, gst_video_rate,
+    GstBaseTransform, GST_TYPE_BASE_TRANSFORM);
 
 static void
 gst_video_rate_base_init (gpointer g_class)
@@ -147,42 +171,54 @@ gst_video_rate_base_init (gpointer g_class)
       "Drops/duplicates/adjusts timestamps on video frames to make a perfect stream",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_video_rate_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_video_rate_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_video_rate_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_video_rate_src_template);
 }
 
 static void
 gst_video_rate_class_init (GstVideoRateClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GstBaseTransformClass *base_class = GST_BASE_TRANSFORM_CLASS (klass);
 
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->set_property = gst_video_rate_set_property;
   object_class->get_property = gst_video_rate_get_property;
 
-  g_object_class_install_property (object_class, ARG_IN,
+  base_class->set_caps = GST_DEBUG_FUNCPTR (gst_video_rate_setcaps);
+  base_class->transform_caps =
+      GST_DEBUG_FUNCPTR (gst_video_rate_transform_caps);
+  base_class->transform_ip = GST_DEBUG_FUNCPTR (gst_video_rate_transform_ip);
+  base_class->prepare_output_buffer =
+      GST_DEBUG_FUNCPTR (gst_video_rate_prepare_output_buffer);
+  base_class->event = GST_DEBUG_FUNCPTR (gst_video_rate_event);
+  base_class->start = GST_DEBUG_FUNCPTR (gst_video_rate_start);
+  base_class->stop = GST_DEBUG_FUNCPTR (gst_video_rate_stop);
+  base_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_rate_fixate_caps);
+  base_class->query = GST_DEBUG_FUNCPTR (gst_video_rate_query);
+
+  g_object_class_install_property (object_class, PROP_IN,
       g_param_spec_uint64 ("in", "In",
           "Number of input frames", 0, G_MAXUINT64, 0,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (object_class, ARG_OUT,
+  g_object_class_install_property (object_class, PROP_OUT,
       g_param_spec_uint64 ("out", "Out", "Number of output frames", 0,
           G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   pspec_duplicate = g_param_spec_uint64 ("duplicate", "Duplicate",
       "Number of duplicated frames", 0, G_MAXUINT64, 0,
       G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-  g_object_class_install_property (object_class, ARG_DUP, pspec_duplicate);
+  g_object_class_install_property (object_class, PROP_DUP, pspec_duplicate);
   pspec_drop = g_param_spec_uint64 ("drop", "Drop", "Number of dropped frames",
       0, G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-  g_object_class_install_property (object_class, ARG_DROP, pspec_drop);
-  g_object_class_install_property (object_class, ARG_SILENT,
+  g_object_class_install_property (object_class, PROP_DROP, pspec_drop);
+  g_object_class_install_property (object_class, PROP_SILENT,
       g_param_spec_boolean ("silent", "silent",
           "Don't emit notify for dropped and duplicated frames", DEFAULT_SILENT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (object_class, ARG_NEW_PREF,
+  g_object_class_install_property (object_class, PROP_NEW_PREF,
       g_param_spec_double ("new-pref", "New Pref",
           "Value indicating how much to prefer new frames (unused)", 0.0, 1.0,
           DEFAULT_NEW_PREF, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
@@ -194,210 +230,331 @@ gst_video_rate_class_init (GstVideoRateClass * klass)
    *
    * Since: 0.10.25
    */
-  g_object_class_install_property (object_class, ARG_SKIP_TO_FIRST,
+  g_object_class_install_property (object_class, PROP_SKIP_TO_FIRST,
       g_param_spec_boolean ("skip-to-first", "Skip to first buffer",
           "Don't produce buffers before the first one we receive",
           DEFAULT_SKIP_TO_FIRST, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  element_class->change_state = GST_DEBUG_FUNCPTR (gst_video_rate_change_state);
+  /**
+   * GstVideoRate:drop-only:
+   *
+   * Only drop frames, no duplicates are produced.
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (object_class, PROP_DROP_ONLY,
+      g_param_spec_boolean ("drop-only", "Only Drop",
+          "Only drop frames, no duplicates are produced",
+          DEFAULT_DROP_ONLY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstVideoRate:average-period:
+   *
+   * Arrange for maximum framerate by dropping frames beyond a certain framerate,
+   * where the framerate is calculated using a moving average over the
+   * configured.
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (object_class, PROP_AVERAGE_PERIOD,
+      g_param_spec_uint64 ("average-period", "Period over which to average",
+          "Period over which to average the framerate (in ns) (0 = disabled)",
+          0, G_MAXINT64, DEFAULT_AVERAGE_PERIOD,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstVideoRate:max-rate:
+   *
+   * maximum framerate to pass through
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (object_class, PROP_MAX_RATE,
+      g_param_spec_int ("max-rate", "maximum framerate",
+          "Maximum framerate allowed to pass through "
+          "(in frames per second, implies drop-only)",
+          1, G_MAXINT, DEFAULT_MAX_RATE,
+          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstVideoRate:force-fps:
+   *
+   * Forced output framerate
+   *
+   * Since: 0.10.36
+   */
+  g_object_class_install_property (object_class, PROP_FORCE_FPS,
+      gst_param_spec_fraction ("force-fps", "Force output framerate",
+          "Force output framerate (negative means negotiate via caps)",
+          -1, 1, G_MAXINT, 1, DEFAULT_FORCE_FPS_N, DEFAULT_FORCE_FPS_D,
+          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 }
 
-/* return the caps that can be used on out_pad given in_caps on in_pad */
+static void
+gst_value_fraction_get_extremes (const GValue * v,
+    gint * min_num, gint * min_denom, gint * max_num, gint * max_denom)
+{
+  if (GST_VALUE_HOLDS_FRACTION (v)) {
+    *min_num = *max_num = gst_value_get_fraction_numerator (v);
+    *min_denom = *max_denom = gst_value_get_fraction_denominator (v);
+  } else if (GST_VALUE_HOLDS_FRACTION_RANGE (v)) {
+    const GValue *min, *max;
+
+    min = gst_value_get_fraction_range_min (v);
+    *min_num = gst_value_get_fraction_numerator (min);
+    *min_denom = gst_value_get_fraction_denominator (min);
+
+    max = gst_value_get_fraction_range_max (v);
+    *max_num = gst_value_get_fraction_numerator (max);
+    *max_denom = gst_value_get_fraction_denominator (max);
+  } else if (GST_VALUE_HOLDS_LIST (v)) {
+    gint min_n = G_MAXINT, min_d = 1, max_n = 0, max_d = 1;
+    int i, n;
+
+    *min_num = G_MAXINT;
+    *min_denom = 1;
+    *max_num = 0;
+    *max_denom = 1;
+
+    n = gst_value_list_get_size (v);
+
+    g_assert (n > 0);
+
+    for (i = 0; i < n; i++) {
+      const GValue *t = gst_value_list_get_value (v, i);
+
+      gst_value_fraction_get_extremes (t, &min_n, &min_d, &max_n, &max_d);
+      if (gst_util_fraction_compare (min_n, min_d, *min_num, *min_denom) < 0) {
+        *min_num = min_n;
+        *min_denom = min_d;
+      }
+
+      if (gst_util_fraction_compare (max_n, max_d, *max_num, *max_denom) > 0) {
+        *max_num = max_n;
+        *max_denom = max_d;
+      }
+    }
+  } else {
+    g_warning ("Unknown type for framerate");
+    *min_num = 0;
+    *min_denom = 1;
+    *max_num = G_MAXINT;
+    *max_denom = 1;
+  }
+}
+
+/* Clamp the framerate in a caps structure to be a smaller range then
+ * [1...max_rate], otherwise return false */
 static gboolean
-gst_video_rate_transformcaps (GstPad * in_pad, GstCaps * in_caps,
-    GstPad * out_pad, GstCaps ** out_caps)
+gst_video_max_rate_clamp_structure (GstStructure * s, gint maxrate,
+    gint * min_num, gint * min_denom, gint * max_num, gint * max_denom)
 {
-  GstCaps *intersect;
-  const GstCaps *in_templ;
-  gint i;
-  GSList *extra_structures = NULL;
-  GSList *iter;
+  gboolean ret = FALSE;
 
-  in_templ = gst_pad_get_pad_template_caps (in_pad);
-  intersect = gst_caps_intersect (in_caps, in_templ);
+  if (!gst_structure_has_field (s, "framerate")) {
+    /* No framerate field implies any framerate, clamping would result in
+     * [1..max_rate] so not a real subset */
+    goto out;
+  } else {
+    const GValue *v;
+    GValue intersection = { 0, };
+    GValue clamp = { 0, };
+    gint tmp_num, tmp_denom;
+
+    g_value_init (&clamp, GST_TYPE_FRACTION_RANGE);
+    gst_value_set_fraction_range_full (&clamp, 0, 1, maxrate, 1);
+
+    v = gst_structure_get_value (s, "framerate");
+    ret = gst_value_intersect (&intersection, v, &clamp);
+    g_value_unset (&clamp);
 
-  /* all possible framerates are allowed */
-  for (i = 0; i < gst_caps_get_size (intersect); i++) {
-    GstStructure *structure;
+    if (!ret)
+      goto out;
 
-    structure = gst_caps_get_structure (intersect, i);
+    gst_value_fraction_get_extremes (&intersection,
+        min_num, min_denom, max_num, max_denom);
 
-    if (gst_structure_has_field (structure, "framerate")) {
-      GstStructure *copy_structure;
+    gst_value_fraction_get_extremes (v,
+        &tmp_num, &tmp_denom, max_num, max_denom);
 
-      copy_structure = gst_structure_copy (structure);
-      gst_structure_set (copy_structure,
-          "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
-      extra_structures = g_slist_append (extra_structures, copy_structure);
+    if (gst_util_fraction_compare (*max_num, *max_denom, maxrate, 1) > 0) {
+      *max_num = maxrate;
+      *max_denom = 1;
     }
-  }
 
-  /* append the extra structures */
-  for (iter = extra_structures; iter != NULL; iter = g_slist_next (iter)) {
-    gst_caps_append_structure (intersect, (GstStructure *) iter->data);
+    gst_structure_take_value (s, "framerate", &intersection);
   }
-  g_slist_free (extra_structures);
-
-  *out_caps = intersect;
 
-  return TRUE;
+out:
+  return ret;
 }
 
 static GstCaps *
-gst_video_rate_getcaps (GstPad * pad)
+gst_video_rate_transform_caps (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps)
 {
-  GstVideoRate *videorate;
-  GstPad *otherpad;
-  GstCaps *caps;
+  GstVideoRate *videorate = GST_VIDEO_RATE (trans);
+  GstCaps *ret;
+  GstStructure *s, *s2;
+  GstStructure *s3 = NULL;
+  int maxrate = g_atomic_int_get (&videorate->max_rate);
+
+  /* Should always be called with simple caps */
+  g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL);
+
+  ret = gst_caps_copy (caps);
+
+  s = gst_caps_get_structure (ret, 0);
+  s2 = gst_structure_copy (s);
+
+  if (videorate->force_fps_n >= 0 && videorate->force_fps_d >= 0) {
+    if (direction == GST_PAD_SINK) {
+      gst_caps_remove_structure (ret, 0);
+      gst_structure_set (s2, "framerate", GST_TYPE_FRACTION,
+          videorate->force_fps_n, videorate->force_fps_d, NULL);
+    } else {
+      gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+          G_MAXINT, 1, NULL);
+    }
+  } else if (videorate->drop_only) {
+    gint min_num = 0, min_denom = 1;
+    gint max_num = G_MAXINT, max_denom = 1;
+
+    /* Clamp the caps to our maximum rate as the first caps if possible */
+    if (!gst_video_max_rate_clamp_structure (s, maxrate,
+            &min_num, &min_denom, &max_num, &max_denom)) {
+      min_num = 0;
+      min_denom = 1;
+      max_num = maxrate;
+      max_denom = 1;
+
+      /* clamp wouldn't be a real subset of 1..maxrate, in this case the sink
+       * caps should become [1..maxrate], [1..maxint] and the src caps just
+       * [1..maxrate].  In case there was a caps incompatibility things will
+       * explode later as appropriate :)
+       *
+       * In case [X..maxrate] == [X..maxint], skip as we'll set it later
+       */
+      if (direction == GST_PAD_SRC && maxrate != G_MAXINT)
+        gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE,
+            min_num, min_denom, maxrate, 1, NULL);
+      else
+        gst_caps_remove_structure (ret, 0);
+    }
 
-  videorate = GST_VIDEO_RATE (GST_PAD_PARENT (pad));
+    if (direction == GST_PAD_SRC) {
+      /* We can accept anything as long as it's at least the minimal framerate
+       * the the sink needs */
+      gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE,
+          min_num, min_denom, G_MAXINT, 1, NULL);
 
-  otherpad = (pad == videorate->srcpad) ? videorate->sinkpad :
-      videorate->srcpad;
+      /* Also allow unknown framerate, if it isn't already */
+      if (min_num != 0 || min_denom != 1) {
+        s3 = gst_structure_copy (s);
+        gst_structure_set (s3, "framerate", GST_TYPE_FRACTION, 0, 1, NULL);
+      }
+    } else if (max_num != 0 || max_denom != 1) {
+      /* We can provide everything upto the maximum framerate at the src */
+      gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE,
+          0, 1, max_num, max_denom, NULL);
+    }
+  } else if (direction == GST_PAD_SINK) {
+    gint min_num = 0, min_denom = 1;
+    gint max_num = G_MAXINT, max_denom = 1;
 
-  /* we can do what the peer can */
-  caps = gst_pad_peer_get_caps (otherpad);
-  if (caps) {
-    GstCaps *transform;
+    if (!gst_video_max_rate_clamp_structure (s, maxrate,
+            &min_num, &min_denom, &max_num, &max_denom))
+      gst_caps_remove_structure (ret, 0);
 
-    gst_video_rate_transformcaps (otherpad, caps, pad, &transform);
-    gst_caps_unref (caps);
-    caps = transform;
+    gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+        maxrate, 1, NULL);
   } else {
-    /* no peer, our padtemplate is enough then */
-    caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+    /* set the framerate as a range */
+    gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+        G_MAXINT, 1, NULL);
   }
 
-  return caps;
+  gst_caps_merge_structure (ret, s2);
+  if (s3 != NULL)
+    gst_caps_merge_structure (ret, s3);
+
+  return ret;
+}
+
+static void
+gst_video_rate_fixate_caps (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
+{
+  GstStructure *s;
+  gint num, denom;
+
+  s = gst_caps_get_structure (caps, 0);
+  if (G_UNLIKELY (!gst_structure_get_fraction (s, "framerate", &num, &denom)))
+    return;
+
+  s = gst_caps_get_structure (othercaps, 0);
+  gst_structure_fixate_field_nearest_fraction (s, "framerate", num, denom);
 }
 
 static gboolean
-gst_video_rate_setcaps (GstPad * pad, GstCaps * caps)
+gst_video_rate_setcaps (GstBaseTransform * trans, GstCaps * in_caps,
+    GstCaps * out_caps)
 {
   GstVideoRate *videorate;
   GstStructure *structure;
   gboolean ret = TRUE;
-  GstPad *otherpad, *opeer;
   gint rate_numerator, rate_denominator;
 
-  videorate = GST_VIDEO_RATE (gst_pad_get_parent (pad));
+  videorate = GST_VIDEO_RATE (trans);
 
-  GST_DEBUG_OBJECT (pad, "setcaps called %" GST_PTR_FORMAT, caps);
+  GST_DEBUG_OBJECT (trans, "setcaps called in: %" GST_PTR_FORMAT
+      " out: %" GST_PTR_FORMAT, in_caps, out_caps);
 
-  structure = gst_caps_get_structure (caps, 0);
+  structure = gst_caps_get_structure (in_caps, 0);
   if (!gst_structure_get_fraction (structure, "framerate",
           &rate_numerator, &rate_denominator))
     goto no_framerate;
 
-  if (pad == videorate->srcpad) {
-    /* out_frame_count is scaled by the frame rate caps when calculating next_ts.
-     * when the frame rate caps change, we must update base_ts and reset
-     * out_frame_count */
-    if (videorate->to_rate_numerator) {
-      videorate->base_ts +=
-          gst_util_uint64_scale (videorate->out_frame_count,
-          videorate->to_rate_denominator * GST_SECOND,
-          videorate->to_rate_numerator);
-    }
-    videorate->out_frame_count = 0;
-    videorate->to_rate_numerator = rate_numerator;
-    videorate->to_rate_denominator = rate_denominator;
-    otherpad = videorate->sinkpad;
-  } else {
-    videorate->from_rate_numerator = rate_numerator;
-    videorate->from_rate_denominator = rate_denominator;
-    otherpad = videorate->srcpad;
-  }
-
-  /* now try to find something for the peer */
-  opeer = gst_pad_get_peer (otherpad);
-  if (opeer) {
-    if (gst_pad_accept_caps (opeer, caps)) {
-      /* the peer accepts the caps as they are */
-      gst_pad_set_caps (otherpad, caps);
-
-      ret = TRUE;
-    } else {
-      GstCaps *peercaps;
-      GstCaps *transform = NULL;
-
-      ret = FALSE;
-
-      /* see how we can transform the input caps */
-      if (!gst_video_rate_transformcaps (pad, caps, otherpad, &transform))
-        goto no_transform;
-
-      /* see what the peer can do */
-      peercaps = gst_pad_get_caps (opeer);
-
-      GST_DEBUG_OBJECT (opeer, "icaps %" GST_PTR_FORMAT, peercaps);
-      GST_DEBUG_OBJECT (videorate, "transform %" GST_PTR_FORMAT, transform);
-
-      /* filter against our possibilities */
-      caps = gst_caps_intersect (peercaps, transform);
-      gst_caps_unref (peercaps);
-      gst_caps_unref (transform);
-
-      GST_DEBUG_OBJECT (videorate, "intersect %" GST_PTR_FORMAT, caps);
+  videorate->from_rate_numerator = rate_numerator;
+  videorate->from_rate_denominator = rate_denominator;
 
-      /* could turn up empty, due to e.g. colorspace etc */
-      if (gst_caps_get_size (caps) == 0) {
-        gst_caps_unref (caps);
-        goto no_transform;
-      }
-
-      /* take first possibility */
-      gst_caps_truncate (caps);
-      structure = gst_caps_get_structure (caps, 0);
-
-      /* and fixate */
-      gst_structure_fixate_field_nearest_fraction (structure, "framerate",
-          rate_numerator, rate_denominator);
+  structure = gst_caps_get_structure (out_caps, 0);
+  if (!gst_structure_get_fraction (structure, "framerate",
+          &rate_numerator, &rate_denominator))
+    goto no_framerate;
 
-      gst_structure_get_fraction (structure, "framerate",
-          &rate_numerator, &rate_denominator);
+  /* out_frame_count is scaled by the frame rate caps when calculating next_ts.
+   * when the frame rate caps change, we must update base_ts and reset
+   * out_frame_count */
+  if (videorate->to_rate_numerator) {
+    videorate->base_ts +=
+        gst_util_uint64_scale (videorate->out_frame_count,
+        videorate->to_rate_denominator * GST_SECOND,
+        videorate->to_rate_numerator);
+  }
+  videorate->out_frame_count = 0;
+  videorate->to_rate_numerator = rate_numerator;
+  videorate->to_rate_denominator = rate_denominator;
 
-      if (otherpad == videorate->srcpad) {
-        videorate->to_rate_numerator = rate_numerator;
-        videorate->to_rate_denominator = rate_denominator;
-      } else {
-        videorate->from_rate_numerator = rate_numerator;
-        videorate->from_rate_denominator = rate_denominator;
-      }
+  if (rate_numerator)
+    videorate->wanted_diff = gst_util_uint64_scale_int (GST_SECOND,
+        rate_denominator, rate_numerator);
+  else
+    videorate->wanted_diff = 0;
 
-      if (gst_structure_has_field (structure, "interlaced"))
-        gst_structure_fixate_field_boolean (structure, "interlaced", FALSE);
-      if (gst_structure_has_field (structure, "color-matrix"))
-        gst_structure_fixate_field_string (structure, "color-matrix", "sdtv");
-      if (gst_structure_has_field (structure, "chroma-site"))
-        gst_structure_fixate_field_string (structure, "chroma-site", "mpeg2");
-      if (gst_structure_has_field (structure, "pixel-aspect-ratio"))
-        gst_structure_fixate_field_nearest_fraction (structure,
-            "pixel-aspect-ratio", 1, 1);
-
-      gst_pad_set_caps (otherpad, caps);
-      gst_caps_unref (caps);
-      ret = TRUE;
-    }
-    gst_object_unref (opeer);
-  }
 done:
   /* After a setcaps, our caps may have changed. In that case, we can't use
    * the old buffer, if there was one (it might have different dimensions) */
   GST_DEBUG_OBJECT (videorate, "swapping old buffers");
   gst_video_rate_swap_prev (videorate, NULL, GST_CLOCK_TIME_NONE);
+  videorate->last_ts = GST_CLOCK_TIME_NONE;
+  videorate->average = 0;
 
-  gst_object_unref (videorate);
   return ret;
 
 no_framerate:
   {
     GST_DEBUG_OBJECT (videorate, "no framerate specified");
-    goto done;
-  }
-no_transform:
-  {
-    GST_DEBUG_OBJECT (videorate, "no framerate transform possible");
     ret = FALSE;
     goto done;
   }
@@ -417,6 +574,7 @@ gst_video_rate_reset (GstVideoRate * videorate)
   videorate->next_ts = GST_CLOCK_TIME_NONE;
   videorate->last_ts = GST_CLOCK_TIME_NONE;
   videorate->discont = TRUE;
+  videorate->average = 0;
   gst_video_rate_swap_prev (videorate, NULL, 0);
 
   gst_segment_init (&videorate->segment, GST_FORMAT_TIME);
@@ -425,36 +583,22 @@ gst_video_rate_reset (GstVideoRate * videorate)
 static void
 gst_video_rate_init (GstVideoRate * videorate, GstVideoRateClass * klass)
 {
-  videorate->sinkpad =
-      gst_pad_new_from_static_template (&gst_video_rate_sink_template, "sink");
-  gst_pad_set_event_function (videorate->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_event));
-  gst_pad_set_chain_function (videorate->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_chain));
-  gst_pad_set_getcaps_function (videorate->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_getcaps));
-  gst_pad_set_setcaps_function (videorate->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_setcaps));
-  gst_element_add_pad (GST_ELEMENT (videorate), videorate->sinkpad);
-
-  videorate->srcpad =
-      gst_pad_new_from_static_template (&gst_video_rate_src_template, "src");
-  gst_pad_set_query_function (videorate->srcpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_query));
-  gst_pad_set_getcaps_function (videorate->srcpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_getcaps));
-  gst_pad_set_setcaps_function (videorate->srcpad,
-      GST_DEBUG_FUNCPTR (gst_video_rate_setcaps));
-  gst_element_add_pad (GST_ELEMENT (videorate), videorate->srcpad);
-
   gst_video_rate_reset (videorate);
   videorate->silent = DEFAULT_SILENT;
   videorate->new_pref = DEFAULT_NEW_PREF;
+  videorate->drop_only = DEFAULT_DROP_ONLY;
+  videorate->average_period = DEFAULT_AVERAGE_PERIOD;
+  videorate->average_period_set = DEFAULT_AVERAGE_PERIOD;
+  videorate->max_rate = DEFAULT_MAX_RATE;
+  videorate->force_fps_n = DEFAULT_FORCE_FPS_N;
+  videorate->force_fps_d = DEFAULT_FORCE_FPS_D;
 
   videorate->from_rate_numerator = 0;
   videorate->from_rate_denominator = 0;
   videorate->to_rate_numerator = 0;
   videorate->to_rate_denominator = 0;
+
+  gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (videorate), TRUE);
 }
 
 /* flush the oldest buffer */
@@ -501,16 +645,17 @@ gst_video_rate_flush_prev (GstVideoRate * videorate, gboolean duplicate)
     GST_BUFFER_DURATION (outbuf) = videorate->next_ts - push_ts;
   }
 
-  /* adapt for looping, bring back to time in current segment. */
-  GST_BUFFER_TIMESTAMP (outbuf) = push_ts - videorate->segment.accum;
-
-  gst_buffer_set_caps (outbuf, GST_PAD_CAPS (videorate->srcpad));
+  /* We do not need to update time in VFR (variable frame rate) mode */
+  if (!videorate->drop_only) {
+    /* adapt for looping, bring back to time in current segment. */
+    GST_BUFFER_TIMESTAMP (outbuf) = push_ts - videorate->segment.accum;
+  }
 
   GST_LOG_OBJECT (videorate,
       "old is best, dup, pushing buffer outgoing ts %" GST_TIME_FORMAT,
       GST_TIME_ARGS (push_ts));
 
-  res = gst_pad_push (videorate->srcpad, outbuf);
+  res = gst_pad_push (GST_BASE_TRANSFORM_SRC_PAD (videorate), outbuf);
 
   return res;
 
@@ -529,7 +674,7 @@ gst_video_rate_swap_prev (GstVideoRate * videorate, GstBuffer * buffer,
   GST_LOG_OBJECT (videorate, "swap_prev: storing buffer %p in prev", buffer);
   if (videorate->prevbuf)
     gst_buffer_unref (videorate->prevbuf);
-  videorate->prevbuf = buffer;
+  videorate->prevbuf = buffer != NULL ? gst_buffer_ref (buffer) : NULL;
   videorate->prev_ts = time;
 }
 
@@ -555,12 +700,11 @@ gst_video_rate_notify_duplicate (GstVideoRate * videorate)
 
 #define MAGIC_LIMIT  25
 static gboolean
-gst_video_rate_event (GstPad * pad, GstEvent * event)
+gst_video_rate_event (GstBaseTransform * trans, GstEvent * event)
 {
   GstVideoRate *videorate;
-  gboolean ret;
 
-  videorate = GST_VIDEO_RATE (gst_pad_get_parent (pad));
+  videorate = GST_VIDEO_RATE (trans);
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_NEWSEGMENT:
@@ -677,31 +821,27 @@ gst_video_rate_event (GstPad * pad, GstEvent * event)
       break;
   }
 
-  ret = gst_pad_push_event (videorate->srcpad, event);
-
-done:
-  gst_object_unref (videorate);
-
-  return ret;
+  return TRUE;
 
   /* ERRORS */
 format_error:
   {
     GST_WARNING_OBJECT (videorate,
         "Got segment but doesn't have GST_FORMAT_TIME value");
-    gst_event_unref (event);
-    ret = FALSE;
-    goto done;
+    return FALSE;
   }
 }
 
 static gboolean
-gst_video_rate_query (GstPad * pad, GstQuery * query)
+gst_video_rate_query (GstBaseTransform * trans, GstPadDirection direction,
+    GstQuery * query)
 {
-  GstVideoRate *videorate;
+  GstVideoRate *videorate = GST_VIDEO_RATE (trans);
   gboolean res = FALSE;
+  GstPad *otherpad;
 
-  videorate = GST_VIDEO_RATE (gst_pad_get_parent (pad));
+  otherpad = (direction == GST_PAD_SRC) ?
+      GST_BASE_TRANSFORM_SINK_PAD (trans) : GST_BASE_TRANSFORM_SRC_PAD (trans);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_LATENCY:
@@ -709,9 +849,14 @@ gst_video_rate_query (GstPad * pad, GstQuery * query)
       GstClockTime min, max;
       gboolean live;
       guint64 latency;
+      guint64 avg_period;
       GstPad *peer;
 
-      if ((peer = gst_pad_get_peer (videorate->sinkpad))) {
+      GST_OBJECT_LOCK (videorate);
+      avg_period = videorate->average_period_set;
+      GST_OBJECT_UNLOCK (videorate);
+
+      if (avg_period == 0 && (peer = gst_pad_get_peer (otherpad))) {
         if ((res = gst_pad_query (peer, query))) {
           gst_query_parse_latency (query, &live, &min, &max);
 
@@ -745,32 +890,134 @@ gst_video_rate_query (GstPad * pad, GstQuery * query)
           gst_query_set_latency (query, live, min, max);
         }
         gst_object_unref (peer);
+        break;
       }
-      break;
+      /* Simple fallthrough if we don't have a latency or not a peer that we
+       * can't ask about its latency yet.. */
     }
     default:
-      res = gst_pad_query_default (pad, query);
+      res = parent_class->query (trans, direction, query);
       break;
   }
-  gst_object_unref (videorate);
 
   return res;
 }
 
 static GstFlowReturn
-gst_video_rate_chain (GstPad * pad, GstBuffer * buffer)
+gst_video_rate_trans_ip_max_avg (GstVideoRate * videorate, GstBuffer * buf)
+{
+  GstClockTime ts = GST_BUFFER_TIMESTAMP (buf);
+
+  videorate->in++;
+
+  if (!GST_CLOCK_TIME_IS_VALID (ts) || videorate->wanted_diff == 0)
+    goto push;
+
+  /* drop frames if they exceed our output rate */
+  if (GST_CLOCK_TIME_IS_VALID (videorate->last_ts)) {
+    GstClockTimeDiff diff = ts - videorate->last_ts;
+
+    /* Drop buffer if its early compared to the desired frame rate and
+     * the current average is higher than the desired average
+     */
+    if (diff < videorate->wanted_diff &&
+        videorate->average < videorate->wanted_diff)
+      goto drop;
+
+    /* Update average */
+    if (videorate->average) {
+      GstClockTimeDiff wanted_diff;
+
+      if (G_LIKELY (videorate->average_period > videorate->wanted_diff))
+        wanted_diff = videorate->wanted_diff;
+      else
+        wanted_diff = videorate->average_period * 10;
+
+      videorate->average =
+          gst_util_uint64_scale_round (videorate->average,
+          videorate->average_period - wanted_diff,
+          videorate->average_period) +
+          gst_util_uint64_scale_round (diff, wanted_diff,
+          videorate->average_period);
+    } else {
+      videorate->average = diff;
+    }
+  }
+
+  videorate->last_ts = ts;
+
+push:
+  videorate->out++;
+  return GST_FLOW_OK;
+
+drop:
+  if (!videorate->silent)
+    gst_video_rate_notify_drop (videorate);
+  return GST_BASE_TRANSFORM_FLOW_DROPPED;
+}
+
+static GstFlowReturn
+gst_video_rate_prepare_output_buffer (GstBaseTransform * trans,
+    GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf)
+{
+  if (gst_buffer_is_metadata_writable (input)) {
+    gst_buffer_set_caps (input, caps);
+    *buf = gst_buffer_ref (input);
+  } else {
+    *buf = gst_buffer_create_sub (input, 0, GST_BUFFER_SIZE (input));
+    gst_buffer_set_caps (*buf, caps);
+  }
+
+  return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
 {
   GstVideoRate *videorate;
-  GstFlowReturn res = GST_FLOW_OK;
+  GstFlowReturn res = GST_BASE_TRANSFORM_FLOW_DROPPED;
   GstClockTime intime, in_ts, in_dur;
+  GstClockTime avg_period;
+  gboolean skip = FALSE;
 
-  videorate = GST_VIDEO_RATE (GST_PAD_PARENT (pad));
+  videorate = GST_VIDEO_RATE (trans);
 
   /* make sure the denominators are not 0 */
   if (videorate->from_rate_denominator == 0 ||
       videorate->to_rate_denominator == 0)
     goto not_negotiated;
 
+  GST_OBJECT_LOCK (videorate);
+  avg_period = videorate->average_period_set;
+  GST_OBJECT_UNLOCK (videorate);
+
+  /* MT-safe switching between modes */
+  if (G_UNLIKELY (avg_period != videorate->average_period)) {
+    gboolean switch_mode = (avg_period == 0 || videorate->average_period == 0);
+    videorate->average_period = avg_period;
+    videorate->last_ts = GST_CLOCK_TIME_NONE;
+
+    if (switch_mode) {
+      if (avg_period) {
+        /* enabling average mode */
+        videorate->average = 0;
+        /* make sure no cached buffers from regular mode are left */
+        gst_video_rate_swap_prev (videorate, NULL, 0);
+      } else {
+        /* enable regular mode */
+        videorate->next_ts = GST_CLOCK_TIME_NONE;
+        skip = TRUE;
+      }
+
+      /* max averaging mode has a no latency, normal mode does */
+      gst_element_post_message (GST_ELEMENT (videorate),
+          gst_message_new_latency (GST_OBJECT (videorate)));
+    }
+  }
+
+  if (videorate->average_period > 0)
+    return gst_video_rate_trans_ip_max_avg (videorate, buffer);
+
   in_ts = GST_BUFFER_TIMESTAMP (buffer);
   in_dur = GST_BUFFER_DURATION (buffer);
 
@@ -800,7 +1047,7 @@ gst_video_rate_chain (GstPad * pad, GstBuffer * buffer)
     if (!GST_CLOCK_TIME_IS_VALID (videorate->next_ts)) {
       /* new buffer, we expect to output a buffer that matches the first
        * timestamp in the segment */
-      if (videorate->skip_to_first) {
+      if (videorate->skip_to_first || skip) {
         videorate->next_ts = intime;
         videorate->base_ts = in_ts - videorate->segment.start;
         videorate->out_frame_count = 0;
@@ -833,7 +1080,6 @@ gst_video_rate_chain (GstPad * pad, GstBuffer * buffer)
       videorate->drop++;
       if (!videorate->silent)
         gst_video_rate_notify_drop (videorate);
-      gst_buffer_unref (buffer);
       goto done;
     }
 
@@ -857,16 +1103,20 @@ gst_video_rate_chain (GstPad * pad, GstBuffer * buffer)
 
       /* output first one when its the best */
       if (diff1 <= diff2) {
+        GstFlowReturn r;
         count++;
 
         /* on error the _flush function posted a warning already */
-        if ((res =
-                gst_video_rate_flush_prev (videorate,
+        if ((r = gst_video_rate_flush_prev (videorate,
                     count > 1)) != GST_FLOW_OK) {
-          gst_buffer_unref (buffer);
+          res = r;
           goto done;
         }
       }
+
+      /* Do not produce any dups. We can exit loop now */
+      if (videorate->drop_only)
+        break;
       /* continue while the first one was the best, if they were equal avoid
        * going into an infinite loop */
     }
@@ -907,7 +1157,6 @@ done:
 not_negotiated:
   {
     GST_WARNING_OBJECT (videorate, "no framerate negotiated");
-    gst_buffer_unref (buffer);
     res = GST_FLOW_NOT_NEGOTIATED;
     goto done;
   }
@@ -916,31 +1165,68 @@ invalid_buffer:
   {
     GST_WARNING_OBJECT (videorate,
         "Got buffer with GST_CLOCK_TIME_NONE timestamp, discarding it");
-    gst_buffer_unref (buffer);
+    res = GST_BASE_TRANSFORM_FLOW_DROPPED;
     goto done;
   }
 }
 
+static gboolean
+gst_video_rate_start (GstBaseTransform * trans)
+{
+  gst_video_rate_reset (GST_VIDEO_RATE (trans));
+  return TRUE;
+}
+
+static gboolean
+gst_video_rate_stop (GstBaseTransform * trans)
+{
+  gst_video_rate_reset (GST_VIDEO_RATE (trans));
+  return TRUE;
+}
+
 static void
 gst_video_rate_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec)
 {
   GstVideoRate *videorate = GST_VIDEO_RATE (object);
 
+  GST_OBJECT_LOCK (videorate);
   switch (prop_id) {
-    case ARG_SILENT:
+    case PROP_SILENT:
       videorate->silent = g_value_get_boolean (value);
       break;
-    case ARG_NEW_PREF:
+    case PROP_NEW_PREF:
       videorate->new_pref = g_value_get_double (value);
       break;
-    case ARG_SKIP_TO_FIRST:
+    case PROP_SKIP_TO_FIRST:
       videorate->skip_to_first = g_value_get_boolean (value);
       break;
+    case PROP_DROP_ONLY:
+      videorate->drop_only = g_value_get_boolean (value);
+      goto reconfigure;
+      break;
+    case PROP_AVERAGE_PERIOD:
+      videorate->average_period_set = g_value_get_uint64 (value);
+      break;
+    case PROP_MAX_RATE:
+      g_atomic_int_set (&videorate->max_rate, g_value_get_int (value));
+      goto reconfigure;
+      break;
+    case PROP_FORCE_FPS:
+      videorate->force_fps_n = gst_value_get_fraction_numerator (value);
+      videorate->force_fps_d = gst_value_get_fraction_denominator (value);
+      goto reconfigure;
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
   }
+  GST_OBJECT_UNLOCK (videorate);
+  return;
+
+reconfigure:
+  GST_OBJECT_UNLOCK (videorate);
+  gst_base_transform_reconfigure (GST_BASE_TRANSFORM (videorate));
 }
 
 static void
@@ -949,62 +1235,47 @@ gst_video_rate_get_property (GObject * object,
 {
   GstVideoRate *videorate = GST_VIDEO_RATE (object);
 
+  GST_OBJECT_LOCK (videorate);
   switch (prop_id) {
-    case ARG_IN:
+    case PROP_IN:
       g_value_set_uint64 (value, videorate->in);
       break;
-    case ARG_OUT:
+    case PROP_OUT:
       g_value_set_uint64 (value, videorate->out);
       break;
-    case ARG_DUP:
+    case PROP_DUP:
       g_value_set_uint64 (value, videorate->dup);
       break;
-    case ARG_DROP:
+    case PROP_DROP:
       g_value_set_uint64 (value, videorate->drop);
       break;
-    case ARG_SILENT:
+    case PROP_SILENT:
       g_value_set_boolean (value, videorate->silent);
       break;
-    case ARG_NEW_PREF:
+    case PROP_NEW_PREF:
       g_value_set_double (value, videorate->new_pref);
       break;
-    case ARG_SKIP_TO_FIRST:
+    case PROP_SKIP_TO_FIRST:
       g_value_set_boolean (value, videorate->skip_to_first);
       break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+    case PROP_DROP_ONLY:
+      g_value_set_boolean (value, videorate->drop_only);
       break;
-  }
-}
-
-static GstStateChangeReturn
-gst_video_rate_change_state (GstElement * element, GstStateChange transition)
-{
-  GstStateChangeReturn ret;
-  GstVideoRate *videorate;
-
-  videorate = GST_VIDEO_RATE (element);
-
-  switch (transition) {
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      videorate->discont = TRUE;
-      videorate->last_ts = -1;
+    case PROP_AVERAGE_PERIOD:
+      g_value_set_uint64 (value, videorate->average_period_set);
       break;
-    default:
+    case PROP_MAX_RATE:
+      g_value_set_int (value, g_atomic_int_get (&videorate->max_rate));
       break;
-  }
-
-  ret = parent_class->change_state (element, transition);
-
-  switch (transition) {
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_video_rate_reset (videorate);
+    case PROP_FORCE_FPS:
+      gst_value_set_fraction (value, videorate->force_fps_n,
+          videorate->force_fps_d);
       break;
     default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
   }
-
-  return ret;
+  GST_OBJECT_UNLOCK (videorate);
 }
 
 static gboolean
index 23e2056..772548c 100644 (file)
@@ -21,6 +21,7 @@
 #define __GST_VIDEO_RATE_H__
 
 #include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
 
 G_BEGIN_DECLS
 
@@ -45,9 +46,7 @@ typedef struct _GstVideoRateClass GstVideoRateClass;
  */
 struct _GstVideoRate
 {
-  GstElement element;
-
-  GstPad *sinkpad, *srcpad;
+  GstBaseTransform parent;
 
   /* video state */
   gint from_rate_numerator, from_rate_denominator;
@@ -63,6 +62,10 @@ struct _GstVideoRate
   gboolean discont;
   guint64 last_ts;              /* Timestamp of last input buffer */
 
+  guint64 average_period;
+  GstClockTimeDiff wanted_diff; /* target average diff */
+  GstClockTimeDiff average;     /* moving average period */
+
   /* segment handling */
   GstSegment segment;
 
@@ -71,11 +74,16 @@ struct _GstVideoRate
   gboolean silent;
   gdouble new_pref;
   gboolean skip_to_first;
+  gboolean drop_only;
+  guint64 average_period_set;
+  gint force_fps_n, force_fps_d;
+
+  volatile int max_rate;
 };
 
 struct _GstVideoRateClass
 {
-  GstElementClass parent_class;
+  GstBaseTransformClass parent_class;
 };
 
 GType gst_video_rate_get_type (void);
index 79d2cb4..1d68f80 100644 (file)
@@ -8,7 +8,8 @@ libgstvideoscale_la_SOURCES = \
        vs_image.c \
        vs_scanline.c \
        vs_4tap.c \
-       vs_fill_borders.c
+       vs_fill_borders.c \
+       vs_lanczos.c
 
 nodist_libgstvideoscale_la_SOURCES = $(ORC_NODIST_SOURCES)
 
index 67fc3e5..c55cf51 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -79,6 +79,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -124,6 +125,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -134,13 +141,14 @@ am_libgstvideoscale_la_OBJECTS = libgstvideoscale_la-gstvideoscale.lo \
        libgstvideoscale_la-vs_image.lo \
        libgstvideoscale_la-vs_scanline.lo \
        libgstvideoscale_la-vs_4tap.lo \
-       libgstvideoscale_la-vs_fill_borders.lo
+       libgstvideoscale_la-vs_fill_borders.lo \
+       libgstvideoscale_la-vs_lanczos.lo
 am__objects_1 = libgstvideoscale_la-tmp-orc.lo
 nodist_libgstvideoscale_la_OBJECTS = $(am__objects_1)
 libgstvideoscale_la_OBJECTS = $(am_libgstvideoscale_la_OBJECTS) \
        $(nodist_libgstvideoscale_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstvideoscale_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -156,21 +164,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstvideoscale_la_SOURCES) \
        $(nodist_libgstvideoscale_la_SOURCES)
@@ -239,6 +247,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -299,6 +308,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -308,9 +318,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -333,6 +346,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -405,10 +419,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -442,7 +459,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -479,7 +495,8 @@ libgstvideoscale_la_SOURCES = \
        vs_image.c \
        vs_scanline.c \
        vs_4tap.c \
-       vs_fill_borders.c
+       vs_fill_borders.c \
+       vs_lanczos.c
 
 nodist_libgstvideoscale_la_SOURCES = $(ORC_NODIST_SOURCES)
 libgstvideoscale_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
@@ -522,6 +539,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -562,7 +580,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstvideoscale.la: $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_DEPENDENCIES) 
+libgstvideoscale.la: $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_DEPENDENCIES) $(EXTRA_libgstvideoscale_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvideoscale_la_LINK) -rpath $(plugindir) $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -576,79 +594,78 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_4tap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_image.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_lanczos.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_scanline.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideoscale_la-gstvideoscale.lo: gstvideoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-gstvideoscale.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-gstvideoscale.Tpo -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-gstvideoscale.Tpo $(DEPDIR)/libgstvideoscale_la-gstvideoscale.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvideoscale.c' object='libgstvideoscale_la-gstvideoscale.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvideoscale.c' object='libgstvideoscale_la-gstvideoscale.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
 
 libgstvideoscale_la-vs_image.lo: vs_image.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_image.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_image.Tpo -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_image.Tpo $(DEPDIR)/libgstvideoscale_la-vs_image.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='vs_image.c' object='libgstvideoscale_la-vs_image.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vs_image.c' object='libgstvideoscale_la-vs_image.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
 
 libgstvideoscale_la-vs_scanline.lo: vs_scanline.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_scanline.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_scanline.Tpo -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_scanline.Tpo $(DEPDIR)/libgstvideoscale_la-vs_scanline.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='vs_scanline.c' object='libgstvideoscale_la-vs_scanline.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vs_scanline.c' object='libgstvideoscale_la-vs_scanline.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
 
 libgstvideoscale_la-vs_4tap.lo: vs_4tap.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_4tap.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_4tap.Tpo -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_4tap.Tpo $(DEPDIR)/libgstvideoscale_la-vs_4tap.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='vs_4tap.c' object='libgstvideoscale_la-vs_4tap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vs_4tap.c' object='libgstvideoscale_la-vs_4tap.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
 
 libgstvideoscale_la-vs_fill_borders.lo: vs_fill_borders.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_fill_borders.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Tpo -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Tpo $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='vs_fill_borders.c' object='libgstvideoscale_la-vs_fill_borders.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vs_fill_borders.c' object='libgstvideoscale_la-vs_fill_borders.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
+
+libgstvideoscale_la-vs_lanczos.lo: vs_lanczos.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_lanczos.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Tpo -c -o libgstvideoscale_la-vs_lanczos.lo `test -f 'vs_lanczos.c' || echo '$(srcdir)/'`vs_lanczos.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Tpo $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='vs_lanczos.c' object='libgstvideoscale_la-vs_lanczos.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_lanczos.lo `test -f 'vs_lanczos.c' || echo '$(srcdir)/'`vs_lanczos.c
 
 libgstvideoscale_la-tmp-orc.lo: tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-tmp-orc.Tpo -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-tmp-orc.Tpo $(DEPDIR)/libgstvideoscale_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tmp-orc.c' object='libgstvideoscale_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmp-orc.c' object='libgstvideoscale_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -760,10 +777,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index b941ed0..7b44647 100644 (file)
@@ -89,13 +89,22 @@ GST_DEBUG_CATEGORY (video_scale_debug);
 
 #define DEFAULT_PROP_METHOD       GST_VIDEO_SCALE_BILINEAR
 #define DEFAULT_PROP_ADD_BORDERS  FALSE
+#define DEFAULT_PROP_SHARPNESS    1.0
+#define DEFAULT_PROP_SHARPEN      0.0
+#define DEFAULT_PROP_DITHER       FALSE
+#define DEFAULT_PROP_SUBMETHOD    1
+#define DEFAULT_PROP_ENVELOPE     2.0
 
 enum
 {
   PROP_0,
   PROP_METHOD,
-  PROP_ADD_BORDERS
-      /* FILL ME */
+  PROP_ADD_BORDERS,
+  PROP_SHARPNESS,
+  PROP_SHARPEN,
+  PROP_DITHER,
+  PROP_SUBMETHOD,
+  PROP_ENVELOPE
 };
 
 #undef GST_VIDEO_SIZE_RANGE
@@ -144,6 +153,7 @@ gst_video_scale_method_get_type (void)
     {GST_VIDEO_SCALE_NEAREST, "Nearest Neighbour", "nearest-neighbour"},
     {GST_VIDEO_SCALE_BILINEAR, "Bilinear", "bilinear"},
     {GST_VIDEO_SCALE_4TAP, "4-tap", "4-tap"},
+    {GST_VIDEO_SCALE_LANCZOS, "Lanczos", "lanczos"},
     {0, NULL, NULL},
   };
 
@@ -219,15 +229,18 @@ static void
 gst_video_scale_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+  GstPadTemplate *pad_template;
 
   gst_element_class_set_details_simple (element_class,
       "Video scaler", "Filter/Converter/Video/Scaler",
       "Resizes video", "Wim Taymans <wim.taymans@chello.be>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_video_scale_sink_template_factory ());
-  gst_element_class_add_pad_template (element_class,
-      gst_video_scale_src_template_factory ());
+  pad_template = gst_video_scale_sink_template_factory ();
+  gst_element_class_add_pad_template (element_class, pad_template);
+  gst_object_unref (pad_template);
+  pad_template = gst_video_scale_src_template_factory ();
+  gst_element_class_add_pad_template (element_class, pad_template);
+  gst_object_unref (pad_template);
 }
 
 static void
@@ -251,6 +264,36 @@ gst_video_scale_class_init (GstVideoScaleClass * klass)
           DEFAULT_PROP_ADD_BORDERS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_SHARPNESS,
+      g_param_spec_double ("sharpness", "Sharpness",
+          "Sharpness of filter", 0.0, 2.0, DEFAULT_PROP_SHARPNESS,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_SHARPEN,
+      g_param_spec_double ("sharpen", "Sharpen",
+          "Sharpening", 0.0, 1.0, DEFAULT_PROP_SHARPEN,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_DITHER,
+      g_param_spec_boolean ("dither", "Dither",
+          "Add dither (only used for Lanczos method)",
+          DEFAULT_PROP_DITHER,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+#if 0
+  /* I am hiding submethod for now, since it's poorly named, poorly
+   * documented, and will probably just get people into trouble. */
+  g_object_class_install_property (gobject_class, PROP_SUBMETHOD,
+      g_param_spec_int ("submethod", "submethod",
+          "submethod", 0, 3, DEFAULT_PROP_SUBMETHOD,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+#endif
+
+  g_object_class_install_property (gobject_class, PROP_ENVELOPE,
+      g_param_spec_double ("envelope", "Envelope",
+          "Size of filter envelope", 0.0, 5.0, DEFAULT_PROP_ENVELOPE,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   trans_class->transform_caps =
       GST_DEBUG_FUNCPTR (gst_video_scale_transform_caps);
   trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_video_scale_set_caps);
@@ -267,6 +310,11 @@ gst_video_scale_init (GstVideoScale * videoscale, GstVideoScaleClass * klass)
   videoscale->tmp_buf = NULL;
   videoscale->method = DEFAULT_PROP_METHOD;
   videoscale->add_borders = DEFAULT_PROP_ADD_BORDERS;
+  videoscale->submethod = DEFAULT_PROP_SUBMETHOD;
+  videoscale->sharpness = DEFAULT_PROP_SHARPNESS;
+  videoscale->sharpen = DEFAULT_PROP_SHARPEN;
+  videoscale->dither = DEFAULT_PROP_DITHER;
+  videoscale->envelope = DEFAULT_PROP_ENVELOPE;
 }
 
 static void
@@ -296,6 +344,31 @@ gst_video_scale_set_property (GObject * object, guint prop_id,
       GST_OBJECT_UNLOCK (vscale);
       gst_base_transform_reconfigure (GST_BASE_TRANSFORM_CAST (vscale));
       break;
+    case PROP_SHARPNESS:
+      GST_OBJECT_LOCK (vscale);
+      vscale->sharpness = g_value_get_double (value);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_SHARPEN:
+      GST_OBJECT_LOCK (vscale);
+      vscale->sharpen = g_value_get_double (value);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_DITHER:
+      GST_OBJECT_LOCK (vscale);
+      vscale->dither = g_value_get_boolean (value);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_SUBMETHOD:
+      GST_OBJECT_LOCK (vscale);
+      vscale->submethod = g_value_get_int (value);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_ENVELOPE:
+      GST_OBJECT_LOCK (vscale);
+      vscale->envelope = g_value_get_double (value);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -319,6 +392,31 @@ gst_video_scale_get_property (GObject * object, guint prop_id, GValue * value,
       g_value_set_boolean (value, vscale->add_borders);
       GST_OBJECT_UNLOCK (vscale);
       break;
+    case PROP_SHARPNESS:
+      GST_OBJECT_LOCK (vscale);
+      g_value_set_double (value, vscale->sharpness);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_SHARPEN:
+      GST_OBJECT_LOCK (vscale);
+      g_value_set_double (value, vscale->sharpen);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_DITHER:
+      GST_OBJECT_LOCK (vscale);
+      g_value_set_boolean (value, vscale->dither);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_SUBMETHOD:
+      GST_OBJECT_LOCK (vscale);
+      g_value_set_int (value, vscale->submethod);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
+    case PROP_ENVELOPE:
+      GST_OBJECT_LOCK (vscale);
+      g_value_set_double (value, vscale->envelope);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1078,6 +1176,11 @@ gst_video_scale_transform (GstBaseTransform * trans, GstBuffer * in,
         case GST_VIDEO_SCALE_4TAP:
           vs_image_scale_4tap_RGBA (&dest, &src, videoscale->tmp_buf);
           break;
+        case GST_VIDEO_SCALE_LANCZOS:
+          vs_image_scale_lanczos_AYUV (&dest, &src, videoscale->tmp_buf,
+              videoscale->sharpness, videoscale->dither, videoscale->submethod,
+              videoscale->envelope, videoscale->sharpen);
+          break;
         default:
           goto unknown_mode;
       }
@@ -1217,6 +1320,17 @@ gst_video_scale_transform (GstBaseTransform * trans, GstBuffer * in,
           vs_image_scale_4tap_Y (&dest_u, &src_u, videoscale->tmp_buf);
           vs_image_scale_4tap_Y (&dest_v, &src_v, videoscale->tmp_buf);
           break;
+        case GST_VIDEO_SCALE_LANCZOS:
+          vs_image_scale_lanczos_Y (&dest, &src, videoscale->tmp_buf,
+              videoscale->sharpness, videoscale->dither, videoscale->submethod,
+              videoscale->envelope, videoscale->sharpen);
+          vs_image_scale_lanczos_Y (&dest_u, &src_u, videoscale->tmp_buf,
+              videoscale->sharpness, videoscale->dither, videoscale->submethod,
+              videoscale->envelope, videoscale->sharpen);
+          vs_image_scale_lanczos_Y (&dest_v, &src_v, videoscale->tmp_buf,
+              videoscale->sharpness, videoscale->dither, videoscale->submethod,
+              videoscale->envelope, videoscale->sharpen);
+          break;
         default:
           goto unknown_mode;
       }
index a09d769..655268d 100644 (file)
@@ -47,13 +47,15 @@ GST_DEBUG_CATEGORY_EXTERN (video_scale_debug);
  * @GST_VIDEO_SCALE_NEAREST: use nearest neighbour scaling (fast and ugly)
  * @GST_VIDEO_SCALE_BILINEAR: use bilinear scaling (slower but prettier).
  * @GST_VIDEO_SCALE_4TAP: use a 4-tap filter for scaling (slow).
+ * @GST_VIDEO_SCALE_LANCZOS: use a multitap Lanczos filter for scaling (slow).
  *
  * The videoscale method to use.
  */
 typedef enum {
   GST_VIDEO_SCALE_NEAREST,
   GST_VIDEO_SCALE_BILINEAR,
-  GST_VIDEO_SCALE_4TAP
+  GST_VIDEO_SCALE_4TAP,
+  GST_VIDEO_SCALE_LANCZOS
 } GstVideoScaleMethod;
 
 typedef struct _GstVideoScale GstVideoScale;
@@ -67,8 +69,14 @@ typedef struct _GstVideoScaleClass GstVideoScaleClass;
 struct _GstVideoScale {
   GstVideoFilter element;
 
+  /* properties */
   GstVideoScaleMethod method;
   gboolean add_borders;
+  double sharpness;
+  double sharpen;
+  gboolean dither;
+  int submethod;
+  double envelope;
 
   /* negotiated stuff */
   GstVideoFormat format;
index f983df2..93024bc 100644 (file)
@@ -52,12 +52,12 @@ vs_4tap_func (double x)
 #if 0
   if (x == 0)
     return 1;
-  return sin (M_PI * x) / (M_PI * x) * (1 - 0.25 * x * x);
+  return sin (G_PI * x) / (G_PI * x) * (1 - 0.25 * x * x);
 #endif
 #if 1
   if (x == 0)
     return 1;
-  return sin (M_PI * x) / (M_PI * x);
+  return sin (G_PI * x) / (G_PI * x);
 #endif
 }
 
index 160e137..ca6cfd5 100644 (file)
@@ -394,8 +394,8 @@ vs_fill_borders_AYUV64 (const VSImage * dest, const uint8_t * val)
   uint8_t *data;
   uint64_t v;
 
-  v = (val[0] << 8) | (val[1] << 24) | (((guint64) val[2]) << 40) | (((guint64)
-          val[3]) << 56);
+  v = (((guint32) val[0]) << 8) | (((guint32) val[1]) << 24) |
+      (((guint64) val[2]) << 40) | (((guint64) val[3]) << 56);
 
   data = dest->real_pixels;
   for (i = 0; i < top; i++) {
index 3a23dd4..2312acc 100644 (file)
@@ -28,6 +28,7 @@
 #ifndef __VS_IMAGE_H__
 #define __VS_IMAGE_H__
 
+#include <glib.h>
 #include <_stdint.h>
 
 typedef struct _VSImage VSImage;
@@ -48,6 +49,9 @@ void vs_image_scale_nearest_RGBA (const VSImage *dest, const VSImage *src,
     uint8_t *tmpbuf);
 void vs_image_scale_linear_RGBA (const VSImage *dest, const VSImage *src,
     uint8_t *tmpbuf);
+void vs_image_scale_lanczos_AYUV (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
+    double a, double sharpen);
 
 void vs_image_scale_nearest_RGB (const VSImage *dest, const VSImage *src,
     uint8_t *tmpbuf);
@@ -68,6 +72,9 @@ void vs_image_scale_nearest_Y (const VSImage *dest, const VSImage *src,
     uint8_t *tmpbuf);
 void vs_image_scale_linear_Y (const VSImage *dest, const VSImage *src,
     uint8_t *tmpbuf);
+void vs_image_scale_lanczos_Y (const VSImage *dest, const VSImage *src,
+    uint8_t *tmpbuf, double sharpness, gboolean dither, int submethod,
+    double a, double sharpen);
 
 void vs_image_scale_nearest_RGB565 (const VSImage *dest, const VSImage *src,
     uint8_t *tmpbuf);
diff --git a/gst/videoscale/vs_lanczos.c b/gst/videoscale/vs_lanczos.c
new file mode 100644 (file)
index 0000000..1c87ba3
--- /dev/null
@@ -0,0 +1,1558 @@
+/*
+ * Image Scaling Functions
+ * Copyright (c) 2011 David A. Schleef <ds@schleef.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ *
+ * Modified Lanczos scaling algorithm
+ * ==================================
+ *
+ * This algorithm was developed by the author.  The primary goals of
+ * the algorithm are high-quality video downscaling for medium scale
+ * factors (in the range of 1.3x to 5.0x) using methods that can be
+ * converted to SIMD code.  Concerns with existing algorithms were
+ * mainly related to either over-soft filtering (Lanczos) or aliasing
+ * (bilinear or any other method with inadequate sampling).
+ *
+ * The problems with bilinear scaling are apparent when downscaling
+ * more than a factor of 2.  For example, when downscaling by a factor
+ * of 3, only two-thirds of the input pixels contribute to the output
+ * pixels.  This is only considering scaling in one direction; after
+ * scaling both vertically and horizontally in a 2-D image, fewer than
+ * half of the input pixels contribute to the output, so it should not
+ * be surprising that the output is suboptimal.
+ *
+ * The problems with Lanczos scaling are more subtle.  From a theoretical
+ * perspective, Lanczos is an optimal algorithm for resampling equally-
+ * spaced values.  This theoretical perspective is based on analysis
+ * done in frequency space, thus, Lanczos works very well for audio
+ * resampling, since the ear hears primarily in frequency space.  The
+ * human visual system is sensitive primarily in the spatial domain,
+ * therefore any resampling algorithm should take this into account.
+ * This difference is immediately clear in the size of resampling
+ * window or envelope that is chosen for resampling: for audio, an
+ * envelope of a=64 is typical, in image scaling, the envelope is
+ * usually a=2 or a=3.
+ *
+ * One result of the HVS being sensitive in the spatial domain (and
+ * also probably due to oversampling capabilities of the retina and
+ * visual cortex) is that it is less sensitive to the exact magnitude
+ * of high-frequency visual signals than to the appropriate amount of
+ * energy in the nearby frequency band.  A Lanczos kernel with a=2
+ * or a=3 strongly decreases the amount of energy in the high frequency
+ * bands.  The energy in this area can be increased by increasing a,
+ * which brings in energy from different areas of the image (bad for
+ * reasons mentioned above), or by oversampling the input data.  We
+ * have chosen two methods for doing the latter.  Firstly, there is
+ * a sharpness parameter, which increases the cutoff frequency of the
+ * filter, aliasing higher frequency noise into the passband.  And
+ * secondly, there is the sharpen parameter, which increases the
+ * contribution of high-frequency (but in-band) components.
+ *
+ * An alternate explanation of the usefulness of a sharpening filter
+ * is that many natural images have a roughly 1/f spectrum.  In order
+ * for a downsampled image to look more "natural" when high frequencies
+ * are removed, the frequencies in the pass band near the cutoff
+ * frequency are amplified, causing the spectrum to be more roughly
+ * 1/f.  I said "roughly", not "literally".
+ *
+ * This alternate explanation is useful for understanding the author's
+ * secondary motivation for developing this algorithm, namely, as a
+ * method of video compression.  Several recent techniques (such as
+ * HTTP Live Streaming and SVC) use image scaling as a method to get
+ * increased compression out of nominally non-scalable codecs such as
+ * H.264.  For optimal quality, it is thusly important to consider
+ * the scaler and encoder as a combined unit.  Tuning of the sharpness
+ * and sharpen parameters was performed using the Toro encoder tuner,
+ * where scaled and encoded video was compared to unscaled and encoded
+ * video.  This tuning suggested values that were very close to the
+ * values chosen by manual inspection of scaled images and video.
+ *
+ * The optimal values of sharpen and sharpness were slightly different
+ * depending whether the comparison was still images or video.  Video
+ * comparisons were more sensitive to aliasing, since the aliasing
+ * artifacts tended to move or "crawl" around the video.  The default
+ * values are for video; image scaling may prefer higher values.
+ *
+ * A number of related techniques were rejected for various reasons.
+ * An early technique of selecting the sharpness factor locally based
+ * on edge detection (in order to use a higher sharpness values without
+ * the corresponding aliasing on edges) worked very well for still
+ * images, but caused too much "crawling" on textures in video.  Also,
+ * this method is slow, as it does not parallelize well.
+ *
+ * Non-separable techniques were rejected because the fastest would
+ * have been at least 4x slower.
+ *
+ * It is infrequently appreciated that image scaling should ideally be
+ * done in linear light space.  Converting to linear light space has
+ * a similar effect to a sharpening filter.  This approach was not
+ * taken because the added benefit is minor compared to the additional
+ * computational cost.  Morever, the benefit is decreased by increasing
+ * the strength of the sharpening filter.
+ *
+ */
+#include <string.h>
+
+#include "vs_scanline.h"
+#include "vs_image.h"
+
+#include "gstvideoscaleorc.h"
+#include <gst/gst.h>
+#include <math.h>
+
+#define NEED_CLAMP(x,a,b) ((x) < (a) || (x) > (b))
+
+#define ROUND_UP_2(x)  (((x)+1)&~1)
+#define ROUND_UP_4(x)  (((x)+3)&~3)
+#define ROUND_UP_8(x)  (((x)+7)&~7)
+
+#define SRC_LINE(i) (scale->src->pixels + scale->src->stride * (i))
+
+#define TMP_LINE_S16(i) ((gint16 *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_S32(i) ((gint32 *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_FLOAT(i) ((float *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_DOUBLE(i) ((double *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_S16_AYUV(i) ((gint16 *)scale->tmpdata + (i)*4*(scale->dest->width))
+#define TMP_LINE_S32_AYUV(i) ((gint32 *)scale->tmpdata + (i)*4*(scale->dest->width))
+#define TMP_LINE_FLOAT_AYUV(i) ((float *)scale->tmpdata + (i)*4*(scale->dest->width))
+#define TMP_LINE_DOUBLE_AYUV(i) ((double *)scale->tmpdata + (i)*4*(scale->dest->width))
+
+#define PTR_OFFSET(a,b) ((void *)((char *)(a) + (b)))
+
+typedef void (*HorizResampleFunc) (void *dest, const gint32 * offsets,
+    const void *taps, const void *src, int n_taps, int shift, int n);
+
+typedef struct _Scale1D Scale1D;
+struct _Scale1D
+{
+  int n;
+  double offset;
+  double scale;
+
+  double fx;
+  double ex;
+  int dx;
+
+  int n_taps;
+  gint32 *offsets;
+  void *taps;
+};
+
+typedef struct _Scale Scale;
+struct _Scale
+{
+  const VSImage *dest;
+  const VSImage *src;
+
+  double sharpness;
+  gboolean dither;
+
+  void *tmpdata;
+
+  HorizResampleFunc horiz_resample_func;
+
+  Scale1D x_scale1d;
+  Scale1D y_scale1d;
+};
+
+static void
+vs_image_scale_lanczos_Y_int16 (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen);
+static void vs_image_scale_lanczos_Y_int32 (const VSImage * dest,
+    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+    double a, double sharpen);
+static void vs_image_scale_lanczos_Y_float (const VSImage * dest,
+    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+    double a, double sharpen);
+static void vs_image_scale_lanczos_Y_double (const VSImage * dest,
+    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+    double a, double sharpen);
+static void
+vs_image_scale_lanczos_AYUV_int16 (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen);
+static void vs_image_scale_lanczos_AYUV_int32 (const VSImage * dest,
+    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+    double a, double sharpen);
+static void vs_image_scale_lanczos_AYUV_float (const VSImage * dest,
+    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+    double a, double sharpen);
+static void vs_image_scale_lanczos_AYUV_double (const VSImage * dest,
+    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+    double a, double sharpen);
+
+static double
+sinc (double x)
+{
+  if (x == 0)
+    return 1;
+  return sin (G_PI * x) / (G_PI * x);
+}
+
+static double
+envelope (double x)
+{
+  if (x <= -1 || x >= 1)
+    return 0;
+  return sinc (x);
+}
+
+static int
+scale1d_get_n_taps (int src_size, int dest_size, double a, double sharpness)
+{
+  double scale;
+  double fx;
+  int dx;
+
+  scale = src_size / (double) dest_size;
+  if (scale > 1.0) {
+    fx = (1.0 / scale) * sharpness;
+  } else {
+    fx = (1.0) * sharpness;
+  }
+  dx = ceil (a / fx);
+
+  return 2 * dx;
+}
+
+static void
+scale1d_cleanup (Scale1D * scale)
+{
+  g_free (scale->taps);
+  g_free (scale->offsets);
+}
+
+/*
+ * Calculates a set of taps for each destination element in double
+ * format.  Each set of taps sums to 1.0.
+ *
+ */
+static void
+scale1d_calculate_taps (Scale1D * scale, int src_size, int dest_size,
+    int n_taps, double a, double sharpness, double sharpen)
+{
+  int j;
+  double *tap_array;
+  gint32 *offsets;
+  double scale_offset;
+  double scale_increment;
+  int dx;
+  double fx;
+  double ex;
+
+  scale->scale = src_size / (double) dest_size;
+  scale->offset = scale->scale / 2 - 0.5;
+
+  if (scale->scale > 1.0) {
+    scale->fx = (1.0 / scale->scale) * sharpness;
+  } else {
+    scale->fx = (1.0) * sharpness;
+  }
+  scale->ex = scale->fx / a;
+  scale->dx = ceil (a / scale->fx);
+
+  g_assert (n_taps >= 2 * scale->dx);
+  scale->n_taps = n_taps;
+
+  scale->taps = g_malloc (sizeof (double) * scale->n_taps * dest_size);
+  scale->offsets = g_malloc (sizeof (gint32) * dest_size);
+  tap_array = scale->taps;
+  offsets = scale->offsets;
+
+  scale_offset = scale->offset;
+  scale_increment = scale->scale;
+  dx = scale->dx;
+  fx = scale->fx;
+  ex = scale->ex;
+
+  for (j = 0; j < dest_size; j++) {
+    double x;
+    int xi;
+    int l;
+    double weight;
+    double *taps;
+
+    x = scale_offset + scale_increment * j;
+    x = CLAMP (x, 0, src_size);
+    xi = ceil (x) - dx;
+
+    offsets[j] = xi;
+    weight = 0;
+    taps = tap_array + j * n_taps;
+
+    for (l = 0; l < n_taps; l++) {
+      int xl = xi + l;
+      taps[l] = sinc ((x - xl) * fx) * envelope ((x - xl) * ex);
+      taps[l] -= sharpen * envelope ((x - xl) * ex);
+      weight += taps[l];
+    }
+    g_assert (envelope ((x - (xi - 1)) * ex) == 0);
+    g_assert (envelope ((x - (xi + n_taps)) * ex) == 0);
+    for (l = 0; l < n_taps; l++) {
+      taps[l] /= weight;
+    }
+
+    if (xi < 0) {
+      int shift = -xi;
+
+      for (l = 0; l < shift; l++) {
+        taps[shift] += taps[l];
+      }
+      for (l = 0; l < n_taps - shift; l++) {
+        taps[l] = taps[shift + l];
+      }
+      for (; l < n_taps; l++) {
+        taps[l] = 0;
+      }
+      offsets[j] += shift;
+    }
+
+    if (xi > src_size - n_taps) {
+      int shift = xi - (src_size - n_taps);
+
+      for (l = 0; l < shift; l++) {
+        taps[n_taps - shift - 1] += taps[n_taps - shift + l];
+      }
+      for (l = 0; l < n_taps - shift; l++) {
+        taps[n_taps - 1 - l] = taps[n_taps - 1 - shift - l];
+      }
+      for (l = 0; l < shift; l++) {
+        taps[l] = 0;
+      }
+      offsets[j] -= shift;
+    }
+  }
+}
+
+/*
+ * Calculates a set of taps for each destination element in float
+ * format.  Each set of taps sums to 1.0.
+ */
+static void
+scale1d_calculate_taps_float (Scale1D * scale, int src_size, int dest_size,
+    int n_taps, double a, double sharpness, double sharpen)
+{
+  double *taps_d;
+  float *taps_f;
+  int j;
+
+  scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
+      sharpen);
+
+  taps_d = scale->taps;
+  taps_f = g_malloc (sizeof (float) * scale->n_taps * dest_size);
+
+  for (j = 0; j < dest_size * n_taps; j++) {
+    taps_f[j] = taps_d[j];
+  }
+
+  g_free (taps_d);
+  scale->taps = taps_f;
+}
+
+/*
+ * Calculates a set of taps for each destination element in gint32
+ * format.  Each set of taps sums to (very nearly) (1<<shift).  A
+ * typical value for shift is 10 to 15, so that applying the taps to
+ * uint8 values and summing will fit in a (signed) int32.
+ */
+static void
+scale1d_calculate_taps_int32 (Scale1D * scale, int src_size, int dest_size,
+    int n_taps, double a, double sharpness, double sharpen, int shift)
+{
+  double *taps_d;
+  gint32 *taps_i;
+  int i;
+  int j;
+  double multiplier;
+
+  scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
+      sharpen);
+
+  taps_d = scale->taps;
+  taps_i = g_malloc (sizeof (gint32) * scale->n_taps * dest_size);
+
+  multiplier = (1 << shift);
+
+  for (j = 0; j < dest_size; j++) {
+    for (i = 0; i < n_taps; i++) {
+      taps_i[j * n_taps + i] =
+          floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+    }
+  }
+
+  g_free (taps_d);
+  scale->taps = taps_i;
+}
+
+/*
+ * Calculates a set of taps for each destination element in gint16
+ * format.  Each set of taps sums to (1<<shift).  A typical value
+ * for shift is 7, so that applying the taps to uint8 values and
+ * summing will fit in a (signed) int16.
+ */
+static void
+scale1d_calculate_taps_int16 (Scale1D * scale, int src_size, int dest_size,
+    int n_taps, double a, double sharpness, double sharpen, int shift)
+{
+  double *taps_d;
+  gint16 *taps_i;
+  int i;
+  int j;
+  double multiplier;
+
+  scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
+      sharpen);
+
+  taps_d = scale->taps;
+  taps_i = g_malloc (sizeof (gint16) * scale->n_taps * dest_size);
+
+  multiplier = (1 << shift);
+
+  /* Various methods for converting floating point taps to integer.
+   * The dB values are the SSIM value between scaling an image via
+   * the floating point pathway vs. the integer pathway using the
+   * given code to generate the taps.  Only one image was tested,
+   * scaling from 1920x1080 to 640x360.  Several variations of the
+   * methods were also tested, with nothing appearing useful.  */
+#if 0
+  /* Standard round to integer.  This causes bad DC errors. */
+  /* 44.588 dB */
+  for (j = 0; j < dest_size; j++) {
+    for (i = 0; i < n_taps; i++) {
+      taps_i[j * n_taps + i] =
+          floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+    }
+  }
+#endif
+#if 0
+  /* Dithering via error propogation.  Works pretty well, but
+   * really we want to propogate errors across rows, which would
+   * mean having several sets of tap arrays.  Possible, but more work,
+   * and it may not even be better. */
+  /* 57.0961 dB */
+  {
+    double err = 0;
+    for (j = 0; j < dest_size; j++) {
+      for (i = 0; i < n_taps; i++) {
+        err += taps_d[j * n_taps + i] * multiplier;
+        taps_i[j * n_taps + i] = floor (err);
+        err -= floor (err);
+      }
+    }
+  }
+#endif
+#if 1
+  /* Round to integer, but with an adjustable bias that we use to
+   * eliminate the DC error.  This search method is a bit crude, and
+   * could perhaps be improved somewhat. */
+  /* 60.4851 dB */
+  for (j = 0; j < dest_size; j++) {
+    int k;
+    for (k = 0; k < 100; k++) {
+      int sum = 0;
+      double offset;
+
+      offset = k * 0.01;
+      for (i = 0; i < n_taps; i++) {
+        taps_i[j * n_taps + i] =
+            floor (offset + taps_d[j * n_taps + i] * multiplier);
+        sum += taps_i[j * n_taps + i];
+      }
+
+      if (sum >= (1 << shift))
+        break;
+    }
+  }
+#endif
+#if 0
+  /* Round to integer, but adjust the multiplier.  The search method is
+   * wrong a lot, but was sufficient enough to calculate dB error. */
+  /* 58.6517 dB */
+  for (j = 0; j < dest_size; j++) {
+    int k;
+    int sum = 0;
+    for (k = 0; k < 200; k++) {
+      sum = 0;
+
+      multiplier = (1 << shift) - 1.0 + k * 0.01;
+      for (i = 0; i < n_taps; i++) {
+        taps_i[j * n_taps + i] =
+            floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+        sum += taps_i[j * n_taps + i];
+      }
+
+      if (sum >= (1 << shift))
+        break;
+    }
+    if (sum != (1 << shift)) {
+      GST_ERROR ("%g %d", multiplier, sum);
+    }
+  }
+#endif
+#if 0
+  /* Round to integer, but subtract the error from the largest tap */
+  /* 58.3677 dB */
+  for (j = 0; j < dest_size; j++) {
+    int err = -multiplier;
+    for (i = 0; i < n_taps; i++) {
+      taps_i[j * n_taps + i] =
+          floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+      err += taps_i[j * n_taps + i];
+    }
+    if (taps_i[j * n_taps + (n_taps / 2 - 1)] >
+        taps_i[j * n_taps + (n_taps / 2)]) {
+      taps_i[j * n_taps + (n_taps / 2 - 1)] -= err;
+    } else {
+      taps_i[j * n_taps + (n_taps / 2)] -= err;
+    }
+  }
+#endif
+
+  g_free (taps_d);
+  scale->taps = taps_i;
+}
+
+
+void
+vs_image_scale_lanczos_Y (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
+    double a, double sharpen)
+{
+  switch (submethod) {
+    case 0:
+    default:
+      vs_image_scale_lanczos_Y_int16 (dest, src, tmpbuf, sharpness, dither, a,
+          sharpen);
+      break;
+    case 1:
+      vs_image_scale_lanczos_Y_int32 (dest, src, tmpbuf, sharpness, dither, a,
+          sharpen);
+      break;
+    case 2:
+      vs_image_scale_lanczos_Y_float (dest, src, tmpbuf, sharpness, dither, a,
+          sharpen);
+      break;
+    case 3:
+      vs_image_scale_lanczos_Y_double (dest, src, tmpbuf, sharpness, dither, a,
+          sharpen);
+      break;
+  }
+}
+
+void
+vs_image_scale_lanczos_AYUV (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
+    double a, double sharpen)
+{
+  switch (submethod) {
+    case 0:
+    default:
+      vs_image_scale_lanczos_AYUV_int16 (dest, src, tmpbuf, sharpness, dither,
+          a, sharpen);
+      break;
+    case 1:
+      vs_image_scale_lanczos_AYUV_int32 (dest, src, tmpbuf, sharpness, dither,
+          a, sharpen);
+      break;
+    case 2:
+      vs_image_scale_lanczos_AYUV_float (dest, src, tmpbuf, sharpness, dither,
+          a, sharpen);
+      break;
+    case 3:
+      vs_image_scale_lanczos_AYUV_double (dest, src, tmpbuf, sharpness, dither,
+          a, sharpen);
+      break;
+  }
+}
+
+
+
+#define RESAMPLE_HORIZ_FLOAT(function, dest_type, tap_type, src_type, _n_taps) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+  int i; \
+  int k; \
+  dest_type sum; \
+  const src_type *srcline; \
+  const tap_type *tapsline; \
+  for (i = 0; i < n; i++) { \
+    srcline = src + offsets[i]; \
+    tapsline = taps + i * _n_taps; \
+    sum = 0; \
+    for (k = 0; k < _n_taps; k++) { \
+      sum += srcline[k] * tapsline[k]; \
+    } \
+    dest[i] = sum; \
+  } \
+}
+
+#define RESAMPLE_HORIZ(function, dest_type, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+  int i; \
+  int k; \
+  dest_type sum; \
+  const src_type *srcline; \
+  const tap_type *tapsline; \
+  int offset; \
+  if (_shift > 0) offset = (1<<_shift)>>1; \
+  else offset = 0; \
+  for (i = 0; i < n; i++) { \
+    srcline = src + offsets[i]; \
+    tapsline = taps + i * _n_taps; \
+    sum = 0; \
+    for (k = 0; k < _n_taps; k++) { \
+      sum += srcline[k] * tapsline[k]; \
+    } \
+    dest[i] = (sum + offset) >> _shift; \
+  } \
+}
+
+#define RESAMPLE_HORIZ_AYUV_FLOAT(function, dest_type, tap_type, src_type, _n_taps) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+  int i; \
+  int k; \
+  dest_type sum1; \
+  dest_type sum2; \
+  dest_type sum3; \
+  dest_type sum4; \
+  const src_type *srcline; \
+  const tap_type *tapsline; \
+  for (i = 0; i < n; i++) { \
+    srcline = src + 4*offsets[i]; \
+    tapsline = taps + i * _n_taps; \
+    sum1 = 0; \
+    sum2 = 0; \
+    sum3 = 0; \
+    sum4 = 0; \
+    for (k = 0; k < _n_taps; k++) { \
+      sum1 += srcline[k*4+0] * tapsline[k]; \
+      sum2 += srcline[k*4+1] * tapsline[k]; \
+      sum3 += srcline[k*4+2] * tapsline[k]; \
+      sum4 += srcline[k*4+3] * tapsline[k]; \
+    } \
+    dest[i*4+0] = sum1; \
+    dest[i*4+1] = sum2; \
+    dest[i*4+2] = sum3; \
+    dest[i*4+3] = sum4; \
+  } \
+}
+
+#define RESAMPLE_HORIZ_AYUV(function, dest_type, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+  int i; \
+  int k; \
+  dest_type sum1; \
+  dest_type sum2; \
+  dest_type sum3; \
+  dest_type sum4; \
+  const src_type *srcline; \
+  const tap_type *tapsline; \
+  int offset; \
+  if (_shift > 0) offset = (1<<_shift)>>1; \
+  else offset = 0; \
+  for (i = 0; i < n; i++) { \
+    srcline = src + 4*offsets[i]; \
+    tapsline = taps + i * _n_taps; \
+    sum1 = 0; \
+    sum2 = 0; \
+    sum3 = 0; \
+    sum4 = 0; \
+    for (k = 0; k < _n_taps; k++) { \
+      sum1 += srcline[k*4+0] * tapsline[k]; \
+      sum2 += srcline[k*4+1] * tapsline[k]; \
+      sum3 += srcline[k*4+2] * tapsline[k]; \
+      sum4 += srcline[k*4+3] * tapsline[k]; \
+    } \
+    dest[i*4+0] = (sum1 + offset) >> _shift; \
+    dest[i*4+1] = (sum2 + offset) >> _shift; \
+    dest[i*4+2] = (sum3 + offset) >> _shift; \
+    dest[i*4+3] = (sum4 + offset) >> _shift; \
+  } \
+}
+
+/* *INDENT-OFF* */
+RESAMPLE_HORIZ_FLOAT (resample_horiz_double_u8_generic, double, double,
+    guint8, n_taps)
+RESAMPLE_HORIZ_FLOAT (resample_horiz_float_u8_generic, float, float,
+    guint8, n_taps)
+RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_double_ayuv_generic, double, double,
+    guint8, n_taps)
+RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_float_ayuv_generic, float, float,
+    guint8, n_taps)
+
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_generic, gint32, gint32,
+    guint8, n_taps, shift)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_generic, gint16, gint16,
+    guint8, n_taps, shift)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_generic, gint32, gint32,
+    guint8, n_taps, shift)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_generic, gint16, gint16,
+    guint8, n_taps, shift)
+
+/* Candidates for orcification */
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps16_shift0, gint32, gint32,
+    guint8, 16, 0)
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps12_shift0, gint32, gint32,
+    guint8, 12, 0)
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps8_shift0, gint32, gint32,
+    guint8, 8, 0)
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps4_shift0, gint32, gint32,
+    guint8, 4, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps16_shift0, gint16, gint16,
+    guint8, 16, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps12_shift0, gint16, gint16,
+    guint8, 12, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps8_shift0, gint16, gint16,
+    guint8, 8, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps4_shift0, gint16, gint16,
+    guint8, 4, 0)
+
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps16_shift0, gint32, gint32,
+    guint8, 16, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps12_shift0, gint32, gint32,
+    guint8, 12, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps8_shift0, gint32, gint32,
+    guint8, 8, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps4_shift0, gint32, gint32,
+    guint8, 4, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps16_shift0, gint16, gint16,
+    guint8, 16, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps12_shift0, gint16, gint16,
+    guint8, 12, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps8_shift0, gint16, gint16,
+    guint8, 8, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps4_shift0, gint16, gint16,
+    guint8, 4, 0)
+/* *INDENT-ON* */
+
+#define RESAMPLE_VERT(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+    const tap_type *taps, const src_type *src, int stride, int n_taps, \
+    int shift, int n) \
+{ \
+  int i; \
+  int l; \
+  gint32 sum_y; \
+  gint32 offset = (1<<_shift) >> 1; \
+  for (i = 0; i < n; i++) { \
+    sum_y = 0; \
+    for (l = 0; l < n_taps; l++) { \
+      const src_type *line = PTR_OFFSET(src, stride * l); \
+      sum_y += line[i] * taps[l]; \
+    } \
+    dest[i] = CLAMP ((sum_y + offset) >> _shift, 0, 255); \
+  } \
+}
+
+#define RESAMPLE_VERT_DITHER(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+    const tap_type *taps, const src_type *src, int stride, int n_taps, \
+    int shift, int n) \
+{ \
+  int i; \
+  int l; \
+  gint32 sum_y; \
+  gint32 err_y = 0; \
+  gint32 mask = (1<<_shift) - 1; \
+  for (i = 0; i < n; i++) { \
+    sum_y = 0; \
+    for (l = 0; l < n_taps; l++) { \
+      const src_type *line = PTR_OFFSET(src, stride * l); \
+      sum_y += line[i] * taps[l]; \
+    } \
+    err_y += sum_y; \
+    dest[i] = CLAMP (err_y >> _shift, 0, 255); \
+    err_y &= mask; \
+  } \
+}
+
+/* *INDENT-OFF* */
+RESAMPLE_VERT (resample_vert_int32_generic, gint32, gint32, n_taps, shift)
+RESAMPLE_VERT_DITHER (resample_vert_dither_int32_generic, gint32, gint32,
+    n_taps, shift)
+RESAMPLE_VERT (resample_vert_int16_generic, gint16, gint16, n_taps, shift);
+RESAMPLE_VERT_DITHER (resample_vert_dither_int16_generic, gint16, gint16,
+    n_taps, shift)
+/* *INDENT-ON* */
+
+#define RESAMPLE_VERT_FLOAT(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+    const tap_type *taps, const src_type *src, int stride, int n_taps, \
+    int shift, int n) \
+{ \
+  int i; \
+  int l; \
+  src_type sum_y; \
+  for (i = 0; i < n; i++) { \
+    sum_y = 0; \
+    for (l = 0; l < n_taps; l++) { \
+      const src_type *line = PTR_OFFSET(src, stride * l); \
+      sum_y += line[i] * taps[l]; \
+    } \
+    dest[i] = CLAMP (floor(0.5 + sum_y), 0, 255); \
+  } \
+}
+
+#define RESAMPLE_VERT_FLOAT_DITHER(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+    const tap_type *taps, const src_type *src, int stride, int n_taps, \
+    int shift, int n) \
+{ \
+  int i; \
+  int l; \
+  src_type sum_y; \
+  src_type err_y = 0; \
+  for (i = 0; i < n; i++) { \
+    sum_y = 0; \
+    for (l = 0; l < n_taps; l++) { \
+      const src_type *line = PTR_OFFSET(src, stride * l); \
+      sum_y += line[i] * taps[l]; \
+    } \
+    err_y += sum_y; \
+    dest[i] = CLAMP (floor (err_y), 0, 255); \
+    err_y -= floor (err_y); \
+  } \
+}
+
+/* *INDENT-OFF* */
+RESAMPLE_VERT_FLOAT (resample_vert_double_generic, double, double, n_taps,
+    shift)
+RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_double_generic, double, double,
+    n_taps, shift)
+
+RESAMPLE_VERT_FLOAT (resample_vert_float_generic, float, float, n_taps, shift)
+RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_float_generic, float, float,
+    n_taps, shift)
+/* *INDENT-ON* */
+
+#define S16_SHIFT1 7
+#define S16_SHIFT2 7
+#define S16_MIDSHIFT 0
+#define S16_POSTSHIFT (S16_SHIFT1+S16_SHIFT2-S16_MIDSHIFT)
+
+static void
+vs_scale_lanczos_Y_int16 (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    gint16 *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_S16 (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, S16_MIDSHIFT, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (gint16 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_int16_generic (destline,
+          taps, TMP_LINE_S16 (scale->y_scale1d.offsets[j]),
+          sizeof (gint16) * scale->dest->width, scale->y_scale1d.n_taps,
+          S16_POSTSHIFT, scale->dest->width);
+    } else {
+      resample_vert_int16_generic (destline,
+          taps, TMP_LINE_S16 (scale->y_scale1d.offsets[j]),
+          sizeof (gint16) * scale->dest->width, scale->y_scale1d.n_taps,
+          S16_POSTSHIFT, scale->dest->width);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_Y_int16 (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  n_taps = ROUND_UP_4 (n_taps);
+  scale1d_calculate_taps_int16 (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen, S16_SHIFT1);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps_int16 (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen, S16_SHIFT2);
+
+  scale->dither = dither;
+
+  switch (scale->x_scale1d.n_taps) {
+    case 4:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps4_shift0;
+      break;
+    case 8:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps8_shift0;
+      break;
+    case 12:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps12_shift0;
+      break;
+    case 16:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps16_shift0;
+      break;
+    default:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_u8_generic;
+      break;
+  }
+
+  scale->tmpdata =
+      g_malloc (sizeof (gint16) * scale->dest->width * scale->src->height);
+
+  vs_scale_lanczos_Y_int16 (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+
+#define S32_SHIFT1 11
+#define S32_SHIFT2 11
+#define S32_MIDSHIFT 0
+#define S32_POSTSHIFT (S32_SHIFT1+S32_SHIFT2-S32_MIDSHIFT)
+
+static void
+vs_scale_lanczos_Y_int32 (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    gint32 *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_S32 (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, S32_MIDSHIFT, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (gint32 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_int32_generic (destline,
+          taps, TMP_LINE_S32 (scale->y_scale1d.offsets[j]),
+          sizeof (gint32) * scale->dest->width,
+          scale->y_scale1d.n_taps, S32_POSTSHIFT, scale->dest->width);
+    } else {
+      resample_vert_int32_generic (destline,
+          taps, TMP_LINE_S32 (scale->y_scale1d.offsets[j]),
+          sizeof (gint32) * scale->dest->width,
+          scale->y_scale1d.n_taps, S32_POSTSHIFT, scale->dest->width);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_Y_int32 (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  n_taps = ROUND_UP_4 (n_taps);
+  scale1d_calculate_taps_int32 (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen, S32_SHIFT1);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps_int32 (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen, S32_SHIFT2);
+
+  scale->dither = dither;
+
+  switch (scale->x_scale1d.n_taps) {
+    case 4:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps4_shift0;
+      break;
+    case 8:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps8_shift0;
+      break;
+    case 12:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps12_shift0;
+      break;
+    case 16:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps16_shift0;
+      break;
+    default:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_u8_generic;
+      break;
+  }
+
+  scale->tmpdata =
+      g_malloc (sizeof (int32_t) * scale->dest->width * scale->src->height);
+
+  vs_scale_lanczos_Y_int32 (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_Y_double (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    double *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_DOUBLE (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, 0, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_double_generic (destline,
+          taps, TMP_LINE_DOUBLE (scale->y_scale1d.offsets[j]),
+          sizeof (double) * scale->dest->width,
+          scale->y_scale1d.n_taps, 0, scale->dest->width);
+    } else {
+      resample_vert_double_generic (destline,
+          taps, TMP_LINE_DOUBLE (scale->y_scale1d.offsets[j]),
+          sizeof (double) * scale->dest->width,
+          scale->y_scale1d.n_taps, 0, scale->dest->width);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_Y_double (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  scale1d_calculate_taps (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+  scale->dither = dither;
+
+  scale->horiz_resample_func =
+      (HorizResampleFunc) resample_horiz_double_u8_generic;
+
+  scale->tmpdata =
+      g_malloc (sizeof (double) * scale->dest->width * scale->src->height);
+
+  vs_scale_lanczos_Y_double (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_Y_float (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    float *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_FLOAT (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, 0, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (float *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_float_generic (destline,
+          taps, TMP_LINE_FLOAT (scale->y_scale1d.offsets[j]),
+          sizeof (float) * scale->dest->width,
+          scale->y_scale1d.n_taps, 0, scale->dest->width);
+    } else {
+      resample_vert_float_generic (destline,
+          taps, TMP_LINE_FLOAT (scale->y_scale1d.offsets[j]),
+          sizeof (float) * scale->dest->width,
+          scale->y_scale1d.n_taps, 0, scale->dest->width);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_Y_float (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  scale1d_calculate_taps_float (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps_float (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+  scale->dither = dither;
+
+  scale->horiz_resample_func =
+      (HorizResampleFunc) resample_horiz_float_u8_generic;
+
+  scale->tmpdata =
+      g_malloc (sizeof (float) * scale->dest->width * scale->src->height);
+
+  vs_scale_lanczos_Y_float (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+
+
+
+
+static void
+vs_scale_lanczos_AYUV_int16 (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    gint16 *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_S16_AYUV (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, S16_MIDSHIFT, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (gint16 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_int16_generic (destline,
+          taps, TMP_LINE_S16_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (gint16) * 4 * scale->dest->width,
+          scale->y_scale1d.n_taps, S16_POSTSHIFT, scale->dest->width * 4);
+    } else {
+      resample_vert_int16_generic (destline,
+          taps, TMP_LINE_S16_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (gint16) * 4 * scale->dest->width,
+          scale->y_scale1d.n_taps, S16_POSTSHIFT, scale->dest->width * 4);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_AYUV_int16 (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  n_taps = ROUND_UP_4 (n_taps);
+  scale1d_calculate_taps_int16 (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen, S16_SHIFT1);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps_int16 (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen, S16_SHIFT2);
+
+  scale->dither = dither;
+
+  switch (scale->x_scale1d.n_taps) {
+    case 4:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps4_shift0;
+      break;
+    case 8:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps8_shift0;
+      break;
+    case 12:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps12_shift0;
+      break;
+    case 16:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps16_shift0;
+      break;
+    default:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_generic;
+      break;
+  }
+
+  scale->tmpdata =
+      g_malloc (sizeof (gint16) * scale->dest->width * scale->src->height * 4);
+
+  vs_scale_lanczos_AYUV_int16 (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+
+static void
+vs_scale_lanczos_AYUV_int32 (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    gint32 *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_S32_AYUV (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, S32_MIDSHIFT, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (gint32 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_int32_generic (destline,
+          taps, TMP_LINE_S32_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (gint32) * 4 * scale->dest->width, scale->y_scale1d.n_taps,
+          S32_POSTSHIFT, scale->dest->width * 4);
+    } else {
+      resample_vert_int32_generic (destline,
+          taps, TMP_LINE_S32_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (gint32) * 4 * scale->dest->width, scale->y_scale1d.n_taps,
+          S32_POSTSHIFT, scale->dest->width * 4);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_AYUV_int32 (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  n_taps = ROUND_UP_4 (n_taps);
+  scale1d_calculate_taps_int32 (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen, S32_SHIFT1);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps_int32 (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen, S32_SHIFT2);
+
+  scale->dither = dither;
+
+  switch (scale->x_scale1d.n_taps) {
+    case 4:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps4_shift0;
+      break;
+    case 8:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps8_shift0;
+      break;
+    case 12:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps12_shift0;
+      break;
+    case 16:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps16_shift0;
+      break;
+    default:
+      scale->horiz_resample_func =
+          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_generic;
+      break;
+  }
+
+  scale->tmpdata =
+      g_malloc (sizeof (int32_t) * scale->dest->width * scale->src->height * 4);
+
+  vs_scale_lanczos_AYUV_int32 (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_AYUV_double (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    double *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_DOUBLE_AYUV (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, 0, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_double_generic (destline,
+          taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (double) * 4 * scale->dest->width,
+          scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
+    } else {
+      resample_vert_double_generic (destline,
+          taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (double) * 4 * scale->dest->width,
+          scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_AYUV_double (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  scale1d_calculate_taps (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+  scale->dither = dither;
+
+  scale->horiz_resample_func =
+      (HorizResampleFunc) resample_horiz_double_ayuv_generic;
+
+  scale->tmpdata =
+      g_malloc (sizeof (double) * scale->dest->width * scale->src->height * 4);
+
+  vs_scale_lanczos_AYUV_double (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_AYUV_float (Scale * scale)
+{
+  int j;
+  int yi;
+  int tmp_yi;
+
+  tmp_yi = 0;
+
+  for (j = 0; j < scale->dest->height; j++) {
+    guint8 *destline;
+    float *taps;
+
+    destline = scale->dest->pixels + scale->dest->stride * j;
+
+    yi = scale->y_scale1d.offsets[j];
+
+    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+      scale->horiz_resample_func (TMP_LINE_FLOAT_AYUV (tmp_yi),
+          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+          scale->x_scale1d.n_taps, 0, scale->dest->width);
+      tmp_yi++;
+    }
+
+    taps = (float *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+    if (scale->dither) {
+      resample_vert_dither_float_generic (destline,
+          taps, TMP_LINE_FLOAT_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (float) * 4 * scale->dest->width, scale->y_scale1d.n_taps, 0,
+          scale->dest->width * 4);
+    } else {
+      resample_vert_float_generic (destline,
+          taps, TMP_LINE_FLOAT_AYUV (scale->y_scale1d.offsets[j]),
+          sizeof (float) * 4 * scale->dest->width, scale->y_scale1d.n_taps, 0,
+          scale->dest->width * 4);
+    }
+  }
+}
+
+void
+vs_image_scale_lanczos_AYUV_float (const VSImage * dest, const VSImage * src,
+    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+    double sharpen)
+{
+  Scale s = { 0 };
+  Scale *scale = &s;
+  int n_taps;
+
+  scale->dest = dest;
+  scale->src = src;
+
+  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+  scale1d_calculate_taps_float (&scale->x_scale1d,
+      src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+  scale1d_calculate_taps_float (&scale->y_scale1d,
+      src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+  scale->dither = dither;
+
+  scale->horiz_resample_func =
+      (HorizResampleFunc) resample_horiz_float_ayuv_generic;
+
+  scale->tmpdata =
+      g_malloc (sizeof (float) * scale->dest->width * scale->src->height * 4);
+
+  vs_scale_lanczos_AYUV_float (scale);
+
+  scale1d_cleanup (&scale->x_scale1d);
+  scale1d_cleanup (&scale->y_scale1d);
+  g_free (scale->tmpdata);
+}
index 814899f..91b6f63 100644 (file)
@@ -19,7 +19,7 @@ noinst_PROGRAMS = generate_sine_table
 
 generate_sine_table_SOURCES = generate_sine_table.c
 generate_sine_table_CFLAGS = $(GST_CFLAGS)
-generate_sine_table_LDADD = $(LIBM)
+generate_sine_table_LDADD = $(LIBM) $(GLIB_LIBS)
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
        androgenizer \
index 20cc71c..583dbeb 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -81,6 +81,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -126,6 +127,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -139,8 +146,8 @@ am__objects_1 = libgstvideotestsrc_la-tmp-orc.lo
 nodist_libgstvideotestsrc_la_OBJECTS = $(am__objects_1)
 libgstvideotestsrc_la_OBJECTS = $(am_libgstvideotestsrc_la_OBJECTS) \
        $(nodist_libgstvideotestsrc_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstvideotestsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -150,7 +157,8 @@ PROGRAMS = $(noinst_PROGRAMS)
 am_generate_sine_table_OBJECTS =  \
        generate_sine_table-generate_sine_table.$(OBJEXT)
 generate_sine_table_OBJECTS = $(am_generate_sine_table_OBJECTS)
-generate_sine_table_DEPENDENCIES = $(am__DEPENDENCIES_1)
+generate_sine_table_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
 generate_sine_table_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(generate_sine_table_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
@@ -165,21 +173,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstvideotestsrc_la_SOURCES) \
        $(nodist_libgstvideotestsrc_la_SOURCES) \
@@ -250,6 +258,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -310,6 +319,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -319,9 +329,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -344,6 +357,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -416,10 +430,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -453,7 +470,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -497,7 +513,7 @@ libgstvideotestsrc_la_LIBTOOLFLAGS = --tag=disable-static
 noinst_HEADERS = gstvideotestsrc.h videotestsrc.h
 generate_sine_table_SOURCES = generate_sine_table.c
 generate_sine_table_CFLAGS = $(GST_CFLAGS)
-generate_sine_table_LDADD = $(LIBM)
+generate_sine_table_LDADD = $(LIBM) $(GLIB_LIBS)
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -524,6 +540,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -564,7 +581,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstvideotestsrc.la: $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_DEPENDENCIES) 
+libgstvideotestsrc.la: $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_DEPENDENCIES) $(EXTRA_libgstvideotestsrc_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvideotestsrc_la_LINK) -rpath $(plugindir) $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_LIBADD) $(LIBS)
 
 clean-noinstPROGRAMS:
@@ -575,7 +592,7 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-generate_sine_table$(EXEEXT): $(generate_sine_table_OBJECTS) $(generate_sine_table_DEPENDENCIES) 
+generate_sine_table$(EXEEXT): $(generate_sine_table_OBJECTS) $(generate_sine_table_DEPENDENCIES) $(EXTRA_generate_sine_table_DEPENDENCIES) 
        @rm -f generate_sine_table$(EXEEXT)
        $(AM_V_CCLD)$(generate_sine_table_LINK) $(generate_sine_table_OBJECTS) $(generate_sine_table_LDADD) $(LIBS)
 
@@ -593,66 +610,58 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideotestsrc_la-gstvideotestsrc.lo: gstvideotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstvideotestsrc_la-gstvideotestsrc.lo -MD -MP -MF $(DEPDIR)/libgstvideotestsrc_la-gstvideotestsrc.Tpo -c -o libgstvideotestsrc_la-gstvideotestsrc.lo `test -f 'gstvideotestsrc.c' || echo '$(srcdir)/'`gstvideotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideotestsrc_la-gstvideotestsrc.Tpo $(DEPDIR)/libgstvideotestsrc_la-gstvideotestsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvideotestsrc.c' object='libgstvideotestsrc_la-gstvideotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvideotestsrc.c' object='libgstvideotestsrc_la-gstvideotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-gstvideotestsrc.lo `test -f 'gstvideotestsrc.c' || echo '$(srcdir)/'`gstvideotestsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-gstvideotestsrc.lo `test -f 'gstvideotestsrc.c' || echo '$(srcdir)/'`gstvideotestsrc.c
 
 libgstvideotestsrc_la-videotestsrc.lo: videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstvideotestsrc_la-videotestsrc.lo -MD -MP -MF $(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Tpo -c -o libgstvideotestsrc_la-videotestsrc.lo `test -f 'videotestsrc.c' || echo '$(srcdir)/'`videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Tpo $(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='videotestsrc.c' object='libgstvideotestsrc_la-videotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='videotestsrc.c' object='libgstvideotestsrc_la-videotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-videotestsrc.lo `test -f 'videotestsrc.c' || echo '$(srcdir)/'`videotestsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-videotestsrc.lo `test -f 'videotestsrc.c' || echo '$(srcdir)/'`videotestsrc.c
 
 libgstvideotestsrc_la-tmp-orc.lo: tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstvideotestsrc_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideotestsrc_la-tmp-orc.Tpo -c -o libgstvideotestsrc_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideotestsrc_la-tmp-orc.Tpo $(DEPDIR)/libgstvideotestsrc_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tmp-orc.c' object='libgstvideotestsrc_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmp-orc.c' object='libgstvideotestsrc_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 generate_sine_table-generate_sine_table.o: generate_sine_table.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -MT generate_sine_table-generate_sine_table.o -MD -MP -MF $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo -c -o generate_sine_table-generate_sine_table.o `test -f 'generate_sine_table.c' || echo '$(srcdir)/'`generate_sine_table.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo $(DEPDIR)/generate_sine_table-generate_sine_table.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.o `test -f 'generate_sine_table.c' || echo '$(srcdir)/'`generate_sine_table.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.o `test -f 'generate_sine_table.c' || echo '$(srcdir)/'`generate_sine_table.c
 
 generate_sine_table-generate_sine_table.obj: generate_sine_table.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -MT generate_sine_table-generate_sine_table.obj -MD -MP -MF $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo -c -o generate_sine_table-generate_sine_table.obj `if test -f 'generate_sine_table.c'; then $(CYGPATH_W) 'generate_sine_table.c'; else $(CYGPATH_W) '$(srcdir)/generate_sine_table.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo $(DEPDIR)/generate_sine_table-generate_sine_table.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.obj `if test -f 'generate_sine_table.c'; then $(CYGPATH_W) 'generate_sine_table.c'; else $(CYGPATH_W) '$(srcdir)/generate_sine_table.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.obj `if test -f 'generate_sine_table.c'; then $(CYGPATH_W) 'generate_sine_table.c'; else $(CYGPATH_W) '$(srcdir)/generate_sine_table.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -764,10 +773,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 432e1a5..11d17af 100644 (file)
@@ -1,14 +1,14 @@
 
 #include <stdio.h>
 #include <math.h>
-
+#include <glib.h>
 
 static int
 get_value (int i)
 {
   int x;
 
-  x = floor (256 * (0.5 + 0.5 * sin (i * 2 * M_PI / 256)));
+  x = floor (256 * (0.5 + 0.5 * sin (i * 2 * G_PI / 256)));
   if (x > 255)
     x = 255;
   return x;
index 227e0a9..2dbe17d 100644 (file)
@@ -21,7 +21,7 @@
 /**
  * SECTION:element-videotestsrc
  *
- * The videotestsrc element is used to produce test video data in a wide variaty
+ * The videotestsrc element is used to produce test video data in a wide variety
  * of formats. The video test data produced can be controlled with the "pattern"
  * property.
  *
@@ -168,14 +168,17 @@ static void
 gst_video_test_src_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+  GstPadTemplate *pad_template;
 
   gst_element_class_set_details_simple (element_class,
       "Video test source", "Source/Video",
       "Creates a test video stream", "David A. Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (element_class,
+  pad_template =
       gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
-          gst_video_test_src_getcaps (NULL)));
+      gst_video_test_src_getcaps (NULL));
+  gst_element_class_add_pad_template (element_class, pad_template);
+  gst_object_unref (pad_template);
 }
 
 static void
index 9973507..d7c3f87 100644 (file)
@@ -547,7 +547,7 @@ gst_video_test_src_get_size (GstVideoTestSrc * v, int w, int h)
 
   fourcc->paint_setup (p, NULL);
 
-  return (unsigned long) p->endptr;
+  return (guintptr) p->endptr;
 }
 
 #define SCALEBITS 10
@@ -740,7 +740,7 @@ gst_video_test_src_smpte (GstVideoTestSrc * v, unsigned char *dest, int w,
   fourcc->paint_setup (p, dest);
 
   y1 = 2 * h / 3;
-  y2 = h * 0.75;
+  y2 = 3 * h / 4;
 
   /* color bars */
   for (j = 0; j < y1; j++) {
@@ -1561,8 +1561,8 @@ gst_video_test_src_ball (GstVideoTestSrc * v, unsigned char *dest, int w, int h)
 
   fourcc->paint_setup (p, dest);
 
-  x = radius + (0.5 + 0.5 * sin (2 * M_PI * t / 200)) * (w - 2 * radius);
-  y = radius + (0.5 + 0.5 * sin (2 * M_PI * sqrt (2) * t / 200)) * (h -
+  x = radius + (0.5 + 0.5 * sin (2 * G_PI * t / 200)) * (w - 2 * radius);
+  y = radius + (0.5 + 0.5 * sin (2 * G_PI * sqrt (2) * t / 200)) * (h -
       2 * radius);
 
   for (i = 0; i < h; i++) {
index 1cd9cf2..4f538e1 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -79,6 +79,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -124,6 +125,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -136,8 +143,8 @@ am__objects_1 = libgstvolume_la-tmp-orc.lo
 nodist_libgstvolume_la_OBJECTS = $(am__objects_1)
 libgstvolume_la_OBJECTS = $(am_libgstvolume_la_OBJECTS) \
        $(nodist_libgstvolume_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstvolume_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
@@ -153,21 +160,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstvolume_la_SOURCES) $(nodist_libgstvolume_la_SOURCES)
 DIST_SOURCES = $(libgstvolume_la_SOURCES)
@@ -235,6 +242,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -295,6 +303,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -304,9 +313,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -329,6 +341,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -401,10 +414,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -438,7 +454,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -510,6 +525,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -550,7 +566,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstvolume.la: $(libgstvolume_la_OBJECTS) $(libgstvolume_la_DEPENDENCIES) 
+libgstvolume.la: $(libgstvolume_la_OBJECTS) $(libgstvolume_la_DEPENDENCIES) $(EXTRA_libgstvolume_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvolume_la_LINK) -rpath $(plugindir) $(libgstvolume_la_OBJECTS) $(libgstvolume_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -565,42 +581,37 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvolume_la-gstvolume.lo: gstvolume.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -MT libgstvolume_la-gstvolume.lo -MD -MP -MF $(DEPDIR)/libgstvolume_la-gstvolume.Tpo -c -o libgstvolume_la-gstvolume.lo `test -f 'gstvolume.c' || echo '$(srcdir)/'`gstvolume.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvolume_la-gstvolume.Tpo $(DEPDIR)/libgstvolume_la-gstvolume.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstvolume.c' object='libgstvolume_la-gstvolume.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstvolume.c' object='libgstvolume_la-gstvolume.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-gstvolume.lo `test -f 'gstvolume.c' || echo '$(srcdir)/'`gstvolume.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-gstvolume.lo `test -f 'gstvolume.c' || echo '$(srcdir)/'`gstvolume.c
 
 libgstvolume_la-tmp-orc.lo: tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -MT libgstvolume_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvolume_la-tmp-orc.Tpo -c -o libgstvolume_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvolume_la-tmp-orc.Tpo $(DEPDIR)/libgstvolume_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='tmp-orc.c' object='libgstvolume_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='tmp-orc.c' object='libgstvolume_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -712,10 +723,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index a592707..1f40f62 100644 (file)
 /* the volume factor is a range from 0.0 to (arbitrary) VOLUME_MAX_DOUBLE = 10.0
  * we map 1.0 to VOLUME_UNITY_INT*
  */
-#define VOLUME_UNITY_INT8            32 /* internal int for unity 2^(8-3) */
-#define VOLUME_UNITY_INT8_BIT_SHIFT  5  /* number of bits to shift for unity */
-#define VOLUME_UNITY_INT16           8192       /* internal int for unity 2^(16-3) */
-#define VOLUME_UNITY_INT16_BIT_SHIFT 13 /* number of bits to shift for unity */
-#define VOLUME_UNITY_INT24           2097152    /* internal int for unity 2^(24-3) */
-#define VOLUME_UNITY_INT24_BIT_SHIFT 21 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT8            8  /* internal int for unity 2^(8-5) */
+#define VOLUME_UNITY_INT8_BIT_SHIFT  3  /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT16           2048       /* internal int for unity 2^(16-5) */
+#define VOLUME_UNITY_INT16_BIT_SHIFT 11 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT24           524288     /* internal int for unity 2^(24-5) */
+#define VOLUME_UNITY_INT24_BIT_SHIFT 19 /* number of bits to shift for unity */
 #define VOLUME_UNITY_INT32           134217728  /* internal int for unity 2^(32-5) */
 #define VOLUME_UNITY_INT32_BIT_SHIFT 27
 #define VOLUME_MAX_DOUBLE            10.0
@@ -263,7 +263,7 @@ volume_choose_func (GstVolume * self)
         case 8:
           /* only clamp if the gain is greater than 1.0
            */
-          if (self->current_vol_i16 > VOLUME_UNITY_INT8) {
+          if (self->current_vol_i8 > VOLUME_UNITY_INT8) {
             self->process = volume_process_int8_clamp;
           } else {
             self->process = volume_process_int8;
@@ -702,7 +702,7 @@ volume_process_int16 (GstVolume * self, gpointer bytes, guint n_bytes)
   guint num_samples = n_bytes / sizeof (gint16);
 
   /* hard coded in volume.orc */
-  g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 13);
+  g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 11);
 
   orc_process_int16 (data, self->current_vol_i16, num_samples);
 }
@@ -714,7 +714,7 @@ volume_process_int16_clamp (GstVolume * self, gpointer bytes, guint n_bytes)
   guint num_samples = n_bytes / sizeof (gint16);
 
   /* hard coded in volume.orc */
-  g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 13);
+  g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 11);
 
   orc_process_int16_clamp (data, self->current_vol_i16, num_samples);
 }
@@ -750,7 +750,7 @@ volume_process_int8 (GstVolume * self, gpointer bytes, guint n_bytes)
   guint num_samples = n_bytes / sizeof (gint8);
 
   /* hard coded in volume.orc */
-  g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 5);
+  g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 3);
 
   orc_process_int8 (data, self->current_vol_i8, num_samples);
 }
@@ -762,7 +762,7 @@ volume_process_int8_clamp (GstVolume * self, gpointer bytes, guint n_bytes)
   guint num_samples = n_bytes / sizeof (gint8);
 
   /* hard coded in volume.orc */
-  g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 5);
+  g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 3);
 
   orc_process_int8_clamp (data, self->current_vol_i8, num_samples);
 }
@@ -897,6 +897,7 @@ volume_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
     guint nsamples = size / (width * channels);
     GstClockTime interval = gst_util_uint64_scale_int (1, GST_SECOND, rate);
     GstClockTime ts = GST_BUFFER_TIMESTAMP (outbuf);
+    gboolean use_mutes = FALSE;
 
     ts = gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, ts);
 
@@ -918,6 +919,7 @@ volume_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
 
       gst_object_unref (mute_csource);
       mute_csource = NULL;
+      use_mutes = TRUE;
     } else {
       g_free (self->mutes);
       self->mutes = NULL;
@@ -937,7 +939,7 @@ volume_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
       orc_memset_f64 (self->volumes, self->current_volume, nsamples);
     }
 
-    if (mute_csource) {
+    if (use_mutes) {
       orc_prepare_volumes (self->volumes, self->mutes, nsamples);
     }
 
index 1028649..3159e90 100644 (file)
@@ -544,7 +544,7 @@ orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
     /* 2: mulswl */
     var36.i = var33.i * var34.i;
     /* 3: shrsl */
-    var37.i = var36.i >> 13;
+    var37.i = var36.i >> 11;
     /* 4: convlw */
     var35.i = var37.i;
     /* 5: storew */
@@ -577,7 +577,7 @@ _backup_orc_process_int16 (OrcExecutor * ORC_RESTRICT ex)
     /* 2: mulswl */
     var36.i = var33.i * var34.i;
     /* 3: shrsl */
-    var37.i = var36.i >> 13;
+    var37.i = var36.i >> 11;
     /* 4: convlw */
     var35.i = var37.i;
     /* 5: storew */
@@ -630,7 +630,7 @@ orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
     /* 2: mulswl */
     var36.i = var33.i * var34.i;
     /* 3: shrsl */
-    var37.i = var36.i >> 13;
+    var37.i = var36.i >> 11;
     /* 4: convssslw */
     var35.i = ORC_CLAMP_SW (var37.i);
     /* 5: storew */
@@ -663,7 +663,7 @@ _backup_orc_process_int16_clamp (OrcExecutor * ORC_RESTRICT ex)
     /* 2: mulswl */
     var36.i = var33.i * var34.i;
     /* 3: shrsl */
-    var37.i = var36.i >> 13;
+    var37.i = var36.i >> 11;
     /* 4: convssslw */
     var35.i = ORC_CLAMP_SW (var37.i);
     /* 5: storew */
@@ -716,7 +716,7 @@ orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
     /* 2: mulsbw */
     var36.i = var33 * var34;
     /* 3: shrsw */
-    var37.i = var36.i >> 5;
+    var37.i = var36.i >> 3;
     /* 4: convwb */
     var35 = var37.i;
     /* 5: storeb */
@@ -749,7 +749,7 @@ _backup_orc_process_int8 (OrcExecutor * ORC_RESTRICT ex)
     /* 2: mulsbw */
     var36.i = var33 * var34;
     /* 3: shrsw */
-    var37.i = var36.i >> 5;
+    var37.i = var36.i >> 3;
     /* 4: convwb */
     var35 = var37.i;
     /* 5: storeb */
@@ -802,7 +802,7 @@ orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
     /* 2: mulsbw */
     var36.i = var33 * var34;
     /* 3: shrsw */
-    var37.i = var36.i >> 5;
+    var37.i = var36.i >> 3;
     /* 4: convssswb */
     var35 = ORC_CLAMP_SB (var37.i);
     /* 5: storeb */
@@ -835,7 +835,7 @@ _backup_orc_process_int8_clamp (OrcExecutor * ORC_RESTRICT ex)
     /* 2: mulsbw */
     var36.i = var33 * var34;
     /* 3: shrsw */
-    var37.i = var36.i >> 5;
+    var37.i = var36.i >> 3;
     /* 4: convssswb */
     var35 = ORC_CLAMP_SB (var37.i);
     /* 5: storeb */
@@ -2375,7 +2375,7 @@ gst_volume_orc_init (void)
     orc_program_set_name (p, "orc_process_int16");
     orc_program_set_backup_function (p, _backup_orc_process_int16);
     orc_program_add_destination (p, 2, "d1");
-    orc_program_add_constant (p, 4, 0x0000000d, "c1");
+    orc_program_add_constant (p, 4, 0x0000000b, "c1");
     orc_program_add_parameter (p, 2, "p1");
     orc_program_add_temporary (p, 4, "t1");
 
@@ -2398,7 +2398,7 @@ gst_volume_orc_init (void)
     orc_program_set_name (p, "orc_process_int16_clamp");
     orc_program_set_backup_function (p, _backup_orc_process_int16_clamp);
     orc_program_add_destination (p, 2, "d1");
-    orc_program_add_constant (p, 4, 0x0000000d, "c1");
+    orc_program_add_constant (p, 4, 0x0000000b, "c1");
     orc_program_add_parameter (p, 2, "p1");
     orc_program_add_temporary (p, 4, "t1");
 
@@ -2421,7 +2421,7 @@ gst_volume_orc_init (void)
     orc_program_set_name (p, "orc_process_int8");
     orc_program_set_backup_function (p, _backup_orc_process_int8);
     orc_program_add_destination (p, 1, "d1");
-    orc_program_add_constant (p, 4, 0x00000005, "c1");
+    orc_program_add_constant (p, 4, 0x00000003, "c1");
     orc_program_add_parameter (p, 1, "p1");
     orc_program_add_temporary (p, 2, "t1");
 
@@ -2444,7 +2444,7 @@ gst_volume_orc_init (void)
     orc_program_set_name (p, "orc_process_int8_clamp");
     orc_program_set_backup_function (p, _backup_orc_process_int8_clamp);
     orc_program_add_destination (p, 1, "d1");
-    orc_program_add_constant (p, 4, 0x00000005, "c1");
+    orc_program_add_constant (p, 4, 0x00000003, "c1");
     orc_program_add_parameter (p, 1, "p1");
     orc_program_add_temporary (p, 2, "t1");
 
index aaea6f5..5fdf174 100644 (file)
@@ -37,7 +37,7 @@ convsssql d1, t1
 .temp 4 t1
 
 mulswl t1, d1, p1
-shrsl t1, t1, 13
+shrsl t1, t1, 11
 convlw d1, t1
 
 
@@ -47,7 +47,7 @@ convlw d1, t1
 .temp 4 t1
 
 mulswl t1, d1, p1
-shrsl t1, t1, 13
+shrsl t1, t1, 11
 convssslw d1, t1
 
 .function orc_process_int8
@@ -56,7 +56,7 @@ convssslw d1, t1
 .temp 2 t1
 
 mulsbw t1, d1, p1
-shrsw t1, t1, 5
+shrsw t1, t1, 3
 convwb d1, t1
 
 
@@ -66,7 +66,7 @@ convwb d1, t1
 .temp 2 t1
 
 mulsbw t1, d1, p1
-shrsw t1, t1, 5
+shrsw t1, t1, 3
 convssswb d1, t1
 
 .function orc_memset_f64
index 6781b98..a9244eb 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2011-01-19.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,6 +156,10 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
+       # Protect names problematic for `test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
        shift;;
 
     -T) no_target_directory=true;;
@@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
+    # Protect names problematic for `test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
   done
 fi
 
@@ -200,7 +208,11 @@ if test $# -eq 0; then
 fi
 
 if test -z "$dir_arg"; then
-  trap '(exit $?); exit' 1 2 13 15
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
 
   # Set umask so as not to create temps with too-generous modes.
   # However, 'strip' requires both read and write access to temps.
@@ -228,9 +240,9 @@ fi
 
 for src
 do
-  # Protect names starting with `-'.
+  # Protect names problematic for `test' and other utilities.
   case $src in
-    -*) src=./$src;;
+    -* | [=\(\)!]) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -252,12 +264,7 @@ do
       echo "$0: no destination specified." >&2
       exit 1
     fi
-
     dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
@@ -385,7 +392,7 @@ do
 
       case $dstdir in
        /*) prefix='/';;
-       -*) prefix='./';;
+       [-=\(\)!]*) prefix='./';;
        *)  prefix='';;
       esac
 
@@ -403,7 +410,7 @@ do
 
       for d
       do
-       test -z "$d" && continue
+       test X"$d" = X && continue
 
        prefix=$prefix$d
        if test -d "$prefix"; then
old mode 100755 (executable)
new mode 100644 (file)
index d88da2c..c7d06c3
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,9 @@
-# Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool) 2.2.6b
+# libtool (GNU libtool) 2.4.2
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 #
 # Provide generalized library-building support services.
 #
-#     --config             show all configuration variables
-#     --debug              enable verbose shell tracing
-# -n, --dry-run            display commands without modifying any files
-#     --features           display basic configuration information and exit
-#     --mode=MODE          use operation mode MODE
-#     --preserve-dup-deps  don't remove duplicate dependency libraries
-#     --quiet, --silent    don't print informational messages
-#     --tag=TAG            use configuration variables from tag TAG
-# -v, --verbose            print informational messages (default)
-#     --version            print version information
-# -h, --help               print short or long help message
+#       --config             show all configuration variables
+#       --debug              enable verbose shell tracing
+#   -n, --dry-run            display commands without modifying any files
+#       --features           display basic configuration information and exit
+#       --mode=MODE          use operation mode MODE
+#       --preserve-dup-deps  don't remove duplicate dependency libraries
+#       --quiet, --silent    don't print informational messages
+#       --no-quiet, --no-silent
+#                            print informational messages (default)
+#       --no-warn            don't display warning messages
+#       --tag=TAG            use configuration variables from tag TAG
+#   -v, --verbose            print more informational messages than default
+#       --no-verbose         don't print the extra informational messages
+#       --version            print version information
+#   -h, --help, --help-all   print short, long, or detailed help message
 #
 # MODE must be one of the following:
 #
-#       clean              remove files from the build directory
-#       compile            compile a source file into a libtool object
-#       execute            automatically set library path, then run a program
-#       finish             complete the installation of libtool libraries
-#       install            install libraries or executables
-#       link               create a library or an executable
-#       uninstall          remove libraries from an installed directory
+#         clean              remove files from the build directory
+#         compile            compile a source file into a libtool object
+#         execute            automatically set library path, then run a program
+#         finish             complete the installation of libtool libraries
+#         install            install libraries or executables
+#         link               create a library or an executable
+#         uninstall          remove libraries from an installed directory
 #
-# MODE-ARGS vary depending on the MODE.
+# MODE-ARGS vary depending on the MODE.  When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 #
 # When reporting a bug, please describe a test case to reproduce it and
 # include the following information:
 #
-#       host-triplet:  $host
-#       shell:         $SHELL
-#       compiler:              $LTCC
-#       compiler flags:                $LTCFLAGS
-#       linker:                $LD (gnu? $with_gnu_ld)
-#       $progname:             (GNU libtool) 2.2.6b Debian-2.2.6b-2
-#       automake:              $automake_version
-#       autoconf:              $autoconf_version
+#         host-triplet:        $host
+#         shell:               $SHELL
+#         compiler:            $LTCC
+#         compiler flags:              $LTCFLAGS
+#         linker:              $LD (gnu? $with_gnu_ld)
+#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1
+#         automake:    $automake_version
+#         autoconf:    $autoconf_version
 #
 # Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
-PROGRAM=ltmain.sh
+PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.2.6b Debian-2.2.6b-2"
+VERSION="2.4.2 Debian-2.4.2-1"
 TIMESTAMP=""
-package_revision=1.3017
+package_revision=1.3337
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -91,10 +98,15 @@ fi
 BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
 # NLS nuisances: We save the old values to restore during execute mode.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
 lt_user_locale=
 lt_safe_locale=
 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
@@ -107,24 +119,28 @@ do
          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
        fi"
 done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
 
 $lt_unset CDPATH
 
 
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
 
 
 
 : ${CP="cp -f"}
-: ${ECHO="echo"}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
-: ${LN_S="ln -s"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -144,6 +160,27 @@ IFS="      $lt_nl"
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
 # func_dirname_and_basename file append nondir_replacement
 # perform func_basename and func_dirname in a single function
 # call:
@@ -158,33 +195,183 @@ basename="s,^.*/,,"
 # those functions but instead duplicate the functionality here.
 func_dirname_and_basename ()
 {
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+               s@/\./@/@g
+               t dotsl
+               s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+#             value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+  # Start from root dir and reassemble the path.
+  func_normal_abspath_result=
+  func_normal_abspath_tpath=$1
+  func_normal_abspath_altnamespace=
+  case $func_normal_abspath_tpath in
+    "")
+      # Empty path, that just means $cwd.
+      func_stripname '' '/' "`pwd`"
+      func_normal_abspath_result=$func_stripname_result
+      return
+    ;;
+    # The next three entries are used to spot a run of precisely
+    # two leading slashes without using negated character classes;
+    # we take advantage of case's first-match behaviour.
+    ///*)
+      # Unusual form of absolute path, do nothing.
+    ;;
+    //*)
+      # Not necessarily an ordinary path; POSIX reserves leading '//'
+      # and for example Cygwin uses it to access remote file shares
+      # over CIFS/SMB, so we conserve a leading double slash if found.
+      func_normal_abspath_altnamespace=/
+    ;;
+    /*)
+      # Absolute path, do nothing.
+    ;;
+    *)
+      # Relative path, prepend $cwd.
+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+    ;;
+  esac
+  # Cancel out all the simple stuff to save iterations.  We also want
+  # the path to end with a slash for ease of parsing, so make sure
+  # there is one (and only one) here.
+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+  while :; do
+    # Processed it all yet?
+    if test "$func_normal_abspath_tpath" = / ; then
+      # If we ascended to the root using ".." the result may be empty now.
+      if test -z "$func_normal_abspath_result" ; then
+        func_normal_abspath_result=/
+      fi
+      break
+    fi
+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcar"`
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcdr"`
+    # Figure out what to do with it
+    case $func_normal_abspath_tcomponent in
+      "")
+        # Trailing empty path component, ignore it.
+      ;;
+      ..)
+        # Parent dir; strip last assembled component from result.
+        func_dirname "$func_normal_abspath_result"
+        func_normal_abspath_result=$func_dirname_result
+      ;;
+      *)
+        # Actual path component, append it.
+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+      ;;
+    esac
+  done
+  # Restore leading double-slash if one was found on entry.
+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }
 
-# Generated shell functions inserted here.
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+#             value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+  func_relative_path_result=
+  func_normal_abspath "$1"
+  func_relative_path_tlibdir=$func_normal_abspath_result
+  func_normal_abspath "$2"
+  func_relative_path_tbindir=$func_normal_abspath_result
+
+  # Ascend the tree starting from libdir
+  while :; do
+    # check if we have found a prefix of bindir
+    case $func_relative_path_tbindir in
+      $func_relative_path_tlibdir)
+        # found an exact match
+        func_relative_path_tcancelled=
+        break
+        ;;
+      $func_relative_path_tlibdir*)
+        # found a matching prefix
+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+        func_relative_path_tcancelled=$func_stripname_result
+        if test -z "$func_relative_path_result"; then
+          func_relative_path_result=.
+        fi
+        break
+        ;;
+      *)
+        func_dirname $func_relative_path_tlibdir
+        func_relative_path_tlibdir=${func_dirname_result}
+        if test "x$func_relative_path_tlibdir" = x ; then
+          # Have to descend all the way to the root!
+          func_relative_path_result=../$func_relative_path_result
+          func_relative_path_tcancelled=$func_relative_path_tbindir
+          break
+        fi
+        func_relative_path_result=../$func_relative_path_result
+        ;;
+    esac
+  done
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
+  # Now calculate path; take care to avoid doubling-up slashes.
+  func_stripname '' '/' "$func_relative_path_result"
+  func_relative_path_result=$func_stripname_result
+  func_stripname '/' '/' "$func_relative_path_tcancelled"
+  if test "x$func_stripname_result" != x ; then
+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+  fi
+
+  # Normalisation. If bindir is libdir, return empty string,
+  # else relative path ending with a slash; either way, target
+  # file name can be directly appended.
+  if test ! -z "$func_relative_path_result"; then
+    func_stripname './' '' "$func_relative_path_result/"
+    func_relative_path_result=$func_stripname_result
+  fi
+}
 
 # The name of this program:
-# In the unlikely event $progname began with a '-', it would play havoc with
-# func_echo (imagine progname=-n), so we prepend ./ in that case:
 func_dirname_and_basename "$progpath"
 progname=$func_basename_result
-case $progname in
-  -*) progname=./$progname ;;
-esac
 
 # Make sure we have an absolute path for reexecution:
 case $progpath in
@@ -196,7 +383,7 @@ case $progpath in
      ;;
   *)
      save_IFS="$IFS"
-     IFS=:
+     IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
        IFS="$save_IFS"
        test -x "$progdir/$progname" && break
@@ -215,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 # Same as above, but do not quote variable references.
 double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
 # Re-`\' parameter expansions in output of double_quote_subst that were
 # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 # in input to double_quote_subst, that '$' was protected from expansion.
@@ -243,7 +439,7 @@ opt_warning=:
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: $*"
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
 }
 
 # func_verbose arg...
@@ -258,18 +454,25 @@ func_verbose ()
     :
 }
 
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
 # func_error arg...
 # Echo program name prefixed message to standard error.
 func_error ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
 }
 
 # func_warning arg...
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
 
     # bash bug again:
     :
@@ -326,9 +529,9 @@ func_mkdir_p ()
         case $my_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
       done
-      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
 
       save_mkdir_p_IFS="$IFS"; IFS=':'
       for my_dir in $my_dir_list; do
@@ -378,7 +581,7 @@ func_mktempdir ()
         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
     fi
 
-    $ECHO "X$my_tmpdir" | $Xsed
+    $ECHO "$my_tmpdir"
 }
 
 
@@ -392,7 +595,7 @@ func_quote_for_eval ()
 {
     case $1 in
       *[\\\`\"\$]*)
-       func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+       func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
       *)
         func_quote_for_eval_unquoted_result="$1" ;;
     esac
@@ -419,7 +622,7 @@ func_quote_for_expand ()
 {
     case $1 in
       *[\\\`\"]*)
-       my_arg=`$ECHO "X$1" | $Xsed \
+       my_arg=`$ECHO "$1" | $SED \
            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
       *)
         my_arg="$1" ;;
@@ -488,15 +691,39 @@ func_show_eval_locale ()
     fi
 }
 
-
-
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
 
 
 # func_version
 # Echo version message to standard output and exit.
 func_version ()
 {
-    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+    $opt_debug
+
+    $SED -n '/(C)/!b go
+       :more
+       /\./!{
+         N
+         s/\n# / /
+         b more
+       }
+       :go
+       /^# '$PROGRAM' (GNU /,/# warranty; / {
         s/^# //
        s/^# *$//
         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
@@ -509,22 +736,28 @@ func_version ()
 # Echo short help message to standard output and exit.
 func_usage ()
 {
-    $SED -n '/^# Usage:/,/# -h/ {
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
         s/^# //
        s/^# *$//
        s/\$progname/'$progname'/
        p
     }' < "$progpath"
-    $ECHO
+    echo
     $ECHO "run \`$progname --help | more' for full usage"
     exit $?
 }
 
-# func_help
-# Echo long help message to standard output and exit.
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
 func_help ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/# Report bugs to/ {
+       :print
         s/^# //
        s/^# *$//
        s*\$progname*'$progname'*
@@ -534,11 +767,18 @@ func_help ()
        s*\$LTCFLAGS*'"$LTCFLAGS"'*
        s*\$LD*'"$LD"'*
        s/\$with_gnu_ld/'"$with_gnu_ld"'/
-       s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
-       s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
        p
-     }' < "$progpath"
-    exit $?
+       d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
+    ret=$?
+    if test -z "$1"; then
+      exit $ret
+    fi
 }
 
 # func_missing_arg argname
@@ -546,63 +786,106 @@ func_help ()
 # exit_cmd.
 func_missing_arg ()
 {
-    func_error "missing argument for $1"
+    $opt_debug
+
+    func_error "missing argument for $1."
     exit_cmd=exit
 }
 
-exit_cmd=:
 
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
 
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
 
 
 
-# Check that we have a working $ECHO.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell, and then maybe $ECHO will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
 
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
 
 magic="%%%MAGIC variable%%%"
 magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
-# $mode is unset
 nonopt=
-execute_dlfiles=
 preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
 extracted_archives=
 extracted_serial=0
 
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
 
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
 # func_fatal_configuration arg...
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
@@ -636,16 +919,16 @@ func_config ()
 # Display the features supported by this script.
 func_features ()
 {
-    $ECHO "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $ECHO "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $ECHO "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $ECHO "enable static libraries"
+      echo "enable static libraries"
     else
-      $ECHO "disable static libraries"
+      echo "disable static libraries"
     fi
 
     exit $?
@@ -692,117 +975,209 @@ func_enable_tag ()
   esac
 }
 
-# Parse options once, thoroughly.  This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
 {
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_warning=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
 
-  # Shorthand for --mode=foo, only valid as the first argument
-  case $1 in
-  clean|clea|cle|cl)
-    shift; set dummy --mode clean ${1+"$@"}; shift
-    ;;
-  compile|compil|compi|comp|com|co|c)
-    shift; set dummy --mode compile ${1+"$@"}; shift
-    ;;
-  execute|execut|execu|exec|exe|ex|e)
-    shift; set dummy --mode execute ${1+"$@"}; shift
-    ;;
-  finish|finis|fini|fin|fi|f)
-    shift; set dummy --mode finish ${1+"$@"}; shift
-    ;;
-  install|instal|insta|inst|ins|in|i)
-    shift; set dummy --mode install ${1+"$@"}; shift
-    ;;
-  link|lin|li|l)
-    shift; set dummy --mode link ${1+"$@"}; shift
-    ;;
-  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-    shift; set dummy --mode uninstall ${1+"$@"}; shift
-    ;;
-  esac
 
-  # Parse non-mode specific arguments:
-  while test "$#" -gt 0; do
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
     opt="$1"
     shift
-
     case $opt in
-      --config)                func_config                                     ;;
-
-      --debug)         preserve_args="$preserve_args $opt"
+      --debug|-x)      opt_debug='set -x'
                        func_echo "enabling shell trace mode"
-                       opt_debug='set -x'
                        $opt_debug
                        ;;
-
-      -dlopen)         test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       execute_dlfiles="$execute_dlfiles $1"
-                       shift
+      --dry-run|--dryrun|-n)
+                       opt_dry_run=:
                        ;;
-
-      --dry-run | -n)  opt_dry_run=:                                   ;;
-      --features)       func_features                                  ;;
-      --finish)                mode="finish"                                   ;;
-
-      --mode)          test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       case $1 in
-                         # Valid mode arguments:
-                         clean)        ;;
-                         compile)      ;;
-                         execute)      ;;
-                         finish)       ;;
-                         install)      ;;
-                         link)         ;;
-                         relink)       ;;
-                         uninstall)    ;;
-
-                         # Catch anything else as an error
-                         *) func_error "invalid argument for $opt"
-                            exit_cmd=exit
-                            break
-                            ;;
-                       esac
-
-                       mode="$1"
+      --config)
+                       opt_config=:
+func_config
+                       ;;
+      --dlopen|-dlopen)
+                       optarg="$1"
+                       opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
                        shift
                        ;;
-
       --preserve-dup-deps)
-                       opt_duplicate_deps=:                            ;;
-
-      --quiet|--silent)        preserve_args="$preserve_args $opt"
-                       opt_silent=:
+                       opt_preserve_dup_deps=:
                        ;;
-
-      --verbose| -v)   preserve_args="$preserve_args $opt"
+      --features)
+                       opt_features=:
+func_features
+                       ;;
+      --finish)
+                       opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+                       ;;
+      --help)
+                       opt_help=:
+                       ;;
+      --help-all)
+                       opt_help_all=:
+opt_help=': help-all'
+                       ;;
+      --mode)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+                       shift
+                       ;;
+      --no-silent|--no-quiet)
                        opt_silent=false
+func_append preserve_args " $opt"
                        ;;
-
-      --tag)           test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       preserve_args="$preserve_args $opt $1"
-                       func_enable_tag "$1"    # tagname is set here
+      --no-warning|--no-warn)
+                       opt_warning=false
+func_append preserve_args " $opt"
+                       ;;
+      --no-verbose)
+                       opt_verbose=false
+func_append preserve_args " $opt"
+                       ;;
+      --silent|--quiet)
+                       opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+                       ;;
+      --verbose|-v)
+                       opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+                       ;;
+      --tag)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
                        shift
                        ;;
 
+      -\?|-h)          func_usage                              ;;
+      --help)          func_help                               ;;
+      --version)       func_version                            ;;
+
       # Separate optargs to long options:
-      -dlopen=*|--mode=*|--tag=*)
-                       func_opt_split "$opt"
-                       set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+      --*=*)
+                       func_split_long_opt "$opt"
+                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
                        shift
                        ;;
 
-      -\?|-h)          func_usage                                      ;;
-      --help)          opt_help=:                                      ;;
-      --version)       func_version                                    ;;
-
-      -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
-
-      *)               nonopt="$opt"
-                       break
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+                       func_split_short_opt "$opt"
+                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+                       shift
                        ;;
+
+      --)              break                                   ;;
+      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
+      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
     esac
   done
 
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
 
   case $host in
     *cygwin* | *mingw* | *pw32* | *cegcc*)
@@ -810,82 +1185,44 @@ func_enable_tag ()
       opt_duplicate_compiler_generated_deps=:
       ;;
     *)
-      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
       ;;
   esac
 
-  # Having warned about all mis-specified options, bail out if
-  # anything was wrong.
-  $exit_cmd $EXIT_FAILURE
-}
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
 
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
     fi
 
-    exit $EXIT_MISMATCH
-  fi
-}
-
-
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-$opt_help || {
-  # Sanity checks first:
-  func_check_version_match
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
 
-  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-    func_fatal_configuration "not configured to build any kind of library"
-  fi
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
 
 
-  # Darwin sucks
-  eval std_shrext=\"$shrext_cmds\"
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
 
 
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    func_error "unrecognized option \`-dlopen'"
-    $ECHO "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
 
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
-}
 
+## ----------- ##
+##    Main.    ##
+## ----------- ##
 
 # func_lalib_p file
 # True iff FILE is a libtool `.la' library or `.lo' object file.
@@ -950,12 +1287,9 @@ func_ltwrapper_executable_p ()
 # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()
 {
-    func_ltwrapper_scriptname_result=""
-    if func_ltwrapper_executable_p "$1"; then
-       func_dirname_and_basename "$1" "" "."
-       func_stripname '' '.exe' "$func_basename_result"
-       func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-    fi
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 }
 
 # func_ltwrapper_p file
@@ -1001,6 +1335,37 @@ func_source ()
 }
 
 
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
 # func_infer_tag arg
 # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.
@@ -1013,13 +1378,15 @@ func_infer_tag ()
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
-        func_quote_for_eval "$arg"
-       CC_quoted="$CC_quoted $func_quote_for_eval_result"
+       func_append_quoted CC_quoted "$arg"
       done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
       case $@ in
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
       # Blanks at the start of $base_compile will cause this to fail
       # if we don't check for them as well.
       *)
@@ -1030,11 +1397,13 @@ func_infer_tag ()
            CC_quoted=
            for arg in $CC; do
              # Double-quote args containing other shell metacharacters.
-             func_quote_for_eval "$arg"
-             CC_quoted="$CC_quoted $func_quote_for_eval_result"
+             func_append_quoted CC_quoted "$arg"
            done
+           CC_expanded=`func_echo_all $CC`
+           CC_quoted_expanded=`func_echo_all $CC_quoted`
            case "$@ " in
-             " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+           " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+           " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
              # The compiler in the base compile command matches
              # the one in the tagged configuration.
              # Assume this is the tagged configuration we want.
@@ -1097,6 +1466,486 @@ EOF
     }
 }
 
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
@@ -1137,12 +1986,12 @@ func_mode_compile ()
          ;;
 
        -pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
+          func_append pie_flag " $arg"
          continue
          ;;
 
        -shared | -static | -prefer-pic | -prefer-non-pic)
-         later="$later $arg"
+         func_append later " $arg"
          continue
          ;;
 
@@ -1163,15 +2012,14 @@ func_mode_compile ()
          save_ifs="$IFS"; IFS=','
          for arg in $args; do
            IFS="$save_ifs"
-           func_quote_for_eval "$arg"
-           lastarg="$lastarg $func_quote_for_eval_result"
+           func_append_quoted lastarg "$arg"
          done
          IFS="$save_ifs"
          func_stripname ' ' '' "$lastarg"
          lastarg=$func_stripname_result
 
          # Add the arguments to base_compile.
-         base_compile="$base_compile $lastarg"
+         func_append base_compile " $lastarg"
          continue
          ;;
 
@@ -1187,8 +2035,7 @@ func_mode_compile ()
       esac    #  case $arg_mode
 
       # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
+      func_append_quoted base_compile "$lastarg"
     done # for arg
 
     case $arg_mode in
@@ -1213,7 +2060,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -1288,7 +2135,7 @@ func_mode_compile ()
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
     if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
       lockfile="$output_obj.lock"
     else
       output_obj=
@@ -1319,17 +2166,16 @@ compiler."
        $opt_dry_run || $RM $removelist
        exit $EXIT_FAILURE
       fi
-      removelist="$removelist $output_obj"
+      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"
     fi
 
     $opt_dry_run || $RM $removelist
-    removelist="$removelist $lockfile"
+    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
     func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result
 
@@ -1349,7 +2195,7 @@ compiler."
 
       if test -z "$output_obj"; then
        # Place PIC objects in $objdir
-       command="$command -o $lobj"
+       func_append command " -o $lobj"
       fi
 
       func_show_eval_locale "$command" \
@@ -1396,11 +2242,11 @@ compiler."
        command="$base_compile $qsrcfile $pic_flag"
       fi
       if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
+       func_append command " -o $obj"
       fi
 
       # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
+      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
@@ -1445,13 +2291,13 @@ compiler."
 }
 
 $opt_help || {
-test "$mode" = compile && func_mode_compile ${1+"$@"}
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
 {
     # We need to display help for each of the modes.
-    case $mode in
+    case $opt_mode in
       "")
         # Generic help is extracted from the usage comments
         # at the start of this file.
@@ -1482,10 +2328,11 @@ This mode accepts the following additional options:
 
   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
   -shared           do not build a \`.o' file suitable for static linking
   -static           only build a \`.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
 
 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 from the given SOURCEFILE.
@@ -1538,7 +2385,7 @@ either the \`install' or \`cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
-  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
 The rest of the components are interpreted as arguments to that command (only
 BSD-compatible install options are recognized)."
@@ -1558,6 +2405,8 @@ The following components of LINK-COMMAND are treated specially:
 
   -all-static       do not do any dynamic linking at all
   -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
@@ -1586,6 +2435,11 @@ The following components of LINK-COMMAND are treated specially:
   -version-info CURRENT[:REVISION[:AGE]]
                     specify library version info [each variable defaults to 0]
   -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
 All other options (arguments beginning with \`-') are ignored.
 
@@ -1619,18 +2473,44 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$mode'"
+        func_fatal_help "invalid operation mode \`$opt_mode'"
         ;;
     esac
 
-    $ECHO
+    echo
     $ECHO "Try \`$progname --help' for more information about other modes."
-
-    exit $?
 }
 
-  # Now that we've collected a possible --mode arg, show help if necessary
-  $opt_help && func_mode_help
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test "$opt_help" = :; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       func_mode_help
+      done
+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       echo
+       func_mode_help
+      done
+    } |
+    sed '1d
+      /^When reporting/,/^Report/{
+       H
+       d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
 
 
 # func_mode_execute arg...
@@ -1643,13 +2523,16 @@ func_mode_execute ()
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
+    for file in $opt_dlopen; do
       test -f "$file" \
        || func_fatal_help "\`$file' is not a file"
 
       dir=
       case $file in
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1671,7 +2554,7 @@ func_mode_execute ()
        dir="$func_dirname_result"
 
        if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
+         func_append dir "/$objdir"
        else
          if test ! -f "$dir/$dlname"; then
            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1712,7 +2595,7 @@ func_mode_execute ()
     for file
     do
       case $file in
-      -*) ;;
+      -* | *.la | *.lo ) ;;
       *)
        # Do a test to see if this is really a libtool program.
        if func_ltwrapper_script_p "$file"; then
@@ -1728,8 +2611,7 @@ func_mode_execute ()
        ;;
       esac
       # Quote arguments (to preserve shell metacharacters).
-      func_quote_for_eval "$file"
-      args="$args $func_quote_for_eval_result"
+      func_append_quoted args "$file"
     done
 
     if test "X$opt_dry_run" = Xfalse; then
@@ -1754,29 +2636,66 @@ func_mode_execute ()
       # Display what would be done.
       if test -n "$shlibpath_var"; then
        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-       $ECHO "export $shlibpath_var"
+       echo "export $shlibpath_var"
       fi
       $ECHO "$cmd$args"
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$mode" = execute && func_mode_execute ${1+"$@"}
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
     $opt_debug
-    libdirs="$nonopt"
+    libs=
+    libdirs=
     admincmds=
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+       func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+       if func_lalib_unsafe_p "$opt"; then
+         func_append libs " $opt"
+       else
+         func_warning "\`$opt' is not a valid libtool archive"
+       fi
+
+      else
+       func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+           > $tmpdir/tmp-la
+         mv -f $tmpdir/tmp-la $lib
+       done
+        ${RM}r "$tmpdir"
+      fi
+    fi
 
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for libdir in $libdirs; do
        if test -n "$finish_cmds"; then
          # Do each command in the finish commands.
@@ -1786,7 +2705,7 @@ func_mode_finish ()
        if test -n "$finish_eval"; then
          # Do the single finish_eval.
          eval cmds=\"$finish_eval\"
-         $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+         $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"
        fi
       done
@@ -1795,53 +2714,55 @@ func_mode_finish ()
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
-    $ECHO "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    $ECHO
-    $ECHO "If you ever happen to want to link against installed libraries"
-    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
-    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $ECHO "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $ECHO "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $ECHO "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+       $ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+       libdir=LIBDIR
+       eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $ECHO
+       $ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+       $ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
 
-    $ECHO "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-       $ECHO "pages."
-       ;;
-      *)
-        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+       solaris2.[6789]|solaris2.1[0-9])
+         echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+         echo "pages."
+         ;;
+       *)
+         echo "more information, such as the ld(1) and ld.so(8) manual pages."
+         ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
-test "$mode" = finish && func_mode_finish ${1+"$@"}
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
@@ -1852,7 +2773,7 @@ func_mode_install ()
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+       case $nonopt in *shtool*) :;; *) false;; esac; then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -1866,7 +2787,12 @@ func_mode_install ()
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
     func_quote_for_eval "$arg"
-    install_prog="$install_prog$func_quote_for_eval_result"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
 
     # We need to accept at least all the BSD install flags.
     dest=
@@ -1876,10 +2802,12 @@ func_mode_install ()
     install_type=
     isdir=no
     stripme=
+    no_mode=:
     for arg
     do
+      arg2=
       if test -n "$dest"; then
-       files="$files $dest"
+       func_append files " $dest"
        dest=$arg
        continue
       fi
@@ -1887,10 +2815,9 @@ func_mode_install ()
       case $arg in
       -d) isdir=yes ;;
       -f)
-       case " $install_prog " in
-       *[\\\ /]cp\ *) ;;
-       *) prev=$arg ;;
-       esac
+       if $install_cp; then :; else
+         prev=$arg
+       fi
        ;;
       -g | -m | -o)
        prev=$arg
@@ -1904,6 +2831,10 @@ func_mode_install ()
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
+         if test "x$prev" = x-m && test -n "$install_override_mode"; then
+           arg2=$install_override_mode
+           no_mode=false
+         fi
          prev=
        else
          dest=$arg
@@ -1914,7 +2845,11 @@ func_mode_install ()
 
       # Aesthetically quote the argument.
       func_quote_for_eval "$arg"
-      install_prog="$install_prog $func_quote_for_eval_result"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+       func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -1923,6 +2858,13 @@ func_mode_install ()
     test -n "$prev" && \
       func_fatal_help "the \`$prev' option requires an argument"
 
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+       func_quote_for_eval "$install_override_mode"
+       func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
     if test -z "$files"; then
       if test -z "$dest"; then
        func_fatal_help "no file or destination specified"
@@ -1977,10 +2919,13 @@ func_mode_install ()
       case $file in
       *.$libext)
        # Do the static libraries later.
-       staticlibs="$staticlibs $file"
+       func_append staticlibs " $file"
        ;;
 
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -1994,23 +2939,23 @@ func_mode_install ()
        if test "X$destdir" = "X$libdir"; then
          case "$current_libdirs " in
          *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
+         *) func_append current_libdirs " $libdir" ;;
          esac
        else
          # Note the libdir as a future libdir.
          case "$future_libdirs " in
          *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
+         *) func_append future_libdirs " $libdir" ;;
          esac
        fi
 
        func_dirname "$file" "/" ""
        dir="$func_dirname_result"
-       dir="$dir$objdir"
+       func_append dir "$objdir"
 
        if test -n "$relink_command"; then
          # Determine the prefix the user has applied to our future dir.
-         inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+         inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 
          # Don't allow the user to place us outside of our expected
          # location b/c this prevents finding dependent libraries that
@@ -2023,9 +2968,9 @@ func_mode_install ()
 
          if test -n "$inst_prefix_dir"; then
            # Stick the inst_prefix_dir data into the link command.
-           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
          else
-           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
          fi
 
          func_warning "relinking \`$file'"
@@ -2043,7 +2988,7 @@ func_mode_install ()
          test -n "$relink_command" && srcname="$realname"T
 
          # Install the shared library and build the symlinks.
-         func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+         func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
              'exit $?'
          tstripme="$stripme"
          case $host_os in
@@ -2083,7 +3028,7 @@ func_mode_install ()
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
        # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+       test -n "$old_library" && func_append staticlibs " $dir/$old_library"
        ;;
 
       *.lo)
@@ -2183,7 +3128,7 @@ func_mode_install ()
            if test -f "$lib"; then
              func_source "$lib"
            fi
-           libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
            if test -n "$libdir" && test ! -f "$libfile"; then
              func_warning "\`$lib' has not been installed in \`$libdir'"
              finalize=no
@@ -2202,7 +3147,7 @@ func_mode_install ()
                file="$func_basename_result"
                outputname="$tmpdir/$file"
                # Replace the output file specification.
-               relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+               relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
                $opt_silent || {
                  func_quote_for_expand "$relink_command"
@@ -2221,7 +3166,7 @@ func_mode_install ()
            }
          else
            # Install the binary that we compiled earlier.
-           file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+           file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
          fi
        fi
 
@@ -2257,11 +3202,13 @@ func_mode_install ()
 
       # Set up the ranlib parameters.
       oldlib="$destdir/$name"
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
 
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
       if test -n "$stripme" && test -n "$old_striplib"; then
-       func_show_eval "$old_striplib $oldlib" 'exit $?'
+       func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
       fi
 
       # Do each command in the postinstall commands.
@@ -2280,7 +3227,7 @@ func_mode_install ()
     fi
 }
 
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -2323,6 +3270,22 @@ func_generate_dlsyms ()
 extern \"C\" {
 #endif
 
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 /* External symbol declarations for the compiler. */\
 "
 
@@ -2332,10 +3295,11 @@ extern \"C\" {
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
          # Add our own program objects to the symbol list.
-         progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+         progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
          for progfile in $progfiles; do
-           func_verbose "extracting global C symbols from \`$progfile'"
-           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+           func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
          done
 
          if test -n "$exclude_expsyms"; then
@@ -2371,7 +3335,7 @@ extern \"C\" {
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              eval '$MV "$nlist"T "$nlist"'
              case $host in
-               *cygwin | *mingw* | *cegcc* )
+               *cygwin* | *mingw* | *cegcc* )
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
                  ;;
@@ -2384,10 +3348,52 @@ extern \"C\" {
          func_verbose "extracting global C symbols from \`$dlprefile'"
          func_basename "$dlprefile"
          name="$func_basename_result"
-         $opt_dry_run || {
-           eval '$ECHO ": $name " >> "$nlist"'
-           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-         }
+          case $host in
+           *cygwin* | *mingw* | *cegcc* )
+             # if an import library, we need to obtain dlname
+             if func_win32_import_lib_p "$dlprefile"; then
+               func_tr_sh "$dlprefile"
+               eval "curr_lafile=\$libfile_$func_tr_sh_result"
+               dlprefile_dlbasename=""
+               if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+                 # Use subshell, to avoid clobbering current variable values
+                 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+                 if test -n "$dlprefile_dlname" ; then
+                   func_basename "$dlprefile_dlname"
+                   dlprefile_dlbasename="$func_basename_result"
+                 else
+                   # no lafile. user explicitly requested -dlpreopen <import library>.
+                   $sharedlib_from_linklib_cmd "$dlprefile"
+                   dlprefile_dlbasename=$sharedlib_from_linklib_result
+                 fi
+               fi
+               $opt_dry_run || {
+                 if test -n "$dlprefile_dlbasename" ; then
+                   eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+                 else
+                   func_warning "Could not compute DLL name from $name"
+                   eval '$ECHO ": $name " >> "$nlist"'
+                 fi
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+                   $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+               }
+             else # not an import lib
+               $opt_dry_run || {
+                 eval '$ECHO ": $name " >> "$nlist"'
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+               }
+             fi
+           ;;
+           *)
+             $opt_dry_run || {
+               eval '$ECHO ": $name " >> "$nlist"'
+               func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+               eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+             }
+           ;;
+          esac
        done
 
        $opt_dry_run || {
@@ -2415,36 +3421,19 @@ extern \"C\" {
          if test -f "$nlist"S; then
            eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
          else
-           $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+           echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
          fi
 
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+         echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
 typedef struct {
   const char *name;
   void *address;
 } lt_dlsymlist;
-"
-         case $host in
-         *cygwin* | *mingw* | *cegcc* )
-           $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-           lt_dlsym_const= ;;
-         *osf5*)
-           echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-           lt_dlsym_const= ;;
-         *)
-           lt_dlsym_const=const ;;
-         esac
-
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
+extern LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
+LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
 {\
   { \"$my_originator\", (void *) 0 },"
@@ -2457,7 +3446,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] =
            eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
            ;;
          esac
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+         echo >> "$output_objdir/$my_dlsyms" "\
   {0, (void *) 0}
 };
 
@@ -2484,7 +3473,7 @@ static const void *lt_preloaded_setup() {
          # linked before any other PIC object.  But we must not use
          # pic_flag when linking with -static.  The problem exists in
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+         *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
            pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
          *-*-hpux*)
            pic_flag_for_symtable=" $pic_flag"  ;;
@@ -2500,7 +3489,7 @@ static const void *lt_preloaded_setup() {
        for arg in $LTCFLAGS; do
          case $arg in
          -pie | -fpie | -fPIE) ;;
-         *) symtab_cflags="$symtab_cflags $arg" ;;
+         *) func_append symtab_cflags " $arg" ;;
          esac
        done
 
@@ -2515,16 +3504,16 @@ static const void *lt_preloaded_setup() {
        case $host in
        *cygwin* | *mingw* | *cegcc* )
          if test -f "$output_objdir/$my_outputname.def"; then
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
          else
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          fi
          ;;
        *)
-         compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-         finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+         compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+         finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          ;;
        esac
        ;;
@@ -2538,8 +3527,8 @@ static const void *lt_preloaded_setup() {
       # really was required.
 
       # Nullify the symbol file.
-      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     fi
 }
 
@@ -2549,6 +3538,7 @@ static const void *lt_preloaded_setup() {
 # Need a lot of goo to handle *both* DLLs and import libs
 # Has to be a shell function in order to 'eat' the argument
 # that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
   $opt_debug
@@ -2559,9 +3549,11 @@ func_win32_libid ()
     win32_libid_type="x86 archive import"
     ;;
   *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
        $SED -n -e '
            1,100{
                / I /{
@@ -2590,6 +3582,131 @@ func_win32_libid ()
   $ECHO "$win32_libid_type"
 }
 
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[         ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
 
 
 # func_extract_an_archive dir oldlib
@@ -2598,7 +3715,18 @@ func_extract_an_archive ()
     $opt_debug
     f_ex_an_ar_dir="$1"; shift
     f_ex_an_ar_oldlib="$1"
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if test "$lock_old_archive_extraction" = yes; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+                  'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test "$lock_old_archive_extraction" = yes; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
      :
     else
@@ -2669,7 +3797,7 @@ func_extract_archives ()
            darwin_file=
            darwin_files=
            for darwin_file in $darwin_filelist; do
-             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+             darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
              $LIPO -create -output "$darwin_file" $darwin_files
            done # $darwin_filelist
            $RM -rf unfat-$$
@@ -2684,25 +3812,30 @@ func_extract_archives ()
         func_extract_an_archive "$my_xdir" "$my_xabs"
        ;;
       esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
     func_extract_archives_result="$my_oldobjs"
 }
 
 
-
-# func_emit_wrapper_part1 [arg=no]
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
 #
-# Emit the first part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part1 ()
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
 {
-       func_emit_wrapper_part1_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_part1_arg1=$1
-       fi
+       func_emit_wrapper_arg1=${1-no}
 
        $ECHO "\
 #! $SHELL
@@ -2718,7 +3851,6 @@ func_emit_wrapper_part1 ()
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
 # Be Bourne compatible
@@ -2749,31 +3881,135 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
 else
   # When we are sourced in execute mode, \$file and \$ECHO are already set.
   if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    ECHO=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$ECHO works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$ECHO will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
 "
-       $ECHO "\
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
 
   # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
   # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
 
     # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then
@@ -2783,30 +4019,13 @@ else
       esac
     fi
 
-    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   done
-"
-}
-# end: func_emit_wrapper_part1
-
-# func_emit_wrapper_part2 [arg=no]
-#
-# Emit the second part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part2 ()
-{
-       func_emit_wrapper_part2_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_part2_arg1=$1
-       fi
-
-       $ECHO "\
 
   # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'
     if test \"\$thisdir\" = \".\"; then
@@ -2814,7 +4033,7 @@ func_emit_wrapper_part2 ()
     fi
     # remove .libs from thisdir
     case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     $objdir )   thisdir=. ;;
     esac
   fi
@@ -2869,6 +4088,18 @@ func_emit_wrapper_part2 ()
 
   if test -f \"\$progdir/\$program\"; then"
 
+       # fixup the dll searchpath if we need to.
+       #
+       # Fix the DLL searchpath if we need to.  Do this before prepending
+       # to shlibpath, because on Windows, both are PATH and uninstalled
+       # libraries must come first.
+       if test -n "$dllsearchpath"; then
+         $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+       fi
+
        # Export our shlibpath_var if we have one.
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
          $ECHO "\
@@ -2877,253 +4108,28 @@ func_emit_wrapper_part2 ()
 
     # Some systems cannot cope with colon-terminated $shlibpath_var
     # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
 
     export $shlibpath_var
 "
        fi
 
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
-
        $ECHO "\
     if test \"\$libtool_execute_magic\" != \"$magic\"; then
       # Run the actual program with our arguments.
-"
-       case $host in
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2* | *-cegcc*)
-         $ECHO "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-         ;;
-
-       *)
-         $ECHO "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-         ;;
-       esac
-       $ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
+      func_exec_program \${1+\"\$@\"}
     fi
   else
     # The program doesn't exist.
     \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
   fi
 fi\
 "
 }
-# end: func_emit_wrapper_part2
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-       func_emit_wrapper_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_arg1=$1
-       fi
-
-       # split this up so that func_emit_cwrapperexe_src
-       # can call each part independently.
-       func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
-       func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
-}
-
-
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin.  Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
-  func_to_host_path_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        case $build in
-          *mingw* ) # actually, msys
-            # awkward: cmd appends spaces to result
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_path_tmp1=`cygpath -w "$1"`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # Unfortunately, winepath does not exit with a non-zero
-            # error code, so we are forced to check the contents of
-            # stdout. On the other hand, if the command is not
-            # found, the shell will set an exit code of 127 and print
-            # *an error message* to stdout. So we must check for both
-            # error code of zero AND non-empty stdout, which explains
-            # the odd construction:
-            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-                $SED -e "$lt_sed_naive_backslashify"`
-            else
-              # Allow warning below.
-              func_to_host_path_result=""
-            fi
-            ;;
-        esac
-        if test -z "$func_to_host_path_result" ; then
-          func_error "Could not determine host path corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback:
-          func_to_host_path_result="$1"
-        fi
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_path
 
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
-  func_to_host_pathlist_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        # Remove leading and trailing path separator characters from
-        # ARG. msys behavior is inconsistent here, cygpath turns them
-        # into '.;' and ';.', and winepath ignores them completely.
-        func_to_host_pathlist_tmp2="$1"
-        # Once set for this call, this variable should not be
-        # reassigned. It is used in tha fallback case.
-        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
-          $SED -e 's|^:*||' -e 's|:*$||'`
-        case $build in
-          *mingw* ) # Actually, msys.
-            # Awkward: cmd appends spaces to result.
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # unfortunately, winepath doesn't convert pathlists
-            func_to_host_pathlist_result=""
-            func_to_host_pathlist_oldIFS=$IFS
-            IFS=:
-            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-              IFS=$func_to_host_pathlist_oldIFS
-              if test -n "$func_to_host_pathlist_f" ; then
-                func_to_host_path "$func_to_host_pathlist_f"
-                if test -n "$func_to_host_path_result" ; then
-                  if test -z "$func_to_host_pathlist_result" ; then
-                    func_to_host_pathlist_result="$func_to_host_path_result"
-                  else
-                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
-                  fi
-                fi
-              fi
-              IFS=:
-            done
-            IFS=$func_to_host_pathlist_oldIFS
-            ;;
-        esac
-        if test -z "$func_to_host_pathlist_result" ; then
-          func_error "Could not determine the host path(s) corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback. This may break if $1 contains DOS-style drive
-          # specifications. The fix is not to complicate the expression
-          # below, but for the user to provide a working wine installation
-          # with winepath so that path translation in the cross-to-mingw
-          # case works properly.
-          lt_replace_pathsep_nix_to_dos="s|:|;|g"
-          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-            $SED -e "$lt_replace_pathsep_nix_to_dos"`
-        fi
-        # Now, add the leading and trailing path separators back
-        case "$1" in
-          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-            ;;
-        esac
-        case "$1" in
-          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
-            ;;
-        esac
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_pathlist
 
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
@@ -3141,31 +4147,23 @@ func_emit_cwrapperexe_src ()
 
    This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "$SHELL $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
 */
 EOF
            cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef _MSC_VER
 # include <direct.h>
 # include <process.h>
 # include <io.h>
-# define setmode _setmode
 #else
 # include <unistd.h>
 # include <stdint.h>
 # ifdef __CYGWIN__
 #  include <io.h>
-#  define HAVE_SETENV
-#  ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-#  endif
 # endif
 #endif
 #include <malloc.h>
@@ -3177,6 +4175,44 @@ int setenv (const char *, const char *, int);
 #include <fcntl.h>
 #include <sys/stat.h>
 
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+#  define _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
 #if defined(PATH_MAX)
 # define LT_PATHMAX PATH_MAX
 #elif defined(MAXPATHLEN)
@@ -3192,14 +4228,7 @@ int setenv (const char *, const char *, int);
 # define S_IXGRP 0
 #endif
 
-#ifdef _MSC_VER
-# define S_IXUSR _S_IEXEC
-# define stat _stat
-# ifndef _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#endif
-
+/* path handling portability macros */
 #ifndef DIR_SEPARATOR
 # define DIR_SEPARATOR '/'
 # define PATH_SEPARATOR ':'
@@ -3230,10 +4259,6 @@ int setenv (const char *, const char *, int);
 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 #endif /* PATH_SEPARATOR_2 */
 
-#ifdef __CYGWIN__
-# define FOPEN_WB "wb"
-#endif
-
 #ifndef FOPEN_WB
 # define FOPEN_WB "w"
 #endif
@@ -3246,22 +4271,13 @@ int setenv (const char *, const char *, int);
   if (stale) { free ((void *) stale); stale = 0; } \
 } while (0)
 
-#undef LTWRAPPER_DEBUGPRINTF
-#if defined DEBUGWRAPPER
-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
-static void
-ltwrapper_debugprintf (const char *fmt, ...)
-{
-    va_list args;
-    va_start (args, fmt);
-    (void) vfprintf (stderr, fmt, args);
-    va_end (args);
-}
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
 #else
-# define LTWRAPPER_DEBUGPRINTF(args)
+static int lt_debug = 0;
 #endif
 
-const char *program_name = NULL;
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
 
 void *xmalloc (size_t num);
 char *xstrdup (const char *string);
@@ -3271,41 +4287,27 @@ char *chase_symlinks (const char *pathspec);
 int make_executable (const char *path);
 int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);
-void lt_fatal (const char *message, ...);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
 void lt_setenv (const char *name, const char *value);
 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_opt_process_env_set (const char *arg);
-void lt_opt_process_env_prepend (const char *arg);
-void lt_opt_process_env_append (const char *arg);
-int lt_split_name_value (const char *arg, char** name, char** value);
 void lt_update_exe_path (const char *name, const char *value);
 void lt_update_lib_path (const char *name, const char *value);
-
-static const char *script_text_part1 =
-EOF
-
-           func_emit_wrapper_part1 yes |
-               $SED -e 's/\([\\"]\)/\\\1/g' \
-                    -e 's/^/  "/' -e 's/$/\\n"/'
-           echo ";"
-           cat <<EOF
-
-static const char *script_text_part2 =
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
 EOF
-           func_emit_wrapper_part2 yes |
-               $SED -e 's/\([\\"]\)/\\\1/g' \
-                    -e 's/^/  "/' -e 's/$/\\n"/'
-           echo ";"
 
            cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_pathlist "$temp_rpath"
+              func_to_host_path "$temp_rpath"
              cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3314,10 +4316,10 @@ EOF
            fi
 
            if test -n "$dllsearchpath"; then
-              func_to_host_pathlist "$dllsearchpath:"
+              func_to_host_path "$dllsearchpath:"
              cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3340,24 +4342,10 @@ EOF
            cat <<"EOF"
 
 #define LTWRAPPER_OPTION_PREFIX         "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
 
-static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
 static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
-static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
-  /* argument is putenv-style "foo=bar", value of foo is set to bar */
-
-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
-static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
-  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
-
-static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
-static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
-  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
 
 int
 main (int argc, char *argv[])
@@ -3374,10 +4362,13 @@ main (int argc, char *argv[])
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+  newargz = XMALLOC (char *, argc + 1);
 
-  /* very simple arg parsing; don't want to rely on getopt */
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
   for (i = 1; i < argc; i++)
     {
       if (strcmp (argv[i], dumpscript_opt) == 0)
@@ -3391,25 +4382,57 @@ EOF
              esac
 
            cat <<"EOF"
-         printf ("%s", script_text_part1);
-         printf ("%s", script_text_part2);
+         lt_dump_script (stdout);
          return 0;
        }
+      if (strcmp (argv[i], debug_opt) == 0)
+       {
+          lt_debug = 1;
+          continue;
+       }
+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+                   "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
     }
+  newargz[++newargc] = NULL;
+
+EOF
+           cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+           cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
-  newargz = XMALLOC (char *, argc + 1);
   tmp_pathspec = find_executable (argv[0]);
   if (tmp_pathspec == NULL)
-    lt_fatal ("Couldn't find %s", argv[0]);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
-                         tmp_pathspec));
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+                 tmp_pathspec);
 
   actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
-                         actual_cwrapper_path));
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+                 actual_cwrapper_path);
   XFREE (tmp_pathspec);
 
-  actual_cwrapper_name = xstrdupbase_name (actual_cwrapper_path));
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   strendzap (actual_cwrapper_path, actual_cwrapper_name);
 
   /* wrapper name transforms */
@@ -3427,8 +4450,9 @@ EOF
   target_name = tmp_pathspec;
   tmp_pathspec = 0;
 
-  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
-                         target_name));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(main) libtool target name: %s\n",
+                 target_name);
 EOF
 
            cat <<EOF
@@ -3478,80 +4502,19 @@ EOF
 
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
-        {
-          if (argv[i][env_set_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_set_opt_len + 1;
-              lt_opt_process_env_set (p);
-            }
-          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_set (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_set_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
-        {
-          if (argv[i][env_prepend_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_prepend_opt_len + 1;
-              lt_opt_process_env_prepend (p);
-            }
-          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_prepend_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
-        {
-          if (argv[i][env_append_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_append_opt_len + 1;
-              lt_opt_process_env_append (p);
-            }
-          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_append (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_append_opt);
-          continue;
-        }
-      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal ("Unrecognized option in %s namespace: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+                 nonnull (lt_argv_zero));
   for (i = 0; i < newargc; i++)
     {
-      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+                     i, nonnull (newargz[i]));
     }
 
 EOF
@@ -3560,11 +4523,14 @@ EOF
              mingw*)
                cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
   rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
-      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      lt_debugprintf (__FILE__, __LINE__,
+                     "(main) failed to launch target \"%s\": %s\n",
+                     lt_argv_zero, nonnull (strerror (errno)));
       return 127;
     }
   return rval;
@@ -3586,7 +4552,7 @@ xmalloc (size_t num)
 {
   void *p = (void *) malloc (num);
   if (!p)
-    lt_fatal ("Memory exhausted");
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
 
   return p;
 }
@@ -3620,8 +4586,8 @@ check_executable (const char *path)
 {
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
-                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3638,8 +4604,8 @@ make_executable (const char *path)
   int rval = 0;
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
-                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3665,8 +4631,8 @@ find_executable (const char *wrapper)
   int tmp_len;
   char *concat_name;
 
-  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
-                         wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
 
   if ((wrapper == NULL) || (*wrapper == '\0'))
     return NULL;
@@ -3719,7 +4685,8 @@ find_executable (const char *wrapper)
                {
                  /* empty path: current directory */
                  if (getcwd (tmp, LT_PATHMAX) == NULL)
-                   lt_fatal ("getcwd failed");
+                   lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
                  tmp_len = strlen (tmp);
                  concat_name =
                    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3744,7 +4711,8 @@ find_executable (const char *wrapper)
     }
   /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
   tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);
@@ -3770,8 +4738,9 @@ chase_symlinks (const char *pathspec)
   int has_symlinks = 0;
   while (strlen (tmp_pathspec) && !has_symlinks)
     {
-      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
-                             tmp_pathspec));
+      lt_debugprintf (__FILE__, __LINE__,
+                     "checking path component for symlinks: %s\n",
+                     tmp_pathspec);
       if (lstat (tmp_pathspec, &s) == 0)
        {
          if (S_ISLNK (s.st_mode) != 0)
@@ -3793,8 +4762,9 @@ chase_symlinks (const char *pathspec)
        }
       else
        {
-         char *errstr = strerror (errno);
-         lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+         lt_fatal (__FILE__, __LINE__,
+                   "error accessing file \"%s\": %s",
+                   tmp_pathspec, nonnull (strerror (errno)));
        }
     }
   XFREE (tmp_pathspec);
@@ -3807,7 +4777,8 @@ chase_symlinks (const char *pathspec)
   tmp_pathspec = realpath (pathspec, buf);
   if (tmp_pathspec == 0)
     {
-      lt_fatal ("Could not follow symlinks for %s", pathspec);
+      lt_fatal (__FILE__, __LINE__,
+               "could not follow symlinks for %s", pathspec);
     }
   return xstrdup (tmp_pathspec);
 #endif
@@ -3833,11 +4804,25 @@ strendzap (char *str, const char *pat)
   return str;
 }
 
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
 static void
-lt_error_core (int exit_status, const char *mode,
+lt_error_core (int exit_status, const char *file,
+              int line, const char *mode,
               const char *message, va_list ap)
 {
-  fprintf (stderr, "%s: %s: ", program_name, mode);
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   vfprintf (stderr, message, ap);
   fprintf (stderr, ".\n");
 
@@ -3846,20 +4831,32 @@ lt_error_core (int exit_status, const char *mode,
 }
 
 void
-lt_fatal (const char *message, ...)
+lt_fatal (const char *file, int line, const char *message, ...)
 {
   va_list ap;
   va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   va_end (ap);
 }
 
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
 void
 lt_setenv (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
   {
 #ifdef HAVE_SETENV
     /* always make a copy, for consistency with !HAVE_SETENV */
@@ -3904,95 +4901,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
   return new_value;
 }
 
-int
-lt_split_name_value (const char *arg, char** name, char** value)
-{
-  const char *p;
-  int len;
-  if (!arg || !*arg)
-    return 1;
-
-  p = strchr (arg, (int)'=');
-
-  if (!p)
-    return 1;
-
-  *value = xstrdup (++p);
-
-  len = strlen (arg) - strlen (*value);
-  *name = XMALLOC (char, len);
-  strncpy (*name, arg, len-1);
-  (*name)[len - 1] = '\0';
-
-  return 0;
-}
-
-void
-lt_opt_process_env_set (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
-    }
-
-  lt_setenv (name, value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_prepend (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 0);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_append (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 1);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
 void
 lt_update_exe_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4011,9 +4925,9 @@ lt_update_exe_path (const char *name, const char *value)
 void
 lt_update_lib_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4023,11 +4937,158 @@ lt_update_lib_path (const char *name, const char *value)
     }
 }
 
+EOF
+           case $host_os in
+             mingw*)
+               cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+       new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+       {
+         int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+         size_t length;
+         unsigned int backslashes;
+         const char *s;
+         char *quoted_string;
+         char *p;
+
+         length = 0;
+         backslashes = 0;
+         if (quote_around)
+           length++;
+         for (s = string; *s != '\0'; s++)
+           {
+             char c = *s;
+             if (c == '"')
+               length += backslashes + 1;
+             length++;
+             if (c == '\\')
+               backslashes++;
+             else
+               backslashes = 0;
+           }
+         if (quote_around)
+           length += backslashes + 1;
+
+         quoted_string = XMALLOC (char, length + 1);
+
+         p = quoted_string;
+         backslashes = 0;
+         if (quote_around)
+           *p++ = '"';
+         for (s = string; *s != '\0'; s++)
+           {
+             char c = *s;
+             if (c == '"')
+               {
+                 unsigned int j;
+                 for (j = backslashes + 1; j > 0; j--)
+                   *p++ = '\\';
+               }
+             *p++ = c;
+             if (c == '\\')
+               backslashes++;
+             else
+               backslashes = 0;
+           }
+         if (quote_around)
+           {
+             unsigned int j;
+             for (j = backslashes; j > 0; j--)
+               *p++ = '\\';
+             *p++ = '"';
+           }
+         *p = '\0';
+
+         new_argv[i] = quoted_string;
+       }
+      else
+       new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+EOF
+               ;;
+           esac
 
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+           func_emit_wrapper yes |
+             $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
+            cat <<"EOF"
+}
 EOF
 }
 # end: func_emit_cwrapperexe_src
 
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $opt_debug
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
@@ -4072,6 +5133,7 @@ func_mode_link ()
     new_inherited_linker_flags=
 
     avoid_version=no
+    bindir=
     dlfiles=
     dlprefiles=
     dlself=no
@@ -4164,6 +5226,11 @@ func_mode_link ()
        esac
 
        case $prev in
+       bindir)
+         bindir="$arg"
+         prev=
+         continue
+         ;;
        dlfiles|dlprefiles)
          if test "$preload" = no; then
            # Add the symbol object into the linking commands.
@@ -4195,9 +5262,9 @@ func_mode_link ()
            ;;
          *)
            if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
+             func_append dlfiles " $arg"
            else
-             dlprefiles="$dlprefiles $arg"
+             func_append dlprefiles " $arg"
            fi
            prev=
            continue
@@ -4221,7 +5288,7 @@ func_mode_link ()
            *-*-darwin*)
              case "$deplibs " in
                *" $qarg.ltframework "*) ;;
-               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+               *) func_append deplibs " $qarg.ltframework" # this is fixed later
                   ;;
              esac
              ;;
@@ -4240,7 +5307,7 @@ func_mode_link ()
            moreargs=
            for fil in `cat "$save_arg"`
            do
-#            moreargs="$moreargs $fil"
+#            func_append moreargs " $fil"
              arg=$fil
              # A libtool-controlled object.
 
@@ -4269,7 +5336,7 @@ func_mode_link ()
 
                  if test "$prev" = dlfiles; then
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
+                     func_append dlfiles " $pic_object"
                      prev=
                      continue
                    else
@@ -4281,7 +5348,7 @@ func_mode_link ()
                  # CHECK ME:  I think I busted this.  -Ossama
                  if test "$prev" = dlprefiles; then
                    # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
+                   func_append dlprefiles " $pic_object"
                    prev=
                  fi
 
@@ -4351,12 +5418,12 @@ func_mode_link ()
          if test "$prev" = rpath; then
            case "$rpath " in
            *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
+           *) func_append rpath " $arg" ;;
            esac
          else
            case "$xrpath " in
            *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
+           *) func_append xrpath " $arg" ;;
            esac
          fi
          prev=
@@ -4368,28 +5435,28 @@ func_mode_link ()
          continue
          ;;
        weak)
-         weak_libs="$weak_libs $arg"
+         func_append weak_libs " $arg"
          prev=
          continue
          ;;
        xcclinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xcompiler)
-         compiler_flags="$compiler_flags $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $wl$qarg"
          prev=
          func_append compile_command " $wl$qarg"
          func_append finalize_command " $wl$qarg"
@@ -4425,6 +5492,11 @@ func_mode_link ()
        continue
        ;;
 
+      -bindir)
+       prev=bindir
+       continue
+       ;;
+
       -dlopen)
        prev=dlfiles
        continue
@@ -4475,15 +5547,16 @@ func_mode_link ()
        ;;
 
       -L*)
-       func_stripname '-L' '' "$arg"
-       dir=$func_stripname_result
-       if test -z "$dir"; then
+       func_stripname "-L" '' "$arg"
+       if test -z "$func_stripname_result"; then
          if test "$#" -gt 0; then
            func_fatal_error "require no space between \`-L' and \`$1'"
          else
            func_fatal_error "need path for \`-L' option"
          fi
        fi
+       func_resolve_sysroot "$func_stripname_result"
+       dir=$func_resolve_sysroot_result
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4495,24 +5568,30 @@ func_mode_link ()
          ;;
        esac
        case "$deplibs " in
-       *" -L$dir "*) ;;
+       *" -L$dir "* | *" $arg "*)
+         # Will only happen for absolute or sysroot arguments
+         ;;
        *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
+         # Preserve sysroot, but never include relative directories
+         case $dir in
+           [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+           *) func_append deplibs " -L$dir" ;;
+         esac
+         func_append lib_search_path " $dir"
          ;;
        esac
        case $host in
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-         testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+         testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$dir:"*) ;;
          ::) dllsearchpath=$dir;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
+         *) func_append dllsearchpath ":$dir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -4522,7 +5601,7 @@ func_mode_link ()
       -l*)
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # These systems don't actually have a C or math library (as such)
            continue
            ;;
@@ -4536,7 +5615,7 @@ func_mode_link ()
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C and math libraries are in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            continue
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4556,7 +5635,7 @@ func_mode_link ()
           ;;
         esac
        fi
-       deplibs="$deplibs $arg"
+       func_append deplibs " $arg"
        continue
        ;;
 
@@ -4568,21 +5647,22 @@ func_mode_link ()
       # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-       compiler_flags="$compiler_flags $arg"
+      -model|-arch|-isysroot|--sysroot)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        prev=xcompiler
        continue
        ;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-       compiler_flags="$compiler_flags $arg"
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        case "$new_inherited_linker_flags " in
            *" $arg "*) ;;
-           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+           * ) func_append new_inherited_linker_flags " $arg" ;;
        esac
        continue
        ;;
@@ -4649,13 +5729,17 @@ func_mode_link ()
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
+       =*)
+         func_stripname '=' '' "$dir"
+         dir=$lt_sysroot$func_stripname_result
+         ;;
        *)
          func_fatal_error "only absolute run-paths are allowed"
          ;;
        esac
        case "$xrpath " in
        *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
+       *) func_append xrpath " $dir" ;;
        esac
        continue
        ;;
@@ -4708,8 +5792,8 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $func_quote_for_eval_result"
+         func_append arg " $func_quote_for_eval_result"
+         func_append compiler_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -4724,9 +5808,9 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-         linker_flags="$linker_flags $func_quote_for_eval_result"
+         func_append arg " $wl$func_quote_for_eval_result"
+         func_append compiler_flags " $wl$func_quote_for_eval_result"
+         func_append linker_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -4754,23 +5838,27 @@ func_mode_link ()
        arg="$func_quote_for_eval_result"
        ;;
 
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # @file GCC response files
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
         func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
+        func_append compiler_flags " $arg"
         continue
         ;;
 
@@ -4782,7 +5870,7 @@ func_mode_link ()
 
       *.$objext)
        # A standard object.
-       objs="$objs $arg"
+       func_append objs " $arg"
        ;;
 
       *.lo)
@@ -4813,7 +5901,7 @@ func_mode_link ()
 
            if test "$prev" = dlfiles; then
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
+               func_append dlfiles " $pic_object"
                prev=
                continue
              else
@@ -4825,7 +5913,7 @@ func_mode_link ()
            # CHECK ME:  I think I busted this.  -Ossama
            if test "$prev" = dlprefiles; then
              # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
+             func_append dlprefiles " $pic_object"
              prev=
            fi
 
@@ -4870,24 +5958,25 @@ func_mode_link ()
 
       *.$libext)
        # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
+       func_append deplibs " $arg"
+       func_append old_deplibs " $arg"
        continue
        ;;
 
       *.la)
        # A libtool-controlled library.
 
+       func_resolve_sysroot "$arg"
        if test "$prev" = dlfiles; then
          # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
+         func_append dlfiles " $func_resolve_sysroot_result"
          prev=
        elif test "$prev" = dlprefiles; then
          # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
+         func_append dlprefiles " $func_resolve_sysroot_result"
          prev=
        else
-         deplibs="$deplibs $arg"
+         func_append deplibs " $func_resolve_sysroot_result"
        fi
        continue
        ;;
@@ -4925,7 +6014,7 @@ func_mode_link ()
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
@@ -4934,6 +6023,8 @@ func_mode_link ()
 
     func_dirname "$output" "/" ""
     output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
     func_mkdir_p "$output_objdir"
 
@@ -4954,12 +6045,12 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
+      if $opt_preserve_dup_deps ; then
        case "$libs " in
-       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       *" $deplib "*) func_append specialdeplibs " $deplib" ;;
        esac
       fi
-      libs="$libs $deplib"
+      func_append libs " $deplib"
     done
 
     if test "$linkmode" = lib; then
@@ -4972,9 +6063,9 @@ func_mode_link ()
       if $opt_duplicate_compiler_generated_deps; then
        for pre_post_dep in $predeps $postdeps; do
          case "$pre_post_deps " in
-         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
          esac
-         pre_post_deps="$pre_post_deps $pre_post_dep"
+         func_append pre_post_deps " $pre_post_dep"
        done
       fi
       pre_post_deps=
@@ -5044,17 +6135,19 @@ func_mode_link ()
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
          dependency_libs=
+         func_resolve_sysroot "$lib"
          case $lib in
-         *.la) func_source "$lib" ;;
+         *.la) func_source "$func_resolve_sysroot_result" ;;
          esac
 
          # Collect preopened libtool deplibs, except any this library
          # has declared as weak libs
          for deplib in $dependency_libs; do
-            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+           func_basename "$deplib"
+            deplib_base=$func_basename_result
            case " $weak_libs " in
            *" $deplib_base "*) ;;
-           *) deplibs="$deplibs $deplib" ;;
+           *) func_append deplibs " $deplib" ;;
            esac
          done
        done
@@ -5070,16 +6163,17 @@ func_mode_link ()
        lib=
        found=no
        case $deplib in
-       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
          if test "$linkmode,$pass" = "prog,link"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
-           compiler_flags="$compiler_flags $deplib"
+           func_append compiler_flags " $deplib"
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5164,7 +6258,7 @@ func_mode_link ()
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5177,7 +6271,8 @@ func_mode_link ()
            test "$pass" = conv && continue
            newdependency_libs="$deplib $newdependency_libs"
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          prog)
            if test "$pass" = conv; then
@@ -5191,7 +6286,8 @@ func_mode_link ()
              finalize_deplibs="$deplib $finalize_deplibs"
            fi
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          *)
            func_warning "\`-L' is ignored for archives/objects"
@@ -5202,17 +6298,21 @@ func_mode_link ()
        -R*)
          if test "$pass" = link; then
            func_stripname '-R' '' "$deplib"
-           dir=$func_stripname_result
+           func_resolve_sysroot "$func_stripname_result"
+           dir=$func_resolve_sysroot_result
            # Make sure the xrpath contains only unique directories.
            case "$xrpath " in
            *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
+           *) func_append xrpath " $dir" ;;
            esac
          fi
          deplibs="$deplib $deplibs"
          continue
          ;;
-       *.la) lib="$deplib" ;;
+       *.la)
+         func_resolve_sysroot "$deplib"
+         lib=$func_resolve_sysroot_result
+         ;;
        *.$libext)
          if test "$pass" = conv; then
            deplibs="$deplib $deplibs"
@@ -5230,7 +6330,7 @@ func_mode_link ()
                match_pattern*)
                  set dummy $deplibs_check_method; shift
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-                 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+                 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
                    | $EGREP "$match_pattern_regex" > /dev/null; then
                    valid_a_lib=yes
                  fi
@@ -5240,15 +6340,15 @@ func_mode_link ()
                ;;
              esac
              if test "$valid_a_lib" != yes; then
-               $ECHO
+               echo
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because the file extensions .$libext of this argument makes me believe"
-               $ECHO "*** that it is just a static archive that I should not use here."
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because the file extensions .$libext of this argument makes me believe"
+               echo "*** that it is just a static archive that I should not use here."
              else
-               $ECHO
+               echo
                $ECHO "*** Warning: Linking the shared library $output against the"
                $ECHO "*** static library $deplib is not portable!"
                deplibs="$deplib $deplibs"
@@ -5275,11 +6375,11 @@ func_mode_link ()
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
              # If there is no dlopen support or we're linking statically,
              # we need to preload.
-             newdlprefiles="$newdlprefiles $deplib"
+             func_append newdlprefiles " $deplib"
              compile_deplibs="$deplib $compile_deplibs"
              finalize_deplibs="$deplib $finalize_deplibs"
            else
-             newdlfiles="$newdlfiles $deplib"
+             func_append newdlfiles " $deplib"
            fi
          fi
          continue
@@ -5321,20 +6421,20 @@ func_mode_link ()
 
        # Convert "-framework foo" to "foo.ltframework"
        if test -n "$inherited_linker_flags"; then
-         tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+         tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
            case " $new_inherited_linker_flags " in
              *" $tmp_inherited_linker_flag "*) ;;
-             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+             *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
            esac
          done
        fi
-       dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        if test "$linkmode,$pass" = "lib,link" ||
           test "$linkmode,$pass" = "prog,scan" ||
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+         test -n "$dlopen" && func_append dlfiles " $dlopen"
+         test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
        fi
 
        if test "$pass" = conv; then
@@ -5345,17 +6445,17 @@ func_mode_link ()
              func_fatal_error "cannot find name of link library for \`$lib'"
            fi
            # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
+           func_append convenience " $ladir/$objdir/$old_library"
+           func_append old_convenience " $ladir/$objdir/$old_library"
            tmp_libs=
            for deplib in $dependency_libs; do
              deplibs="$deplib $deplibs"
-             if $opt_duplicate_deps ; then
+             if $opt_preserve_dup_deps ; then
                case "$tmp_libs " in
-               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+               *" $deplib "*) func_append specialdeplibs " $deplib" ;;
                esac
              fi
-             tmp_libs="$tmp_libs $deplib"
+             func_append tmp_libs " $deplib"
            done
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
@@ -5366,9 +6466,15 @@ func_mode_link ()
 
        # Get the name of the library we link against.
        linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
+       if test -n "$old_library" &&
+          { test "$prefer_static_libs" = yes ||
+            test "$prefer_static_libs,$installed" = "built,no"; }; then
+         linklib=$old_library
+       else
+         for l in $old_library $library_names; do
+           linklib="$l"
+         done
+       fi
        if test -z "$linklib"; then
          func_fatal_error "cannot find name of link library for \`$lib'"
        fi
@@ -5385,9 +6491,9 @@ func_mode_link ()
            # statically, we need to preload.  We also need to preload any
            # dependent libraries so libltdl's deplib preloader doesn't
            # bomb out in the load deplibs phase.
-           dlprefiles="$dlprefiles $lib $dependency_libs"
+           func_append dlprefiles " $lib $dependency_libs"
          else
-           newdlfiles="$newdlfiles $lib"
+           func_append newdlfiles " $lib"
          fi
          continue
        fi # $pass = dlopen
@@ -5409,14 +6515,14 @@ func_mode_link ()
 
        # Find the relevant object directory and library name.
        if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+         if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
            func_warning "library \`$lib' was moved."
            dir="$ladir"
            absdir="$abs_ladir"
            libdir="$abs_ladir"
          else
-           dir="$libdir"
-           absdir="$libdir"
+           dir="$lt_sysroot$libdir"
+           absdir="$lt_sysroot$libdir"
          fi
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
        else
@@ -5424,12 +6530,12 @@ func_mode_link ()
            dir="$ladir"
            absdir="$abs_ladir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          else
            dir="$ladir/$objdir"
            absdir="$abs_ladir/$objdir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          fi
        fi # $installed = yes
        func_stripname 'lib' '.la' "$laname"
@@ -5440,20 +6546,46 @@ func_mode_link ()
          if test -z "$libdir" && test "$linkmode" = prog; then
            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
          fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-           # Keep a list of preopened convenience libraries to check
-           # that they are being used correctly in the link pass.
-           test -z "$libdir" && \
-               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
+         case "$host" in
+           # special handling for platforms with PE-DLLs.
+           *cygwin* | *mingw* | *cegcc* )
+             # Linker will automatically link against shared library if both
+             # static and shared are present.  Therefore, ensure we extract
+             # symbols from the import library if a shared library is present
+             # (otherwise, the dlopen module name will be incorrect).  We do
+             # this by putting the import library name into $newdlprefiles.
+             # We recover the dlopen module name by 'saving' the la file
+             # name in a special purpose variable, and (later) extracting the
+             # dlname from the la file.
+             if test -n "$dlname"; then
+               func_tr_sh "$dir/$linklib"
+               eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+               func_append newdlprefiles " $dir/$linklib"
+             else
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             fi
+           ;;
+           * )
+             # Prefer using a static library (so that no silly _DYNAMIC symbols
+             # are required to link).
+             if test -n "$old_library"; then
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             # Otherwise, use the dlname, so that lt_dlopen finds it.
+             elif test -n "$dlname"; then
+               func_append newdlprefiles " $dir/$dlname"
+             else
+               func_append newdlprefiles " $dir/$linklib"
+             fi
+           ;;
+         esac
        fi # $pass = dlpreopen
 
        if test -z "$libdir"; then
@@ -5471,7 +6603,7 @@ func_mode_link ()
 
 
        if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
+         func_append newlib_search_path " $ladir"
          deplibs="$lib $deplibs"
 
          linkalldeplibs=no
@@ -5484,7 +6616,8 @@ func_mode_link ()
          for deplib in $dependency_libs; do
            case $deplib in
            -L*) func_stripname '-L' '' "$deplib"
-                newlib_search_path="$newlib_search_path $func_stripname_result"
+                func_resolve_sysroot "$func_stripname_result"
+                func_append newlib_search_path " $func_resolve_sysroot_result"
                 ;;
            esac
            # Need to link against all dependency_libs?
@@ -5495,12 +6628,12 @@ func_mode_link ()
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done # for deplib
          continue
        fi # $linkmode = prog...
@@ -5515,7 +6648,7 @@ func_mode_link ()
              # Make sure the rpath contains only unique directories.
              case "$temp_rpath:" in
              *"$absdir:"*) ;;
-             *) temp_rpath="$temp_rpath$absdir:" ;;
+             *) func_append temp_rpath "$absdir:" ;;
              esac
            fi
 
@@ -5527,7 +6660,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5536,7 +6669,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5561,12 +6694,12 @@ func_mode_link ()
          case $host in
          *cygwin* | *mingw* | *cegcc*)
              # No point in relinking DLLs because paths are not encoded
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=no
            ;;
          *)
            if test "$installed" = no; then
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=yes
            fi
            ;;
@@ -5583,7 +6716,7 @@ func_mode_link ()
            fi
          done
          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-           $ECHO
+           echo
            if test "$linkmode" = prog; then
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
            else
@@ -5601,7 +6734,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5610,7 +6743,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5664,7 +6797,7 @@ func_mode_link ()
            linklib=$newlib
          fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test "$linkmode" = prog || test "$mode" != relink; then
+         if test "$linkmode" = prog || test "$opt_mode" != relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -5686,9 +6819,9 @@ func_mode_link ()
                      if test "X$dlopenmodule" != "X$lib"; then
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
                        if test -z "$old_library" ; then
-                         $ECHO
-                         $ECHO "*** And there doesn't seem to be a static archive available"
-                         $ECHO "*** The link will probably fail, sorry"
+                         echo
+                         echo "*** And there doesn't seem to be a static archive available"
+                         echo "*** The link will probably fail, sorry"
                        else
                          add="$dir/$old_library"
                        fi
@@ -5715,12 +6848,12 @@ func_mode_link ()
                 test "$hardcode_direct_absolute" = no; then
                add="$dir/$linklib"
              elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
+               add_dir="-L$absdir"
                # Try looking first in the location we're being installed to.
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
                    [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                     func_append add_dir " -L$inst_prefix_dir$libdir"
                      ;;
                  esac
                fi
@@ -5742,7 +6875,7 @@ func_mode_link ()
            if test -n "$add_shlibpath"; then
              case :$compile_shlibpath: in
              *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             *) func_append compile_shlibpath "$add_shlibpath:" ;;
              esac
            fi
            if test "$linkmode" = prog; then
@@ -5756,13 +6889,13 @@ func_mode_link ()
                 test "$hardcode_shlibpath_var" = yes; then
                case :$finalize_shlibpath: in
                *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+               *) func_append finalize_shlibpath "$libdir:" ;;
                esac
              fi
            fi
          fi
 
-         if test "$linkmode" = prog || test "$mode" = relink; then
+         if test "$linkmode" = prog || test "$opt_mode" = relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -5776,7 +6909,7 @@ func_mode_link ()
            elif test "$hardcode_shlibpath_var" = yes; then
              case :$finalize_shlibpath: in
              *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+             *) func_append finalize_shlibpath "$libdir:" ;;
              esac
              add="-l$name"
            elif test "$hardcode_automatic" = yes; then
@@ -5793,7 +6926,7 @@ func_mode_link ()
              if test -n "$inst_prefix_dir"; then
                case $libdir in
                  [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                   func_append add_dir " -L$inst_prefix_dir$libdir"
                    ;;
                esac
              fi
@@ -5828,21 +6961,21 @@ func_mode_link ()
 
            # Just print a warning and add the library to dependency_libs so
            # that the program can be linked against the static library.
-           $ECHO
+           echo
            $ECHO "*** Warning: This system can not link to static lib archive $lib."
-           $ECHO "*** I have the capability to make that library automatically link in when"
-           $ECHO "*** you link to this library.  But I can only do this if you have a"
-           $ECHO "*** shared version of the library, which you do not appear to have."
+           echo "*** I have the capability to make that library automatically link in when"
+           echo "*** you link to this library.  But I can only do this if you have a"
+           echo "*** shared version of the library, which you do not appear to have."
            if test "$module" = yes; then
-             $ECHO "*** But as you try to build a module library, libtool will still create "
-             $ECHO "*** a static module, that should work as long as the dlopening application"
-             $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+             echo "*** But as you try to build a module library, libtool will still create "
+             echo "*** a static module, that should work as long as the dlopening application"
+             echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
              if test -z "$global_symbol_pipe"; then
-               $ECHO
-               $ECHO "*** However, this would only work if libtool was able to extract symbol"
-               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               $ECHO "*** not find such a program.  So, this module is probably useless."
-               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+               echo
+               echo "*** However, this would only work if libtool was able to extract symbol"
+               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** not find such a program.  So, this module is probably useless."
+               echo "*** \`nm' from GNU binutils and a full rebuild may help."
              fi
              if test "$build_old_libs" = no; then
                build_libtool_libs=module
@@ -5870,27 +7003,33 @@ func_mode_link ()
                   temp_xrpath=$func_stripname_result
                   case " $xrpath " in
                   *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
+                  *) func_append xrpath " $temp_xrpath";;
                   esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
+             *) func_append temp_deplibs " $libdir";;
              esac
            done
            dependency_libs="$temp_deplibs"
          fi
 
-         newlib_search_path="$newlib_search_path $absdir"
+         func_append newlib_search_path " $absdir"
          # Link against this library
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
          # ... and its dependency_libs
          tmp_libs=
          for deplib in $dependency_libs; do
            newdependency_libs="$deplib $newdependency_libs"
-           if $opt_duplicate_deps ; then
+           case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $func_resolve_sysroot_result"
          done
 
          if test "$link_all_deplibs" != no; then
@@ -5900,8 +7039,10 @@ func_mode_link ()
              case $deplib in
              -L*) path="$deplib" ;;
              *.la)
+               func_resolve_sysroot "$deplib"
+               deplib=$func_resolve_sysroot_result
                func_dirname "$deplib" "" "."
-               dir="$func_dirname_result"
+               dir=$func_dirname_result
                # We need an absolute path.
                case $dir in
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -5928,8 +7069,8 @@ func_mode_link ()
                       if test -z "$darwin_install_name"; then
                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
                      path=
                    fi
                  fi
@@ -5962,7 +7103,7 @@ func_mode_link ()
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
        else
-         compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        fi
       fi
       dependency_libs="$newdependency_libs"
@@ -5979,7 +7120,7 @@ func_mode_link ()
          for dir in $newlib_search_path; do
            case "$lib_search_path " in
            *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
+           *) func_append lib_search_path " $dir" ;;
            esac
          done
          newlib_search_path=
@@ -6037,10 +7178,10 @@ func_mode_link ()
            -L*)
              case " $tmp_libs " in
              *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
+             *) func_append tmp_libs " $deplib" ;;
              esac
              ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
+           *) func_append tmp_libs " $deplib" ;;
            esac
          done
          eval $var=\"$tmp_libs\"
@@ -6056,7 +7197,7 @@ func_mode_link ()
          ;;
        esac
        if test -n "$i" ; then
-         tmp_libs="$tmp_libs $i"
+         func_append tmp_libs " $i"
        fi
       done
       dependency_libs=$tmp_libs
@@ -6097,7 +7238,7 @@ func_mode_link ()
       # Now set the variables for building old libraries.
       build_libtool_libs=no
       oldlibs="$output"
-      objs="$objs$old_deplibs"
+      func_append objs "$old_deplibs"
       ;;
 
     lib)
@@ -6130,10 +7271,10 @@ func_mode_link ()
        if test "$deplibs_check_method" != pass_all; then
          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
        else
-         $ECHO
+         echo
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
          $ECHO "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
+         func_append libobjs " $objs"
        fi
       fi
 
@@ -6192,13 +7333,14 @@ func_mode_link ()
          # which has an extra 1 added just for fun
          #
          case $version_type in
+         # correct linux to gnu/linux during the next big refactor
          darwin|linux|osf|windows|none)
            func_arith $number_major + $number_minor
            current=$func_arith_result
            age="$number_minor"
            revision="$number_revision"
            ;;
-         freebsd-aout|freebsd-elf|sunos)
+         freebsd-aout|freebsd-elf|qnx|sunos)
            current="$number_major"
            revision="$number_minor"
            age="0"
@@ -6311,7 +7453,7 @@ func_mode_link ()
          versuffix="$major.$revision"
          ;;
 
-       linux)
+       linux) # correct to gnu/linux during the next big refactor
          func_arith $current - $age
          major=.$func_arith_result
          versuffix="$major.$age.$revision"
@@ -6334,7 +7476,7 @@ func_mode_link ()
          done
 
          # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
+         func_append verstring ":${current}.0"
          ;;
 
        qnx)
@@ -6402,10 +7544,10 @@ func_mode_link ()
       fi
 
       func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
+      func_append libobjs " $symfileobj"
       test "X$libobjs" = "X " && libobjs=
 
-      if test "$mode" != relink; then
+      if test "$opt_mode" != relink; then
        # Remove our outputs, but don't remove object files since they
        # may have been created when compiling PIC objects.
        removelist=
@@ -6421,7 +7563,7 @@ func_mode_link ()
                   continue
                 fi
               fi
-              removelist="$removelist $p"
+              func_append removelist " $p"
               ;;
            *) ;;
          esac
@@ -6432,27 +7574,28 @@ func_mode_link ()
 
       # Now set the variables for building old libraries.
       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
+       func_append oldlibs " $output_objdir/$libname.$libext"
 
        # Transform .lo files to .o files.
-       oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
       #for path in $notinst_path; do
-      #        lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
-      #        deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
-      #        dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #        lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #        deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #        dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
       #done
 
       if test -n "$xrpath"; then
        # If the user specified any rpath flags, then add them.
        temp_xrpath=
        for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
+         func_replace_sysroot "$libdir"
+         func_append temp_xrpath " -R$func_replace_sysroot_result"
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6466,7 +7609,7 @@ func_mode_link ()
       for lib in $old_dlfiles; do
        case " $dlprefiles $dlfiles " in
        *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
+       *) func_append dlfiles " $lib" ;;
        esac
       done
 
@@ -6476,19 +7619,19 @@ func_mode_link ()
       for lib in $old_dlprefiles; do
        case "$dlprefiles " in
        *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
+       *) func_append dlprefiles " $lib" ;;
        esac
       done
 
       if test "$build_libtool_libs" = yes; then
        if test -n "$rpath"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # these systems don't actually have a c library (as such)!
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C library is in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            ;;
          *-*-netbsd*)
            # Don't link with libc until the a.out ld.so is fixed.
@@ -6505,7 +7648,7 @@ func_mode_link ()
          *)
            # Add libc to deplibs on all other systems if necessary.
            if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
+             func_append deplibs " -lc"
            fi
            ;;
          esac
@@ -6554,7 +7697,7 @@ EOF
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                  case " $predeps $postdeps " in
                  *" $i "*)
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                    i=""
                    ;;
                  esac
@@ -6565,21 +7708,21 @@ EOF
                  set dummy $deplib_matches; shift
                  deplib_match=$1
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                  else
                    droppeddeps=yes
-                   $ECHO
+                   echo
                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                   $ECHO "*** I have the capability to make that library automatically link in when"
-                   $ECHO "*** you link to this library.  But I can only do this if you have a"
-                   $ECHO "*** shared version of the library, which I believe you do not have"
-                   $ECHO "*** because a test_compile did reveal that the linker did not use it for"
-                   $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+                   echo "*** I have the capability to make that library automatically link in when"
+                   echo "*** you link to this library.  But I can only do this if you have a"
+                   echo "*** shared version of the library, which I believe you do not have"
+                   echo "*** because a test_compile did reveal that the linker did not use it for"
+                   echo "*** its dynamic dependency list that programs get resolved with at runtime."
                  fi
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6597,7 +7740,7 @@ EOF
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                    case " $predeps $postdeps " in
                    *" $i "*)
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                      i=""
                      ;;
                    esac
@@ -6608,29 +7751,29 @@ EOF
                    set dummy $deplib_matches; shift
                    deplib_match=$1
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                    else
                      droppeddeps=yes
-                     $ECHO
+                     echo
                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                     $ECHO "*** I have the capability to make that library automatically link in when"
-                     $ECHO "*** you link to this library.  But I can only do this if you have a"
-                     $ECHO "*** shared version of the library, which you do not appear to have"
-                     $ECHO "*** because a test_compile did reveal that the linker did not use this one"
-                     $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+                     echo "*** I have the capability to make that library automatically link in when"
+                     echo "*** you link to this library.  But I can only do this if you have a"
+                     echo "*** shared version of the library, which you do not appear to have"
+                     echo "*** because a test_compile did reveal that the linker did not use this one"
+                     echo "*** as a dynamic dependency that programs can get resolved with at runtime."
                    fi
                  fi
                else
                  droppeddeps=yes
-                 $ECHO
+                 echo
                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-                 $ECHO "*** make it link in!  You will probably need to install it or some"
-                 $ECHO "*** library that it depends on before this library will be fully"
-                 $ECHO "*** functional.  Installing it before continuing would be even better."
+                 echo "*** make it link in!  You will probably need to install it or some"
+                 echo "*** library that it depends on before this library will be fully"
+                 echo "*** functional.  Installing it before continuing would be even better."
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6647,15 +7790,27 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
              fi
              if test -n "$a_deplib" ; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
+               if test -n "$file_magic_glob"; then
+                 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+               else
+                 libnameglob=$libname
+               fi
+               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 if test "$want_nocaseglob" = yes; then
+                   shopt -s nocaseglob
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                   $nocaseglob
+                 else
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                 fi
                  for potent_lib in $potential_libs; do
                      # Follow soft links.
                      if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6672,13 +7827,13 @@ EOF
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
                        case $potliblink in
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+                       *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
                        esac
                      done
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                         $SED -e 10q |
                         $EGREP "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
+                       func_append newdeplibs " $a_deplib"
                        a_deplib=""
                        break 2
                      fi
@@ -6687,12 +7842,12 @@ EOF
              fi
              if test -n "$a_deplib" ; then
                droppeddeps=yes
-               $ECHO
+               echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
                else
@@ -6703,7 +7858,7 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
@@ -6719,7 +7874,7 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
@@ -6730,9 +7885,9 @@ EOF
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                  for potent_lib in $potential_libs; do
                    potlib="$potent_lib" # see symlink-check above in file_magic test
-                   if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+                   if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                       $EGREP "$match_pattern_regex" > /dev/null; then
-                     newdeplibs="$newdeplibs $a_deplib"
+                     func_append newdeplibs " $a_deplib"
                      a_deplib=""
                      break 2
                    fi
@@ -6741,12 +7896,12 @@ EOF
              fi
              if test -n "$a_deplib" ; then
                droppeddeps=yes
-               $ECHO
+               echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
                else
@@ -6757,32 +7912,32 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
          ;;
        none | unknown | *)
          newdeplibs=""
-         tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
-             -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+         tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
            for i in $predeps $postdeps ; do
              # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
            done
          fi
-         if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
-            $GREP . >/dev/null; then
-           $ECHO
+         case $tmp_deplibs in
+         *[!\  \ ]*)
+           echo
            if test "X$deplibs_check_method" = "Xnone"; then
-             $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+             echo "*** Warning: inter-library dependencies are not supported in this platform."
            else
-             $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+             echo "*** Warning: inter-library dependencies are not known to be supported."
            fi
-           $ECHO "*** All declared inter-library dependencies are being dropped."
+           echo "*** All declared inter-library dependencies are being dropped."
            droppeddeps=yes
-         fi
+           ;;
+         esac
          ;;
        esac
        versuffix=$versuffix_save
@@ -6794,23 +7949,23 @@ EOF
        case $host in
        *-*-rhapsody* | *-*-darwin1.[012])
          # On Rhapsody replace the C library with the System framework
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
          ;;
        esac
 
        if test "$droppeddeps" = yes; then
          if test "$module" = yes; then
-           $ECHO
-           $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+           echo
+           echo "*** Warning: libtool could not satisfy all declared inter-library"
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-           $ECHO "*** a static module, that should work as long as the dlopening"
-           $ECHO "*** application is linked with the -dlopen flag."
+           echo "*** a static module, that should work as long as the dlopening"
+           echo "*** application is linked with the -dlopen flag."
            if test -z "$global_symbol_pipe"; then
-             $ECHO
-             $ECHO "*** However, this would only work if libtool was able to extract symbol"
-             $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             $ECHO "*** not find such a program.  So, this module is probably useless."
-             $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+             echo
+             echo "*** However, this would only work if libtool was able to extract symbol"
+             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             echo "*** not find such a program.  So, this module is probably useless."
+             echo "*** \`nm' from GNU binutils and a full rebuild may help."
            fi
            if test "$build_old_libs" = no; then
              oldlibs="$output_objdir/$libname.$libext"
@@ -6820,16 +7975,16 @@ EOF
              build_libtool_libs=no
            fi
          else
-           $ECHO "*** The inter-library dependencies that have been dropped here will be"
-           $ECHO "*** automatically added whenever a program is linked with this library"
-           $ECHO "*** or is declared to -dlopen it."
+           echo "*** The inter-library dependencies that have been dropped here will be"
+           echo "*** automatically added whenever a program is linked with this library"
+           echo "*** or is declared to -dlopen it."
 
            if test "$allow_undefined" = no; then
-             $ECHO
-             $ECHO "*** Since this library must not contain undefined symbols,"
-             $ECHO "*** because either the platform does not support them or"
-             $ECHO "*** it was explicitly requested with -no-undefined,"
-             $ECHO "*** libtool will only create a static version of it."
+             echo
+             echo "*** Since this library must not contain undefined symbols,"
+             echo "*** because either the platform does not support them or"
+             echo "*** it was explicitly requested with -no-undefined,"
+             echo "*** libtool will only create a static version of it."
              if test "$build_old_libs" = no; then
                oldlibs="$output_objdir/$libname.$libext"
                build_libtool_libs=module
@@ -6846,9 +8001,9 @@ EOF
       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in
        *-*-darwin*)
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
          ;;
       esac
 
@@ -6861,7 +8016,7 @@ EOF
        *)
          case " $deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -6871,10 +8026,10 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       deplibs="$new_libs"
@@ -6886,15 +8041,22 @@ EOF
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
+       # Remove ${wl} instances when linking with ld.
+       # FIXME: should test the right _cmds variable.
+       case $archive_cmds in
+         *\$LD\ *) wl= ;;
+        esac
        if test "$hardcode_into_libs" = yes; then
          # Hardcode the library paths
          hardcode_libdirs=
          dep_rpath=
          rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
          for libdir in $rpath; do
            if test -n "$hardcode_libdir_flag_spec"; then
              if test -n "$hardcode_libdir_separator"; then
+               func_replace_sysroot "$libdir"
+               libdir=$func_replace_sysroot_result
                if test -z "$hardcode_libdirs"; then
                  hardcode_libdirs="$libdir"
                else
@@ -6903,18 +8065,18 @@ EOF
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                    ;;
                  *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+                   func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                    ;;
                  esac
                fi
              else
                eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
+               func_append dep_rpath " $flag"
              fi
            elif test -n "$runpath_var"; then
              case "$perm_rpath " in
              *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
+             *) func_append perm_rpath " $libdir" ;;
              esac
            fi
          done
@@ -6922,17 +8084,13 @@ EOF
          if test -n "$hardcode_libdir_separator" &&
             test -n "$hardcode_libdirs"; then
            libdir="$hardcode_libdirs"
-           if test -n "$hardcode_libdir_flag_spec_ld"; then
-             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-           else
-             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-           fi
+           eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
          fi
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
            # We should set the runpath_var.
            rpath=
            for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
+             func_append rpath "$dir:"
            done
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
          fi
@@ -6940,7 +8098,7 @@ EOF
        fi
 
        shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
        if test -n "$shlibpath"; then
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
        fi
@@ -6966,18 +8124,18 @@ EOF
        linknames=
        for link
        do
-         linknames="$linknames $link"
+         func_append linknames " $link"
        done
 
        # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
        test "X$libobjs" = "X " && libobjs=
 
        delfiles=
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
          export_symbols="$output_objdir/$libname.uexp"
-         delfiles="$delfiles $export_symbols"
+         func_append delfiles " $export_symbols"
        fi
 
        orig_export_symbols=
@@ -7008,13 +8166,45 @@ EOF
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
+           for cmd1 in $cmds; do
              IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             func_len " $cmd"
-             len=$func_len_result
-             if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+             # Take the normal branch if the nm_file_list_spec branch
+             # doesn't work or if tool conversion is not needed.
+             case $nm_file_list_spec~$to_tool_file_cmd in
+               *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+                 try_normal_branch=yes
+                 eval cmd=\"$cmd1\"
+                 func_len " $cmd"
+                 len=$func_len_result
+                 ;;
+               *)
+                 try_normal_branch=no
+                 ;;
+             esac
+             if test "$try_normal_branch" = yes \
+                && { test "$len" -lt "$max_cmd_len" \
+                     || test "$max_cmd_len" -le -1; }
+             then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               func_basename "$output"
+               output_la=$func_basename_result
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               func_to_tool_file "$output"
+               libobjs=$nm_file_list_spec$func_to_tool_file_result
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 func_to_tool_file "$obj"
+                 $ECHO "$func_to_tool_file_result"
+               done > "$output"
+               eval cmd=\"$cmd1\"
                func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
                skipped_export=false
              else
                # The command line is too long to execute in one step.
@@ -7036,7 +8226,7 @@ EOF
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          tmp_export_symbols="$export_symbols"
          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-         $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+         $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
        fi
 
        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
@@ -7048,7 +8238,7 @@ EOF
          # global variables. join(1) would be nice here, but unfortunately
          # isn't a blessed tool.
          $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+         func_append delfiles " $export_symbols $output_objdir/$libname.filter"
          export_symbols=$output_objdir/$libname.def
          $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
        fi
@@ -7058,7 +8248,7 @@ EOF
          case " $convenience " in
          *" $test_deplib "*) ;;
          *)
-           tmp_deplibs="$tmp_deplibs $test_deplib"
+           func_append tmp_deplibs " $test_deplib"
            ;;
          esac
        done
@@ -7078,21 +8268,21 @@ EOF
            test "X$libobjs" = "X " && libobjs=
          else
            gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
+           func_append generated " $gentop"
 
            func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
+           func_append libobjs " $func_extract_archives_result"
            test "X$libobjs" = "X " && libobjs=
          fi
        fi
 
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
+         func_append linker_flags " $flag"
        fi
 
        # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
        fi
 
@@ -7137,7 +8327,8 @@ EOF
            save_libobjs=$libobjs
          fi
          save_output=$output
-         output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+         func_basename "$output"
+         output_la=$func_basename_result
 
          # Clear the reloadable object creation command queue and
          # initialize k to one.
@@ -7150,13 +8341,16 @@ EOF
          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
            output=${output_objdir}/${output_la}.lnkscript
            func_verbose "creating GNU ld script: $output"
-           $ECHO 'INPUT (' > $output
+           echo 'INPUT (' > $output
            for obj in $save_libobjs
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           $ECHO ')' >> $output
-           delfiles="$delfiles $output"
+           echo ')' >> $output
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$func_to_tool_file_result
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
            output=${output_objdir}/${output_la}.lnk
            func_verbose "creating linker input file list: $output"
@@ -7170,10 +8364,12 @@ EOF
            fi
            for obj
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           delfiles="$delfiles $output"
-           output=$firstobj\"$file_list_spec$output\"
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
          else
            if test -n "$save_libobjs"; then
              func_verbose "creating reloadable object files..."
@@ -7197,17 +8393,19 @@ EOF
                  # command to the queue.
                  if test "$k" -eq 1 ; then
                    # The first file doesn't have a previous command to add.
-                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+                   reload_objs=$objlist
+                   eval concat_cmds=\"$reload_cmds\"
                  else
                    # All subsequent reloadable object files will link in
                    # the last one created.
-                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+                   reload_objs="$objlist $last_robj"
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
                  fi
                  last_robj=$output_objdir/$output_la-${k}.$objext
                  func_arith $k + 1
                  k=$func_arith_result
                  output=$output_objdir/$output_la-${k}.$objext
-                 objlist=$obj
+                 objlist=" $obj"
                  func_len " $last_robj"
                  func_arith $len0 + $func_len_result
                  len=$func_arith_result
@@ -7217,11 +8415,12 @@ EOF
              # reloadable object file.  All subsequent reloadable object
              # files will link in the last one created.
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+             reload_objs="$objlist $last_robj"
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
              if test -n "$last_robj"; then
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
              fi
-             delfiles="$delfiles $output"
+             func_append delfiles " $output"
 
            else
              output=
@@ -7255,7 +8454,7 @@ EOF
                lt_exit=$?
 
                # Restore the uninstalled library and exit
-               if test "$mode" = relink; then
+               if test "$opt_mode" = relink; then
                  ( cd "$output_objdir" && \
                    $RM "${realname}T" && \
                    $MV "${realname}U" "$realname" )
@@ -7276,7 +8475,7 @@ EOF
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
              tmp_export_symbols="$export_symbols"
              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+             $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
            fi
 
            if test -n "$orig_export_symbols"; then
@@ -7288,7 +8487,7 @@ EOF
              # global variables. join(1) would be nice here, but unfortunately
              # isn't a blessed tool.
              $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             func_append delfiles " $export_symbols $output_objdir/$libname.filter"
              export_symbols=$output_objdir/$libname.def
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
            fi
@@ -7329,10 +8528,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         libobjs="$libobjs $func_extract_archives_result"
+         func_append libobjs " $func_extract_archives_result"
          test "X$libobjs" = "X " && libobjs=
        fi
 
@@ -7348,7 +8547,7 @@ EOF
            lt_exit=$?
 
            # Restore the uninstalled library and exit
-           if test "$mode" = relink; then
+           if test "$opt_mode" = relink; then
              ( cd "$output_objdir" && \
                $RM "${realname}T" && \
                $MV "${realname}U" "$realname" )
@@ -7360,7 +8559,7 @@ EOF
        IFS="$save_ifs"
 
        # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
          if test -n "$convenience"; then
@@ -7441,18 +8640,21 @@ EOF
       if test -n "$convenience"; then
        if test -n "$whole_archive_flag_spec"; then
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+         reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
        else
          gentop="$output_objdir/${obj}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $convenience
          reload_conv_objs="$reload_objs $func_extract_archives_result"
        fi
       fi
 
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
       output="$obj"
       func_execute_cmds "$reload_cmds" 'exit $?'
@@ -7512,8 +8714,8 @@ EOF
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
        # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
        ;;
       esac
 
@@ -7524,14 +8726,14 @@ EOF
        if test "$tagname" = CXX ; then
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
            10.[0123])
-             compile_command="$compile_command ${wl}-bind_at_load"
-             finalize_command="$finalize_command ${wl}-bind_at_load"
+             func_append compile_command " ${wl}-bind_at_load"
+             func_append finalize_command " ${wl}-bind_at_load"
            ;;
          esac
        fi
        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        ;;
       esac
 
@@ -7545,7 +8747,7 @@ EOF
        *)
          case " $compile_deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -7555,17 +8757,17 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       compile_deplibs="$new_libs"
 
 
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
 
       if test -n "$rpath$xrpath"; then
        # If the user specified any rpath flags, then add them.
@@ -7573,7 +8775,7 @@ EOF
          # This is the magic to use -rpath.
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
       fi
@@ -7592,18 +8794,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$perm_rpath " in
          *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
+         *) func_append perm_rpath " $libdir" ;;
          esac
        fi
        case $host in
@@ -7612,12 +8814,12 @@ EOF
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
          ::) dllsearchpath=$libdir;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
+         *) func_append dllsearchpath ":$libdir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -7643,18 +8845,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$finalize_perm_rpath " in
          *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+         *) func_append finalize_perm_rpath " $libdir" ;;
          esac
        fi
       done
@@ -7668,8 +8870,8 @@ EOF
 
       if test -n "$libobjs" && test "$build_old_libs" = yes; then
        # Transform all the library objects into standard objects.
-       compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+       finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
@@ -7681,15 +8883,15 @@ EOF
 
       wrappers_required=yes
       case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
       *cygwin* | *mingw* )
         if test "$build_libtool_libs" != yes; then
           wrappers_required=no
         fi
         ;;
-      *cegcc)
-        # Disable wrappers for cegcc, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
       *)
         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
           wrappers_required=no
@@ -7698,13 +8900,19 @@ EOF
       esac
       if test "$wrappers_required" = no; then
        # Replace the output file specification.
-       compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        link_command="$compile_command$compile_rpath"
 
        # We have no uninstalled library dependencies, so finalize right now.
        exit_status=0
        func_show_eval "$link_command" 'exit_status=$?'
 
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        # Delete the generated files.
        if test -f "$output_objdir/${outputname}S.${objext}"; then
          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -7727,7 +8935,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -7735,7 +8943,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -7745,11 +8953,18 @@ EOF
        # We don't need to create a wrapper script.
        link_command="$compile_var$compile_command$compile_rpath"
        # Replace the output file specification.
-       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        # Delete the old output file.
        $opt_dry_run || $RM $output
        # Link the executable and exit
        func_show_eval "$link_command" 'exit $?'
+
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        exit $EXIT_SUCCESS
       fi
 
@@ -7764,7 +8979,7 @@ EOF
        if test "$fast_install" != no; then
          link_command="$finalize_var$compile_command$finalize_rpath"
          if test "$fast_install" = yes; then
-           relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+           relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
          else
            # fast_install is set to needless
            relink_command=
@@ -7776,13 +8991,19 @@ EOF
       fi
 
       # Replace the output file specification.
-      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
       # Delete the old output files.
       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
       func_show_eval "$link_command" 'exit $?'
 
+      if test -n "$postlink_cmds"; then
+       func_to_tool_file "$output_objdir/$outputname"
+       postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+       func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
       # Now create the wrapper script.
       func_verbose "creating $output"
 
@@ -7800,18 +9021,7 @@ EOF
          fi
        done
        relink_command="(cd `pwd`; $relink_command)"
-       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $ECHO for shipping.
-      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
-       case $progpath in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-       esac
-       qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi
 
       # Only actually do things if not in dry run mode.
@@ -7891,7 +9101,7 @@ EOF
        else
          oldobjs="$old_deplibs $non_pic_objects"
          if test "$preload" = yes && test -f "$symfileobj"; then
-           oldobjs="$oldobjs $symfileobj"
+           func_append oldobjs " $symfileobj"
          fi
        fi
        addlibs="$old_convenience"
@@ -7899,10 +9109,10 @@ EOF
 
       if test -n "$addlibs"; then
        gentop="$output_objdir/${outputname}x"
-       generated="$generated $gentop"
+       func_append generated " $gentop"
 
        func_extract_archives $gentop $addlibs
-       oldobjs="$oldobjs $func_extract_archives_result"
+       func_append oldobjs " $func_extract_archives_result"
       fi
 
       # Do each command in the archive commands.
@@ -7913,10 +9123,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         oldobjs="$oldobjs $func_extract_archives_result"
+         func_append oldobjs " $func_extract_archives_result"
        fi
 
        # POSIX demands no paths to be encoded in archives.  We have
@@ -7932,9 +9142,9 @@ EOF
            done | sort | sort -uc >/dev/null 2>&1); then
          :
        else
-         $ECHO "copying selected object files to avoid basename conflicts..."
+         echo "copying selected object files to avoid basename conflicts..."
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
          func_mkdir_p "$gentop"
          save_oldobjs=$oldobjs
          oldobjs=
@@ -7958,18 +9168,30 @@ EOF
                esac
              done
              func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-             oldobjs="$oldobjs $gentop/$newobj"
+             func_append oldobjs " $gentop/$newobj"
              ;;
-           *) oldobjs="$oldobjs $obj" ;;
+           *) func_append oldobjs " $obj" ;;
            esac
          done
        fi
+       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+       tool_oldlib=$func_to_tool_file_result
        eval cmds=\"$old_archive_cmds\"
 
        func_len " $cmds"
        len=$func_len_result
        if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
          cmds=$old_archive_cmds
+       elif test -n "$archiver_list_spec"; then
+         func_verbose "using command file archive linking..."
+         for obj in $oldobjs
+         do
+           func_to_tool_file "$obj"
+           $ECHO "$func_to_tool_file_result"
+         done > $output_objdir/$libname.libcmd
+         func_to_tool_file "$output_objdir/$libname.libcmd"
+         oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+         cmds=$old_archive_cmds
        else
          # the command line is too long to link in one step, link in parts
          func_verbose "using piecewise archive linking..."
@@ -8043,7 +9265,7 @@ EOF
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
        relink_command=
       fi
@@ -8063,12 +9285,23 @@ EOF
              *.la)
                func_basename "$deplib"
                name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+               func_resolve_sysroot "$deplib"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
                test -z "$libdir" && \
                  func_fatal_error "\`$deplib' is not a valid libtool archive"
-               newdependency_libs="$newdependency_libs $libdir/$name"
+               func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             -L*)
+               func_stripname -L '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -L$func_replace_sysroot_result"
                ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
+             -R*)
+               func_stripname -R '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -R$func_replace_sysroot_result"
+               ;;
+             *) func_append newdependency_libs " $deplib" ;;
              esac
            done
            dependency_libs="$newdependency_libs"
@@ -8082,9 +9315,9 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlfiles="$newdlfiles $libdir/$name"
+               func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
-             *) newdlfiles="$newdlfiles $lib" ;;
+             *) func_append newdlfiles " $lib" ;;
              esac
            done
            dlfiles="$newdlfiles"
@@ -8101,7 +9334,7 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlprefiles="$newdlprefiles $libdir/$name"
+               func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              esac
            done
@@ -8113,7 +9346,7 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlfiles="$newdlfiles $abs"
+             func_append newdlfiles " $abs"
            done
            dlfiles="$newdlfiles"
            newdlprefiles=
@@ -8122,15 +9355,33 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlprefiles="$newdlprefiles $abs"
+             func_append newdlprefiles " $abs"
            done
            dlprefiles="$newdlprefiles"
          fi
          $RM $output
          # place dlname in correct position for cygwin
+         # In fact, it would be nice if we could use this code for all target
+         # systems that can't hard-code library paths into their executables
+         # and that have no shared library path variable independent of PATH,
+         # but it turns out we can't easily determine that from inspecting
+         # libtool variables, so we have to hard-code the OSs to which it
+         # applies here; at the moment, that means platforms that use the PE
+         # object format with DLL files.  See the long comment at the top of
+         # tests/bindir.at for full details.
          tdlname=$dlname
          case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+             # If a -bindir argument was supplied, place the dll there.
+             if test "x$bindir" != x ;
+             then
+               func_relative_path "$install_libdir" "$bindir"
+               tdlname=$func_relative_path_result$dlname
+             else
+               # Otherwise fall back on heuristic.
+               tdlname=../bin/$dlname
+             fi
+             ;;
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
@@ -8189,7 +9440,7 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     func_mode_link ${1+"$@"}
 
 
@@ -8209,9 +9460,9 @@ func_mode_uninstall ()
     for arg
     do
       case $arg in
-      -f) RM="$RM $arg"; rmforce=yes ;;
-      -*) RM="$RM $arg" ;;
-      *) files="$files $arg" ;;
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
       esac
     done
 
@@ -8220,24 +9471,23 @@ func_mode_uninstall ()
 
     rmdirs=
 
-    origobjdir="$objdir"
     for file in $files; do
       func_dirname "$file" "" "."
       dir="$func_dirname_result"
       if test "X$dir" = X.; then
-       objdir="$origobjdir"
+       odir="$objdir"
       else
-       objdir="$dir/$origobjdir"
+       odir="$dir/$objdir"
       fi
       func_basename "$file"
       name="$func_basename_result"
-      test "$mode" = uninstall && objdir="$dir"
+      test "$opt_mode" = uninstall && odir="$dir"
 
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
        case " $rmdirs " in
-         *" $objdir "*) ;;
-         *) rmdirs="$rmdirs $objdir" ;;
+         *" $odir "*) ;;
+         *) func_append rmdirs " $odir" ;;
        esac
       fi
 
@@ -8263,18 +9513,17 @@ func_mode_uninstall ()
 
          # Delete the libtool libraries and symlinks.
          for n in $library_names; do
-           rmfiles="$rmfiles $objdir/$n"
+           func_append rmfiles " $odir/$n"
          done
-         test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+         test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-         case "$mode" in
+         case "$opt_mode" in
          clean)
-           case "  $library_names " in
-           # "  " in the beginning catches empty $dlname
+           case " $library_names " in
            *" $dlname "*) ;;
-           *) rmfiles="$rmfiles $objdir/$dlname" ;;
+           *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
            esac
-           test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+           test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
            ;;
          uninstall)
            if test -n "$library_names"; then
@@ -8302,19 +9551,19 @@ func_mode_uninstall ()
          # Add PIC object to the list of files to remove.
          if test -n "$pic_object" &&
             test "$pic_object" != none; then
-           rmfiles="$rmfiles $dir/$pic_object"
+           func_append rmfiles " $dir/$pic_object"
          fi
 
          # Add non-PIC object to the list of files to remove.
          if test -n "$non_pic_object" &&
             test "$non_pic_object" != none; then
-           rmfiles="$rmfiles $dir/$non_pic_object"
+           func_append rmfiles " $dir/$non_pic_object"
          fi
        fi
        ;;
 
       *)
-       if test "$mode" = clean ; then
+       if test "$opt_mode" = clean ; then
          noexename=$name
          case $file in
          *.exe)
@@ -8324,7 +9573,7 @@ func_mode_uninstall ()
            noexename=$func_stripname_result
            # $file with .exe has already been added to rmfiles,
            # add $file without .exe
-           rmfiles="$rmfiles $file"
+           func_append rmfiles " $file"
            ;;
          esac
          # Do a test to see if this is a libtool program.
@@ -8333,7 +9582,7 @@ func_mode_uninstall ()
              func_ltwrapper_scriptname "$file"
              relink_command=
              func_source $func_ltwrapper_scriptname_result
-             rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+             func_append rmfiles " $func_ltwrapper_scriptname_result"
            else
              relink_command=
              func_source $dir/$noexename
@@ -8341,12 +9590,12 @@ func_mode_uninstall ()
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
-           rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
            if test "$fast_install" = yes && test -n "$relink_command"; then
-             rmfiles="$rmfiles $objdir/lt-$name"
+             func_append rmfiles " $odir/lt-$name"
            fi
            if test "X$noexename" != "X$name" ; then
-             rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+             func_append rmfiles " $odir/lt-${noexename}.c"
            fi
          fi
        fi
@@ -8354,7 +9603,6 @@ func_mode_uninstall ()
       esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
-    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
@@ -8366,16 +9614,16 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     func_mode_uninstall ${1+"$@"}
 
-test -z "$mode" && {
+test -z "$opt_mode" && {
   help="$generic_help"
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$mode'"
+  func_fatal_help "invalid operation mode \`$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
index 6835f33..b85cc25 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -147,6 +148,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -207,6 +209,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -216,9 +219,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -241,6 +247,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -313,10 +320,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -350,7 +360,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -486,10 +495,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 7199071..f85cc47 100644 (file)
@@ -131,7 +131,7 @@ else
        echo "*** The FreeType test program failed to run.  If your system uses"
        echo "*** shared libraries and they are installed outside the normal"
        echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
-       echo "*** (or whatever is appropiate for your system) is correctly set."
+       echo "*** (or whatever is appropriate for your system) is correctly set."
      fi
    fi
    FT2_CFLAGS=""
diff --git a/m4/glibc2.m4 b/m4/glibc2.m4
deleted file mode 100644 (file)
index e8f5bfe..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# glibc2.m4 serial 1
-dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# Test for the GNU C Library, version 2.0 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([gt_GLIBC2],
-  [
-    AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer,
-      ac_cv_gnu_library_2,
-      [AC_EGREP_CPP([Lucky GNU user],
-       [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2)
-  Lucky GNU user
- #endif
-#endif
-       ],
-       ac_cv_gnu_library_2=yes,
-       ac_cv_gnu_library_2=no)
-      ]
-    )
-    AC_SUBST(GLIBC2)
-    GLIBC2="$ac_cv_gnu_library_2"
-  ]
-)
diff --git a/m4/intl.m4 b/m4/intl.m4
deleted file mode 100644 (file)
index 934408b..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-# intl.m4 serial 8 (gettext-0.17)
-dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006.
-
-AC_PREREQ(2.52)
-
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
-  AC_REQUIRE([AC_PROG_CC])dnl
-  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-  AC_REQUIRE([gt_GLIBC2])dnl
-  AC_REQUIRE([AC_PROG_RANLIB])dnl
-  AC_REQUIRE([gl_VISIBILITY])dnl
-  AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
-  AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
-  AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
-  AC_REQUIRE([gt_TYPE_WINT_T])dnl
-  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-  AC_REQUIRE([gt_TYPE_INTMAX_T])
-  AC_REQUIRE([gt_PRINTF_POSIX])
-  AC_REQUIRE([gl_GLIBC21])dnl
-  AC_REQUIRE([gl_XSIZE])dnl
-  AC_REQUIRE([gt_INTL_MACOSX])dnl
-
-  AC_CHECK_TYPE([ptrdiff_t], ,
-    [AC_DEFINE([ptrdiff_t], [long],
-       [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
-    ])
-  AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
-  AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen])
-
-  dnl Use the _snprintf function only if it is declared (because on NetBSD it
-  dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-  gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
-  gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
-
-  dnl Use the *_unlocked functions only if they are declared.
-  dnl (because some of them were defined without being declared in Solaris
-  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
-  dnl on Solaris 2.5.1 to run on Solaris 2.6).
-  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
-  gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
-
-  case $gt_cv_func_printf_posix in
-    *yes) HAVE_POSIX_PRINTF=1 ;;
-    *) HAVE_POSIX_PRINTF=0 ;;
-  esac
-  AC_SUBST([HAVE_POSIX_PRINTF])
-  if test "$ac_cv_func_asprintf" = yes; then
-    HAVE_ASPRINTF=1
-  else
-    HAVE_ASPRINTF=0
-  fi
-  AC_SUBST([HAVE_ASPRINTF])
-  if test "$ac_cv_func_snprintf" = yes; then
-    HAVE_SNPRINTF=1
-  else
-    HAVE_SNPRINTF=0
-  fi
-  AC_SUBST([HAVE_SNPRINTF])
-  if test "$ac_cv_func_wprintf" = yes; then
-    HAVE_WPRINTF=1
-  else
-    HAVE_WPRINTF=0
-  fi
-  AC_SUBST([HAVE_WPRINTF])
-
-  AM_LANGINFO_CODESET
-  gt_LC_MESSAGES
-
-  dnl Compilation on mingw and Cygwin needs special Makefile rules, because
-  dnl 1. when we install a shared library, we must arrange to export
-  dnl    auxiliary pointer variables for every exported variable,
-  dnl 2. when we install a shared library and a static library simultaneously,
-  dnl    the include file specifies __declspec(dllimport) and therefore we
-  dnl    must arrange to define the auxiliary pointer variables for the
-  dnl    exported variables _also_ in the static library.
-  if test "$enable_shared" = yes; then
-    case "$host_os" in
-      mingw* | cygwin*) is_woe32dll=yes ;;
-      *) is_woe32dll=no ;;
-    esac
-  else
-    is_woe32dll=no
-  fi
-  WOE32DLL=$is_woe32dll
-  AC_SUBST([WOE32DLL])
-
-  dnl On mingw and Cygwin, we can activate special Makefile rules which add
-  dnl version information to the shared libraries and executables.
-  case "$host_os" in
-    mingw* | cygwin*) is_woe32=yes ;;
-    *) is_woe32=no ;;
-  esac
-  WOE32=$is_woe32
-  AC_SUBST([WOE32])
-  if test $WOE32 = yes; then
-    dnl Check for a program that compiles Windows resource files.
-    AC_CHECK_TOOL([WINDRES], [windres])
-  fi
-
-  dnl Determine whether when creating a library, "-lc" should be passed to
-  dnl libtool or not. On many platforms, it is required for the libtool option
-  dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool
-  dnl in the *.la files - makes it impossible to create multithreaded programs,
-  dnl because libtool also reorders the -lc to come before the -pthread, and
-  dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>.
-  case "$host_os" in
-    hpux*) LTLIBC="" ;;
-    *)     LTLIBC="-lc" ;;
-  esac
-  AC_SUBST([LTLIBC])
-
-  dnl Rename some macros and functions used for locking.
-  AH_BOTTOM([
-#define __libc_lock_t                   gl_lock_t
-#define __libc_lock_define              gl_lock_define
-#define __libc_lock_define_initialized  gl_lock_define_initialized
-#define __libc_lock_init                gl_lock_init
-#define __libc_lock_lock                gl_lock_lock
-#define __libc_lock_unlock              gl_lock_unlock
-#define __libc_lock_recursive_t                   gl_recursive_lock_t
-#define __libc_lock_define_recursive              gl_recursive_lock_define
-#define __libc_lock_define_initialized_recursive  gl_recursive_lock_define_initialized
-#define __libc_lock_init_recursive                gl_recursive_lock_init
-#define __libc_lock_lock_recursive                gl_recursive_lock_lock
-#define __libc_lock_unlock_recursive              gl_recursive_lock_unlock
-#define glthread_in_use  libintl_thread_in_use
-#define glthread_lock_init     libintl_lock_init
-#define glthread_lock_lock     libintl_lock_lock
-#define glthread_lock_unlock   libintl_lock_unlock
-#define glthread_lock_destroy  libintl_lock_destroy
-#define glthread_rwlock_init     libintl_rwlock_init
-#define glthread_rwlock_rdlock   libintl_rwlock_rdlock
-#define glthread_rwlock_wrlock   libintl_rwlock_wrlock
-#define glthread_rwlock_unlock   libintl_rwlock_unlock
-#define glthread_rwlock_destroy  libintl_rwlock_destroy
-#define glthread_recursive_lock_init     libintl_recursive_lock_init
-#define glthread_recursive_lock_lock     libintl_recursive_lock_lock
-#define glthread_recursive_lock_unlock   libintl_recursive_lock_unlock
-#define glthread_recursive_lock_destroy  libintl_recursive_lock_destroy
-#define glthread_once                 libintl_once
-#define glthread_once_call            libintl_once_call
-#define glthread_once_singlethreaded  libintl_once_singlethreaded
-])
-])
-
-
-dnl Checks for the core files of the intl subdirectory:
-dnl   dcigettext.c
-dnl   eval-plural.h
-dnl   explodename.c
-dnl   finddomain.c
-dnl   gettextP.h
-dnl   gmo.h
-dnl   hash-string.h hash-string.c
-dnl   l10nflist.c
-dnl   libgnuintl.h.in (except the *printf stuff)
-dnl   loadinfo.h
-dnl   loadmsgcat.c
-dnl   localealias.c
-dnl   log.c
-dnl   plural-exp.h plural-exp.c
-dnl   plural.y
-dnl Used by libglocale.
-AC_DEFUN([gt_INTL_SUBDIR_CORE],
-[
-  AC_REQUIRE([AC_C_INLINE])dnl
-  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-  AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-  AC_REQUIRE([AC_FUNC_MMAP])dnl
-  AC_REQUIRE([gt_INTDIV0])dnl
-  AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
-  AC_REQUIRE([gt_INTTYPES_PRI])dnl
-  AC_REQUIRE([gl_LOCK])dnl
-
-  AC_TRY_LINK(
-    [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }],
-    [],
-    [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
-       [Define to 1 if the compiler understands __builtin_expect.])])
-
-  AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
-  AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
-    stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \
-    argz_next __fsetlocking])
-
-  dnl Use the *_unlocked functions only if they are declared.
-  dnl (because some of them were defined without being declared in Solaris
-  dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
-  dnl on Solaris 2.5.1 to run on Solaris 2.6).
-  dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
-  gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
-  gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
-
-  AM_ICONV
-
-  dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined,
-  dnl and a _NL_LOCALE_NAME macro always.
-  AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name,
-    [AC_TRY_LINK([#include <langinfo.h>
-#include <locale.h>],
-      [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));
-       return !cs;
-      ],
-      gt_cv_nl_locale_name=yes,
-      gt_cv_nl_locale_name=no)
-    ])
-  if test $gt_cv_nl_locale_name = yes; then
-    AC_DEFINE(HAVE_NL_LOCALE_NAME, 1,
-      [Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.])
-  fi
-
-  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-  dnl because plural.y uses bison specific features. It requires at least
-  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-  dnl compile.
-  dnl bison is only needed for the maintainer (who touches plural.y). But in
-  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-  dnl the rule in general Makefile. Now, some people carelessly touch the
-  dnl files or have a broken "make" program, hence the plural.c rule will
-  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-  dnl present or too old.
-  AC_CHECK_PROGS([INTLBISON], [bison])
-  if test -z "$INTLBISON"; then
-    ac_verc_fail=yes
-  else
-    dnl Found it, now check the version.
-    AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
-    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-    case $ac_prog_version in
-      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
-         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-    esac
-    AC_MSG_RESULT([$ac_prog_version])
-  fi
-  if test $ac_verc_fail = yes; then
-    INTLBISON=:
-  fi
-])
-
-
-dnl gt_CHECK_DECL(FUNC, INCLUDES)
-dnl Check whether a function is declared.
-AC_DEFUN([gt_CHECK_DECL],
-[
-  AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
-    [AC_TRY_COMPILE([$2], [
-#ifndef $1
-  char *p = (char *) $1;
-#endif
-], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
-  if test $ac_cv_have_decl_$1 = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-  AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
-    [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
-])
diff --git a/m4/intldir.m4 b/m4/intldir.m4
deleted file mode 100644 (file)
index 7a28843..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# intldir.m4 serial 1 (gettext-0.16)
-dnl Copyright (C) 2006 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-AC_PREREQ(2.52)
-
-dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory.
-AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], [])
diff --git a/m4/intmax.m4 b/m4/intmax.m4
deleted file mode 100644 (file)
index ce7a8a4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# intmax.m4 serial 3 (gettext-0.16)
-dnl Copyright (C) 2002-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether the system has the 'intmax_t' type, but don't attempt to
-dnl find a replacement if it is lacking.
-
-AC_DEFUN([gt_TYPE_INTMAX_T],
-[
-  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-  AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-  AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
-    [AC_TRY_COMPILE([
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
-],     [intmax_t x = -1;
-        return !x;],
-       gt_cv_c_intmax_t=yes,
-       gt_cv_c_intmax_t=no)])
-  if test $gt_cv_c_intmax_t = yes; then
-    AC_DEFINE(HAVE_INTMAX_T, 1,
-      [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
-  fi
-])
index a3fee53..828104c 100644 (file)
@@ -1,7 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -10,7 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -66,6 +68,7 @@ esac
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME],
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -138,6 +143,11 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -160,10 +170,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -179,7 +192,6 @@ fi
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -193,23 +205,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -250,6 +245,28 @@ _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -408,7 +425,7 @@ m4_define([_lt_decl_all_varnames],
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -418,7 +435,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE],
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -517,12 +534,20 @@ LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -533,9 +558,9 @@ done
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -543,16 +568,38 @@ for var in lt_decl_all_varnames([[ \
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
@@ -562,20 +609,11 @@ _LT_OUTPUT_LIBTOOL_INIT
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
@@ -601,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -646,15 +684,13 @@ chmod +x "$CONFIG_LT"
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
@@ -717,15 +753,12 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_XSI_SHELLFNS
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  _LT_PROG_REPLACE_SHELLFNS
 
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -770,6 +803,7 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],                 [_LT_LANG(C)],
   [C++],               [_LT_LANG(CXX)],
+  [Go],                        [_LT_LANG(GO)],
   [Java],              [_LT_LANG(GCJ)],
   [Fortran 77],                [_LT_LANG(F77)],
   [Fortran],           [_LT_LANG(FC)],
@@ -791,6 +825,31 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -821,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
        [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -831,11 +894,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
@@ -921,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -929,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        rm -rf libconftest.dylib*
        rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -940,6 +1012,34 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        [lt_cv_ld_exported_symbols_list=no])
        LDFLAGS="$save_LDFLAGS"
     ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -967,7 +1067,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -977,8 +1077,8 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -987,7 +1087,13 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -995,7 +1101,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -1011,203 +1117,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-        [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
 else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
 fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
 
-         if test "$prev" != 'sed 50q "[$]0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
 
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
 
-AC_SUBST(lt_ECHO)
-])
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -1236,7 +1281,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -1329,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -1354,14 +1412,47 @@ need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -1380,18 +1471,27 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
@@ -1416,15 +1516,15 @@ AC_CACHE_CHECK([$1], [$2],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
@@ -1464,7 +1564,7 @@ AC_CACHE_CHECK([$1], [$2],
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
@@ -1527,6 +1627,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -1552,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1591,8 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -1643,7 +1753,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -1684,7 +1794,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -1693,7 +1809,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -1869,16 +1989,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
@@ -2037,6 +2157,7 @@ m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
        [], [
@@ -2045,16 +2166,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -2067,7 +2195,7 @@ if test "$GCC" = yes; then
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -2087,7 +2215,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi])
@@ -2113,7 +2247,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2122,7 +2256,7 @@ aix3*)
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2175,7 +2309,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -2187,7 +2321,7 @@ beos*)
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2206,8 +2340,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -2228,36 +2363,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -2278,7 +2460,7 @@ m4_if([$1], [],[
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2286,10 +2468,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2297,7 +2475,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2315,7 +2493,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2335,12 +2513,26 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -2386,12 +2578,14 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2407,7 +2601,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -2444,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2454,16 +2648,21 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+        LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+        [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -2472,7 +2671,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -2516,7 +2715,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2585,7 +2784,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2610,7 +2809,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2634,7 +2833,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2665,7 +2864,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2675,7 +2874,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2717,6 +2916,8 @@ _LT_DECL([], [library_names_spec], [1],
     The last name is the one that the linker finds with -lNAME]])
 _LT_DECL([], [soname_spec], [1],
     [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
 _LT_DECL([], [postinstall_cmds], [2],
     [Command to use after installation of a shared archive])
 _LT_DECL([], [postuninstall_cmds], [2],
@@ -2829,6 +3030,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
@@ -2950,6 +3152,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -2958,8 +3165,8 @@ case $host_os in
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -3011,16 +3218,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -3050,6 +3259,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -3058,11 +3271,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -3083,7 +3296,7 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3162,6 +3375,21 @@ tpf*)
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -3169,7 +3397,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
@@ -3226,8 +3458,20 @@ if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
-  AC_SUBST([DUMPBIN])
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+  AC_SUBST([DUMPBIN])
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
   fi
@@ -3239,13 +3483,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
   [lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
   cat conftest.out >&AS_MESSAGE_LOG_FD
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -3260,6 +3504,67 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
 
 # LT_LIB_M
 # --------
@@ -3268,7 +3573,7 @@ AC_DEFUN([LT_LIB_M],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
@@ -3296,7 +3601,12 @@ m4_defun([_LT_COMPILER_NO_RTTI],
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
 if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
 
   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
     lt_cv_prog_compiler_rtti_exceptions,
@@ -3313,6 +3623,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
 AC_REQUIRE([LT_PATH_LD])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -3380,8 +3691,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3405,6 +3716,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -3417,6 +3729,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -3438,7 +3751,7 @@ _LT_EOF
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -3450,6 +3763,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -3461,7 +3786,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t@_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -3487,15 +3812,15 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
          if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
        fi
@@ -3528,6 +3853,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3538,6 +3870,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
@@ -3549,7 +3883,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -3600,6 +3933,11 @@ m4_if([$1], [CXX], [
       # DJGPP does not support shared libraries at all
       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
     interix[[3-9]]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -3649,6 +3987,12 @@ m4_if([$1], [CXX], [
          ;;
        esac
        ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       m4_if([$1], [GCJ], [],
+         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+       ;;
       dgux*)
        case $cc_basename in
          ec++*)
@@ -3738,8 +4082,8 @@ m4_if([$1], [CXX], [
            _LT_TAGVAR(lt_prog_compiler_pic, $1)=
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
            ;;
-         xlc* | xlC*)
-           # IBM XL 8.0 on PPC
+         xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+           # IBM XL 8.0, 9.0 on PPC and BlueGene
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -3801,7 +4145,7 @@ m4_if([$1], [CXX], [
        ;;
       solaris*)
        case $cc_basename in
-         CC*)
+         CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -3905,6 +4249,12 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -3947,6 +4297,15 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -4010,7 +4369,13 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+       # NAG Fortran compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -4022,25 +4387,40 @@ m4_if([$1], [CXX], [
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
-      xl*)
-       # IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+         ;;
        *Sun\ C*)
          # Sun C 5.9
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
          _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
          ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
-         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+        *Intel*\ [[CF]]*Compiler*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+         ;;
+       *Portland\ Group*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
          ;;
        esac
        ;;
@@ -4072,7 +4452,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
       *)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
@@ -4129,9 +4509,11 @@ case $host_os in
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-       [How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
@@ -4150,6 +4532,8 @@ fi
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
        [Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+       [How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
@@ -4170,6 +4554,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -4178,30 +4563,40 @@ m4_require([_LT_TAG_COMPILER])dnl
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
+  linux* | k*bsd*-gnu | gnu*)
     _LT_TAGVAR(link_all_deplibs, $1)=no
-  ;;
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -4216,7 +4611,6 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4261,13 +4655,39 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
+  linux* | k*bsd*-gnu | gnu*)
     _LT_TAGVAR(link_all_deplibs, $1)=no
     ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+         *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -4301,11 +4721,12 @@ dnl Note also adjust exclude_expsyms for C++ above.
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -4341,10 +4762,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -4362,6 +4785,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4387,15 +4815,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -4406,13 +4835,17 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          _LT_TAGVAR(whole_archive_flag_spec, $1)=
          tmp_sharedflag='--shared' ;;
-       xl[[cC]]*)                      # IBM XL C 8.0 on PPC (deal with xlf below)
+       xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
@@ -4428,17 +4861,16 @@ _LT_EOF
         fi
 
        case $cc_basename in
-       xlf*)
+       xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-         _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
              echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -4452,8 +4884,8 @@ _LT_EOF
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4471,8 +4903,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4518,8 +4950,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4559,8 +4991,10 @@ _LT_EOF
       else
        # If we're using GNU nm, then we don't want the "-C" option.
        # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        else
          _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        fi
@@ -4648,9 +5082,9 @@ _LT_EOF
        _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
        if test "$host_cpu" = ia64; then
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -4659,14 +5093,19 @@ _LT_EOF
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
          _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
          _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         fi
          _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
          # This is similar to how AIX traditionally builds its shared libraries.
          _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -4698,20 +5137,64 @@ _LT_EOF
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       _LT_TAGVAR(always_export_symbols, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+       _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       # FIXME: Should let the user specify the lib program.
+       _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4724,10 +5207,6 @@ _LT_EOF
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -4740,7 +5219,7 @@ _LT_EOF
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -4749,7 +5228,7 @@ _LT_EOF
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4757,7 +5236,7 @@ _LT_EOF
 
     hpux9*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -4772,14 +5251,13 @@ _LT_EOF
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -4791,16 +5269,16 @@ _LT_EOF
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
        case $host_cpu in
        hppa*64*)
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -4812,7 +5290,14 @@ _LT_EOF
          _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+       m4_if($1, [], [
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         _LT_LINKER_OPTION([if $CC understands -b],
+           _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
          ;;
        esac
       fi
@@ -4840,19 +5325,34 @@ _LT_EOF
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
+       # This should be the same for all languages, so no per-tag cache variable.
+       AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+         [lt_cv_irix_exported_symbol],
+         [save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          AC_LINK_IFELSE(
+            [AC_LANG_SOURCE(
+               [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+                             [C++], [[int foo (void) { return 0; }]],
+                             [Fortran 77], [[
+      subroutine foo
+      end]],
+                             [Fortran], [[
+      subroutine foo
+      end]])])],
+             [lt_cv_irix_exported_symbol=yes],
+             [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4914,17 +5414,17 @@ _LT_EOF
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4934,13 +5434,13 @@ _LT_EOF
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -4953,9 +5453,9 @@ _LT_EOF
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -5131,36 +5631,38 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-       pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-        _LT_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-        then
-         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-         _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+       [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+       [$RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+       if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+         pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+         _LT_TAGVAR(allow_undefined_flag, $1)=
+         if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+         then
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+         else
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         fi
+         _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+       ])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
       ;;
     esac
   fi
@@ -5197,9 +5699,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1],
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5225,8 +5724,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
     to runtime path list])
 _LT_TAGDECL([], [link_all_deplibs], [0],
     [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
 _LT_TAGDECL([], [always_export_symbols], [0],
     [Set to "yes" if exported symbols are required])
 _LT_TAGDECL([], [export_symbols_cmds], [2],
@@ -5237,6 +5734,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
     [Symbols that must always be exported])
 _LT_TAGDECL([], [prelink_cmds], [2],
     [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
 _LT_TAGDECL([], [file_list_spec], [1],
     [Specify filename containing input files])
 dnl FIXME: Not yet implemented
@@ -5330,37 +5829,22 @@ CC="$lt_save_CC"
 ])# _LT_LANG_C_CONFIG
 
 
-# _LT_PROG_CXX
-# ------------
-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
-# compiler, we have our own version here.
-m4_defun([_LT_PROG_CXX],
-[
-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
-AC_PROG_CXX
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_CXX
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_CXX], [])
-
-
 # _LT_LANG_CXX_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
 # the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
-[AC_REQUIRE([_LT_PROG_CXX])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
 
 AC_LANG_PUSH(C++)
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
@@ -5372,7 +5856,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -5382,6 +5865,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -5413,6 +5898,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -5430,6 +5916,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -5451,8 +5938,8 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5484,7 +5971,7 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -5593,10 +6080,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          _LT_SYS_MODULE_PATH_AIX
+          _LT_SYS_MODULE_PATH_AIX([$1])
           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -5605,14 +6092,19 @@ if test "$_lt_caught_CXX_error" != yes; then
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
-           _LT_SYS_MODULE_PATH_AIX
+           _LT_SYS_MODULE_PATH_AIX([$1])
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
            _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
            _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-           # Exported symbols can be pulled into shared objects from archives
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           if test "$with_gnu_ld" = yes; then
+             # We only use this code for GNU lds that support --whole-archive.
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           else
+             # Exported symbols can be pulled into shared objects from archives
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           fi
            _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
            # This is similar to how AIX traditionally builds its shared
            # libraries.
@@ -5642,28 +6134,75 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           cp $export_symbols $output_objdir/$soname.def;
-          else
-           echo EXPORTS > $output_objdir/$soname.def;
-           cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=yes
+         _LT_TAGVAR(file_list_spec, $1)='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+         # Don't use ranlib
+         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+         # as there is no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=no
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+         ;;
+       esac
+       ;;
       darwin* | rhapsody*)
         _LT_DARWIN_LINKER_FEATURES($1)
        ;;
@@ -5686,7 +6225,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         esac
         ;;
 
-      freebsd[[12]]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
        # switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5705,6 +6244,11 @@ if test "$_lt_caught_CXX_error" != yes; then
       gnu*)
         ;;
 
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
       hpux9*)
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -5729,11 +6273,11 @@ if test "$_lt_caught_CXX_error" != yes; then
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5794,7 +6338,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
           *)
            if test "$GXX" = yes; then
@@ -5804,10 +6348,10 @@ if test "$_lt_caught_CXX_error" != yes; then
                    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -5837,7 +6381,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         case $cc_basename in
           CC*)
            # SGI C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
            # Archives containing C++ object files must be created using
            # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -5848,9 +6392,9 @@ if test "$_lt_caught_CXX_error" != yes; then
           *)
            if test "$GXX" = yes; then
              if test "$with_gnu_ld" = no; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
              else
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
              fi
            fi
            _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -5879,7 +6423,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5916,26 +6460,26 @@ if test "$_lt_caught_CXX_error" != yes; then
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
-           *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+           *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
              _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
                $RANLIB $oldlib'
              _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
-           *) # Version 6 will use weak symbols
+           *) # Version 6 and above use weak symbols
              _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
@@ -5943,7 +6487,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
          cxx*)
            # Compaq C++
@@ -5962,9 +6506,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
            ;;
-         xl*)
+         xl* | mpixl* | bgxl*)
            # IBM XL 8.0 on PPC, with GNU ld
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5984,13 +6528,13 @@ if test "$_lt_caught_CXX_error" != yes; then
              _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
              _LT_TAGVAR(compiler_needs_object, $1)=yes
 
              # Not sure whether something based on
              # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
              # would be better.
-             output_verbose_link_cmd='echo'
+             output_verbose_link_cmd='func_echo_all'
 
              # Archives containing C++ object files must be created using
              # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6059,7 +6603,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
            _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
          fi
-         output_verbose_link_cmd=echo
+         output_verbose_link_cmd=func_echo_all
        else
          _LT_TAGVAR(ld_shlibs, $1)=no
        fi
@@ -6094,15 +6638,15 @@ if test "$_lt_caught_CXX_error" != yes; then
            case $host in
              osf3*)
                _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
                ;;
              *)
                _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
                  echo "-hidden">> $lib.exp~
-                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
                  $RM $lib.exp'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
                ;;
@@ -6118,17 +6662,17 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
          *)
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
              case $host in
                osf3*)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
                *)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
              esac
 
@@ -6138,7 +6682,7 @@ if test "$_lt_caught_CXX_error" != yes; then
              # Commands to make compiler produce verbose output that lists
              # what "hidden" libraries, object files and flags are used when
              # linking a shared library.
-             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
            else
              # FIXME: insert proper C++ library support
@@ -6174,7 +6718,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
            _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -6195,7 +6739,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            esac
            _LT_TAGVAR(link_all_deplibs, $1)=yes
 
-           output_verbose_link_cmd='echo'
+           output_verbose_link_cmd='func_echo_all'
 
            # Archives containing C++ object files must be created using
            # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6215,14 +6759,14 @@ if test "$_lt_caught_CXX_error" != yes; then
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
                # g++ 2.7 appears to require `-G' NOT `-shared' on this
                # platform.
@@ -6233,7 +6777,7 @@ if test "$_lt_caught_CXX_error" != yes; then
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
@@ -6287,6 +6831,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           CC*)
            _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+           _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+             '"$_LT_TAGVAR(reload_cmds, $1)"
            ;;
          *)
            _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -6342,6 +6890,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -6356,6 +6905,29 @@ AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
 
 
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -6364,6 +6936,7 @@ AC_LANG_POP
 # objects, libraries and library flags.
 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
 # Dependencies to place before and after the object being linked:
 _LT_TAGVAR(predep_objects, $1)=
 _LT_TAGVAR(postdep_objects, $1)=
@@ -6413,7 +6986,20 @@ public class foo {
   }
 };
 _LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
 ])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
 dnl Parse the compiler output and extract the necessary
 dnl objects, libraries and library flags.
 if AC_TRY_EVAL(ac_compile); then
@@ -6425,7 +7011,7 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -6434,13 +7020,22 @@ if AC_TRY_EVAL(ac_compile); then
           test $p = "-R"; then
         prev=$p
         continue
-       else
-        prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
+        case ${prev} in
+        -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
@@ -6460,8 +7055,10 @@ if AC_TRY_EVAL(ac_compile); then
           _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
         fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -6497,6 +7094,7 @@ else
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 m4_if([$1], [CXX],
@@ -6533,7 +7131,7 @@ linux*)
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -6577,32 +7175,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1],
 ])# _LT_SYS_HIDDEN_LIBDEPS
 
 
-# _LT_PROG_F77
-# ------------
-# Since AC_PROG_F77 is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_F77],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
-AC_PROG_F77
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_F77
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_F77], [])
-
-
 # _LT_LANG_F77_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
-[AC_REQUIRE([_LT_PROG_F77])dnl
-AC_LANG_PUSH(Fortran 77)
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6612,7 +7194,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6621,6 +7202,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6660,7 +7243,9 @@ if test "$_lt_disable_F77" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -6714,38 +7299,24 @@ if test "$_lt_disable_F77" != yes; then
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
 
 
-# _LT_PROG_FC
-# -----------
-# Since AC_PROG_FC is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_FC],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
-AC_PROG_FC
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_FC
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_FC], [])
-
-
 # _LT_LANG_FC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
-[AC_REQUIRE([_LT_PROG_FC])dnl
-AC_LANG_PUSH(Fortran)
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6755,7 +7326,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6764,6 +7334,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6803,7 +7375,9 @@ if test "$_lt_disable_FC" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
   compiler=$CC
   GCC=$ac_cv_fc_compiler_gnu
 
@@ -6859,7 +7433,8 @@ if test "$_lt_disable_FC" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
 fi # test "$_lt_disable_FC" != yes
 
 AC_LANG_POP
@@ -6896,10 +7471,12 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_TAGVAR(LD, $1)="$LD"
@@ -6909,6 +7486,8 @@ _LT_CC_BASENAME([$compiler])
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 
 ## CAVEAT EMPTOR:
 ## There is no encapsulation within the following macros, do not change
@@ -6928,10 +7507,82 @@ fi
 AC_LANG_RESTORE
 
 GCC=$lt_save_GCC
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -6963,9 +7614,11 @@ _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_CC_BASENAME([$compiler])
@@ -6978,7 +7631,8 @@ fi
 
 GCC=$lt_save_GCC
 AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
 
@@ -6998,6 +7652,13 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
@@ -7037,6 +7698,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
 AC_SUBST([OBJDUMP])
 ])
 
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
 
 # _LT_DECL_SED
 # ------------
@@ -7130,8 +7800,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -7170,208 +7840,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
 
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
 
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
 
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
 
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
 
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
 
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
 
-_LT_EOF
-esac
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
 
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
     ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
     ;;
-  esac
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
 ])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/lock.m4 b/m4/lock.m4
deleted file mode 100644 (file)
index 9111933..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-# lock.m4 serial 7 (gettext-0.17)
-dnl Copyright (C) 2005-2007 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl Tests for a multithreading library to be used.
-dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
-dnl USE_PTH_THREADS, USE_WIN32_THREADS
-dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
-dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
-dnl libtool).
-dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for
-dnl programs that really need multithread functionality. The difference
-dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak
-dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread".
-dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
-dnl multithread-safe programs.
-
-AC_DEFUN([gl_LOCK_EARLY],
-[
-  AC_REQUIRE([gl_LOCK_EARLY_BODY])
-])
-
-dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once.
-
-AC_DEFUN([gl_LOCK_EARLY_BODY],
-[
-  dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
-  dnl influences the result of the autoconf tests that test for *_unlocked
-  dnl declarations, on AIX 5 at least. Therefore it must come early.
-  AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
-  AC_BEFORE([$0], [gl_ARGP])dnl
-
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems.
-  dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
-  dnl AC_GNU_SOURCE.
-  m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
-    [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
-    [AC_REQUIRE([AC_GNU_SOURCE])])
-  dnl Check for multithreading.
-  AC_ARG_ENABLE(threads,
-AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API])
-AC_HELP_STRING([--disable-threads], [build without multithread safety]),
-    [gl_use_threads=$enableval],
-    [case "$host_os" in
-       dnl Disable multithreading by default on OSF/1, because it interferes
-       dnl with fork()/exec(): When msgexec is linked with -lpthread, its child
-       dnl process gets an endless segmentation fault inside execvp().
-       osf*) gl_use_threads=no ;;
-       *)    gl_use_threads=yes ;;
-     esac
-    ])
-  if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-    # For using <pthread.h>:
-    case "$host_os" in
-      osf*)
-        # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
-        # groks <pthread.h>. cc also understands the flag -pthread, but
-        # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
-        # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_TRY_LINK test below to succeed unexpectedly,
-        # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
-        CPPFLAGS="$CPPFLAGS -D_REENTRANT"
-        ;;
-    esac
-    # Some systems optimize for single-threaded programs by default, and
-    # need special flags to disable these optimizations. For example, the
-    # definition of 'errno' in <errno.h>.
-    case "$host_os" in
-      aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
-      solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
-    esac
-  fi
-])
-
-dnl The guts of gl_LOCK. Needs to be expanded only once.
-
-AC_DEFUN([gl_LOCK_BODY],
-[
-  AC_REQUIRE([gl_LOCK_EARLY_BODY])
-  gl_threads_api=none
-  LIBTHREAD=
-  LTLIBTHREAD=
-  LIBMULTITHREAD=
-  LTLIBMULTITHREAD=
-  if test "$gl_use_threads" != no; then
-    dnl Check whether the compiler and linker support weak declarations.
-    AC_MSG_CHECKING([whether imported symbols can be declared weak])
-    gl_have_weak=no
-    AC_TRY_LINK([extern void xyzzy ();
-#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes])
-    AC_MSG_RESULT([$gl_have_weak])
-    if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
-      # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
-      # it groks <pthread.h>. It's added above, in gl_LOCK_EARLY_BODY.
-      AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no)
-      if test "$gl_have_pthread_h" = yes; then
-        # Other possible tests:
-        #   -lpthreads (FSU threads, PCthreads)
-        #   -lgthreads
-        gl_have_pthread=
-        # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
-        # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
-        # the second one only in libpthread, and lock.c needs it.
-        AC_TRY_LINK([#include <pthread.h>],
-          [pthread_mutex_lock((pthread_mutex_t*)0);
-           pthread_mutexattr_init((pthread_mutexattr_t*)0);],
-          [gl_have_pthread=yes])
-        # Test for libpthread by looking for pthread_kill. (Not pthread_self,
-        # since it is defined as a macro on OSF/1.)
-        if test -n "$gl_have_pthread"; then
-          # The program links fine without libpthread. But it may actually
-          # need to link with libpthread in order to create multiple threads.
-          AC_CHECK_LIB(pthread, pthread_kill,
-            [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
-             # On Solaris and HP-UX, most pthread functions exist also in libc.
-             # Therefore pthread_in_use() needs to actually try to create a
-             # thread: pthread_create from libc will fail, whereas
-             # pthread_create will actually create a thread.
-             case "$host_os" in
-               solaris* | hpux*)
-                 AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1,
-                   [Define if the pthread_in_use() detection is hard.])
-             esac
-            ])
-        else
-          # Some library is needed. Try libpthread and libc_r.
-          AC_CHECK_LIB(pthread, pthread_kill,
-            [gl_have_pthread=yes
-             LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
-             LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread])
-          if test -z "$gl_have_pthread"; then
-            # For FreeBSD 4.
-            AC_CHECK_LIB(c_r, pthread_kill,
-              [gl_have_pthread=yes
-               LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
-               LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r])
-          fi
-        fi
-        if test -n "$gl_have_pthread"; then
-          gl_threads_api=posix
-          AC_DEFINE([USE_POSIX_THREADS], 1,
-            [Define if the POSIX multithreading library can be used.])
-          if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
-            if test $gl_have_weak = yes; then
-              AC_DEFINE([USE_POSIX_THREADS_WEAK], 1,
-                [Define if references to the POSIX multithreading library should be made weak.])
-              LIBTHREAD=
-              LTLIBTHREAD=
-            fi
-          fi
-          # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the
-          # pthread_rwlock_* functions.
-          AC_CHECK_TYPE([pthread_rwlock_t],
-            [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1,
-               [Define if the POSIX multithreading library has read/write locks.])],
-            [],
-            [#include <pthread.h>])
-          # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
-          AC_TRY_COMPILE([#include <pthread.h>],
-            [#if __FreeBSD__ == 4
-error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
-#else
-int x = (int)PTHREAD_MUTEX_RECURSIVE;
-return !x;
-#endif],
-            [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1,
-               [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
-        fi
-      fi
-    fi
-    if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
-        gl_have_solaristhread=
-        gl_save_LIBS="$LIBS"
-        LIBS="$LIBS -lthread"
-        AC_TRY_LINK([#include <thread.h>
-#include <synch.h>],
-          [thr_self();],
-          [gl_have_solaristhread=yes])
-        LIBS="$gl_save_LIBS"
-        if test -n "$gl_have_solaristhread"; then
-          gl_threads_api=solaris
-          LIBTHREAD=-lthread
-          LTLIBTHREAD=-lthread
-          LIBMULTITHREAD="$LIBTHREAD"
-          LTLIBMULTITHREAD="$LTLIBTHREAD"
-          AC_DEFINE([USE_SOLARIS_THREADS], 1,
-            [Define if the old Solaris multithreading library can be used.])
-          if test $gl_have_weak = yes; then
-            AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1,
-              [Define if references to the old Solaris multithreading library should be made weak.])
-            LIBTHREAD=
-            LTLIBTHREAD=
-          fi
-        fi
-      fi
-    fi
-    if test "$gl_use_threads" = pth; then
-      gl_save_CPPFLAGS="$CPPFLAGS"
-      AC_LIB_LINKFLAGS(pth)
-      gl_have_pth=
-      gl_save_LIBS="$LIBS"
-      LIBS="$LIBS -lpth"
-      AC_TRY_LINK([#include <pth.h>], [pth_self();], gl_have_pth=yes)
-      LIBS="$gl_save_LIBS"
-      if test -n "$gl_have_pth"; then
-        gl_threads_api=pth
-        LIBTHREAD="$LIBPTH"
-        LTLIBTHREAD="$LTLIBPTH"
-        LIBMULTITHREAD="$LIBTHREAD"
-        LTLIBMULTITHREAD="$LTLIBTHREAD"
-        AC_DEFINE([USE_PTH_THREADS], 1,
-          [Define if the GNU Pth multithreading library can be used.])
-        if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
-          if test $gl_have_weak = yes; then
-            AC_DEFINE([USE_PTH_THREADS_WEAK], 1,
-              [Define if references to the GNU Pth multithreading library should be made weak.])
-            LIBTHREAD=
-            LTLIBTHREAD=
-          fi
-        fi
-      else
-        CPPFLAGS="$gl_save_CPPFLAGS"
-      fi
-    fi
-    if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then
-        if { case "$host_os" in
-               mingw*) true;;
-               *) false;;
-             esac
-           }; then
-          gl_threads_api=win32
-          AC_DEFINE([USE_WIN32_THREADS], 1,
-            [Define if the Win32 multithreading API can be used.])
-        fi
-      fi
-    fi
-  fi
-  AC_MSG_CHECKING([for multithread API to use])
-  AC_MSG_RESULT([$gl_threads_api])
-  AC_SUBST(LIBTHREAD)
-  AC_SUBST(LTLIBTHREAD)
-  AC_SUBST(LIBMULTITHREAD)
-  AC_SUBST(LTLIBMULTITHREAD)
-])
-
-AC_DEFUN([gl_LOCK],
-[
-  AC_REQUIRE([gl_LOCK_EARLY])
-  AC_REQUIRE([gl_LOCK_BODY])
-  gl_PREREQ_LOCK
-])
-
-# Prerequisites of lib/lock.c.
-AC_DEFUN([gl_PREREQ_LOCK], [
-  AC_REQUIRE([AC_C_INLINE])
-])
-
-dnl Survey of platforms:
-dnl
-dnl Platform          Available   Compiler    Supports   test-lock
-dnl                   flavours    option      weak       result
-dnl ---------------   ---------   ---------   --------   ---------
-dnl Linux 2.4/glibc   posix       -lpthread       Y      OK
-dnl
-dnl GNU Hurd/glibc    posix
-dnl
-dnl FreeBSD 5.3       posix       -lc_r           Y
-dnl                   posix       -lkse ?         Y
-dnl                   posix       -lpthread ?     Y
-dnl                   posix       -lthr           Y
-dnl
-dnl FreeBSD 5.2       posix       -lc_r           Y
-dnl                   posix       -lkse           Y
-dnl                   posix       -lthr           Y
-dnl
-dnl FreeBSD 4.0,4.10  posix       -lc_r           Y      OK
-dnl
-dnl NetBSD 1.6        --
-dnl
-dnl OpenBSD 3.4       posix       -lpthread       Y      OK
-dnl
-dnl MacOS X 10.[123]  posix       -lpthread       Y      OK
-dnl
-dnl Solaris 7,8,9     posix       -lpthread       Y      Sol 7,8: 0.0; Sol 9: OK
-dnl                   solaris     -lthread        Y      Sol 7,8: 0.0; Sol 9: OK
-dnl
-dnl HP-UX 11          posix       -lpthread       N (cc) OK
-dnl                                               Y (gcc)
-dnl
-dnl IRIX 6.5          posix       -lpthread       Y      0.5
-dnl
-dnl AIX 4.3,5.1       posix       -lpthread       N      AIX 4: 0.5; AIX 5: OK
-dnl
-dnl OSF/1 4.0,5.1     posix       -pthread (cc)   N      OK
-dnl                               -lpthread (gcc) Y
-dnl
-dnl Cygwin            posix       -lpthread       Y      OK
-dnl
-dnl Any of the above  pth         -lpth                  0.0
-dnl
-dnl Mingw             win32                       N      OK
-dnl
-dnl BeOS 5            --
-dnl
-dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
-dnl turned off:
-dnl   OK if all three tests terminate OK,
-dnl   0.5 if the first test terminates OK but the second one loops endlessly,
-dnl   0.0 if the first test already loops endlessly.
diff --git a/m4/longlong.m4 b/m4/longlong.m4
deleted file mode 100644 (file)
index a72e53b..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-# longlong.m4 serial 13
-dnl Copyright (C) 1999-2007 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_LONG_LONG_INT if 'long long int' works.
-# This fixes a bug in Autoconf 2.61, but can be removed once we
-# assume 2.62 everywhere.
-
-# Note: If the type 'long long int' exists but is only 32 bits large
-# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
-# defined. In this case you can treat 'long long int' like 'long int'.
-
-AC_DEFUN([AC_TYPE_LONG_LONG_INT],
-[
-  AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
-    [AC_LINK_IFELSE(
-       [_AC_TYPE_LONG_LONG_SNIPPET],
-       [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
-       dnl If cross compiling, assume the bug isn't important, since
-       dnl nobody cross compiles for this platform as far as we know.
-       AC_RUN_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[@%:@include <limits.h>
-              @%:@ifndef LLONG_MAX
-              @%:@ define HALF \
-                       (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-              @%:@ define LLONG_MAX (HALF - 1 + HALF)
-              @%:@endif]],
-            [[long long int n = 1;
-              int i;
-              for (i = 0; ; i++)
-                {
-                  long long int m = n << i;
-                  if (m >> i != n)
-                    return 1;
-                  if (LLONG_MAX / 2 < m)
-                    break;
-                }
-              return 0;]])],
-         [ac_cv_type_long_long_int=yes],
-         [ac_cv_type_long_long_int=no],
-         [ac_cv_type_long_long_int=yes])],
-       [ac_cv_type_long_long_int=no])])
-  if test $ac_cv_type_long_long_int = yes; then
-    AC_DEFINE([HAVE_LONG_LONG_INT], 1,
-      [Define to 1 if the system has the type `long long int'.])
-  fi
-])
-
-# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
-# This fixes a bug in Autoconf 2.61, but can be removed once we
-# assume 2.62 everywhere.
-
-# Note: If the type 'unsigned long long int' exists but is only 32 bits
-# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
-# will not be defined. In this case you can treat 'unsigned long long int'
-# like 'unsigned long int'.
-
-AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
-[
-  AC_CACHE_CHECK([for unsigned long long int],
-    [ac_cv_type_unsigned_long_long_int],
-    [AC_LINK_IFELSE(
-       [_AC_TYPE_LONG_LONG_SNIPPET],
-       [ac_cv_type_unsigned_long_long_int=yes],
-       [ac_cv_type_unsigned_long_long_int=no])])
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
-      [Define to 1 if the system has the type `unsigned long long int'.])
-  fi
-])
-
-# Expands to a C program that can be used to test for simultaneous support
-# of 'long long' and 'unsigned long long'. We don't want to say that
-# 'long long' is available if 'unsigned long long' is not, or vice versa,
-# because too many programs rely on the symmetry between signed and unsigned
-# integer types (excluding 'bool').
-AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
-[
-  AC_LANG_PROGRAM(
-    [[/* Test preprocessor.  */
-      #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-        error in preprocessor;
-      #endif
-      #if ! (18446744073709551615ULL <= -1ull)
-        error in preprocessor;
-      #endif
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                    ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                    ? 1 : -1)];
-      int i = 63;]],
-    [[/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-             | (llmax / ll) | (llmax % ll)
-             | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-             | (ullmax / ull) | (ullmax % ull));]])
-])
index 34151a3..5d9acd8 100644 (file)
@@ -1,13 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 6 ltoptions.m4
+# serial 7 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
 [enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -133,13 +134,13 @@ case $host in
 esac
 
 test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [0], [Assembler program])dnl
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
 
 test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
 
 test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
 ])# win32-dll
 
 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
@@ -325,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
        [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
index f3c5309..07a8602 100644 (file)
@@ -7,17 +7,17 @@
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# Generated from ltversion.in.
+# @configure_input@
 
-# serial 3017 ltversion.m4
+# serial 3337 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.6b])
-m4_define([LT_PACKAGE_REVISION], [1.3017])
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6b'
-macro_revision='1.3017'
+[macro_version='2.4.2'
+macro_revision='1.3337'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
index 637bb20..c573da9 100644 (file)
@@ -1,13 +1,13 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 4 lt~obsolete.m4
+# serial 5 lt~obsolete.m4
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
@@ -77,7 +77,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL],  [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
 m4_ifndef([_LT_AC_LANG_CXX],           [AC_DEFUN([_LT_AC_LANG_CXX])])
 m4_ifndef([_LT_AC_LANG_F77],           [AC_DEFUN([_LT_AC_LANG_F77])])
 m4_ifndef([_LT_AC_LANG_GCJ],           [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_RC],             [AC_DEFUN([AC_LIBTOOL_RC])])
 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],  [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
 m4_ifndef([_LT_AC_LANG_C_CONFIG],      [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
@@ -90,3 +89,10 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],       [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
 m4_ifndef([_LT_AC_LANG_RC_CONFIG],     [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
 m4_ifndef([AC_LIBTOOL_CONFIG],         [AC_DEFUN([AC_LIBTOOL_CONFIG])])
 m4_ifndef([_LT_AC_FILE_LTDLL_C],       [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],        [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],                [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],        [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],   [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],              [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/m4/printf-posix.m4 b/m4/printf-posix.m4
deleted file mode 100644 (file)
index 14ba612..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# printf-posix.m4 serial 3 (gettext-0.17)
-dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether the printf() function supports POSIX/XSI format strings with
-dnl positions.
-
-AC_DEFUN([gt_PRINTF_POSIX],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
-    gt_cv_func_printf_posix,
-    [
-      AC_TRY_RUN([
-#include <stdio.h>
-#include <string.h>
-/* The string "%2$d %1$d", with dollar characters protected from the shell's
-   dollar expansion (possibly an autoconf bug).  */
-static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-static char buf[100];
-int main ()
-{
-  sprintf (buf, format, 33, 55);
-  return (strcmp (buf, "55 33") != 0);
-}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
-      [
-        AC_EGREP_CPP(notposix, [
-#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
-  notposix
-#endif
-        ], gt_cv_func_printf_posix="guessing no",
-           gt_cv_func_printf_posix="guessing yes")
-      ])
-    ])
-  case $gt_cv_func_printf_posix in
-    *yes)
-      AC_DEFINE(HAVE_POSIX_PRINTF, 1,
-        [Define if your printf() function supports format strings with positions.])
-      ;;
-  esac
-])
diff --git a/m4/size_max.m4 b/m4/size_max.m4
deleted file mode 100644 (file)
index 6cb4868..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-# size_max.m4 serial 6
-dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gl_SIZE_MAX],
-[
-  AC_CHECK_HEADERS(stdint.h)
-  dnl First test whether the system already has SIZE_MAX.
-  AC_MSG_CHECKING([for SIZE_MAX])
-  AC_CACHE_VAL([gl_cv_size_max], [
-    gl_cv_size_max=
-    AC_EGREP_CPP([Found it], [
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
-], gl_cv_size_max=yes)
-    if test -z "$gl_cv_size_max"; then
-      dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
-      dnl than the type 'unsigned long'. Try hard to find a definition that can
-      dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
-      AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
-        [#include <stddef.h>
-#include <limits.h>], size_t_bits_minus_1=)
-      AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
-        [#include <stddef.h>], fits_in_uint=)
-      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
-        if test $fits_in_uint = 1; then
-          dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
-          dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
-          AC_TRY_COMPILE([#include <stddef.h>
-            extern size_t foo;
-            extern unsigned long foo;
-            ], [], fits_in_uint=0)
-        fi
-        dnl We cannot use 'expr' to simplify this expression, because 'expr'
-        dnl works only with 'long' integers in the host environment, while we
-        dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
-        if test $fits_in_uint = 1; then
-          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        else
-          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        fi
-      else
-        dnl Shouldn't happen, but who knows...
-        gl_cv_size_max='((size_t)~(size_t)0)'
-      fi
-    fi
-  ])
-  AC_MSG_RESULT([$gl_cv_size_max])
-  if test "$gl_cv_size_max" != yes; then
-    AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max],
-      [Define as the maximum value of type 'size_t', if the system doesn't define it.])
-  fi
-])
-
-dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
-dnl Remove this when we can assume autoconf >= 2.61.
-m4_ifdef([AC_COMPUTE_INT], [], [
-  AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
-])
diff --git a/m4/visibility.m4 b/m4/visibility.m4
deleted file mode 100644 (file)
index 2ff6330..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-# visibility.m4 serial 1 (gettext-0.15)
-dnl Copyright (C) 2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl Tests whether the compiler supports the command-line option
-dnl -fvisibility=hidden and the function and variable attributes
-dnl __attribute__((__visibility__("hidden"))) and
-dnl __attribute__((__visibility__("default"))).
-dnl Does *not* test for __visibility__("protected") - which has tricky
-dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
-dnl MacOS X.
-dnl Does *not* test for __visibility__("internal") - which has processor
-dnl dependent semantics.
-dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
-dnl "really only recommended for legacy code".
-dnl Set the variable CFLAG_VISIBILITY.
-dnl Defines and sets the variable HAVE_VISIBILITY.
-
-AC_DEFUN([gl_VISIBILITY],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  CFLAG_VISIBILITY=
-  HAVE_VISIBILITY=0
-  if test -n "$GCC"; then
-    AC_MSG_CHECKING([for simple visibility declarations])
-    AC_CACHE_VAL(gl_cv_cc_visibility, [
-      gl_save_CFLAGS="$CFLAGS"
-      CFLAGS="$CFLAGS -fvisibility=hidden"
-      AC_TRY_COMPILE(
-        [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
-         extern __attribute__((__visibility__("default"))) int exportedvar;
-         extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
-         extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
-        [],
-        gl_cv_cc_visibility=yes,
-        gl_cv_cc_visibility=no)
-      CFLAGS="$gl_save_CFLAGS"])
-    AC_MSG_RESULT([$gl_cv_cc_visibility])
-    if test $gl_cv_cc_visibility = yes; then
-      CFLAG_VISIBILITY="-fvisibility=hidden"
-      HAVE_VISIBILITY=1
-    fi
-  fi
-  AC_SUBST([CFLAG_VISIBILITY])
-  AC_SUBST([HAVE_VISIBILITY])
-  AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
-    [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
-])
diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4
deleted file mode 100644 (file)
index cde2129..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# wchar_t.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether <stddef.h> has the 'wchar_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WCHAR_T],
-[
-  AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
-    [AC_TRY_COMPILE([#include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';], ,
-       gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
-  if test $gt_cv_c_wchar_t = yes; then
-    AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
-  fi
-])
diff --git a/m4/wint_t.m4 b/m4/wint_t.m4
deleted file mode 100644 (file)
index af5ed93..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# wint_t.m4 serial 2 (gettext-0.17)
-dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether <wchar.h> has the 'wint_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WINT_T],
-[
-  AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
-    [AC_TRY_COMPILE([
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-       wint_t foo = (wchar_t)'\0';], ,
-       gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
-  if test $gt_cv_c_wint_t = yes; then
-    AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
-  fi
-])
diff --git a/m4/xsize.m4 b/m4/xsize.m4
deleted file mode 100644 (file)
index 85bb721..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# xsize.m4 serial 3
-dnl Copyright (C) 2003-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_XSIZE],
-[
-  dnl Prerequisites of lib/xsize.h.
-  AC_REQUIRE([gl_SIZE_MAX])
-  AC_REQUIRE([AC_C_INLINE])
-  AC_CHECK_HEADERS(stdint.h)
-])
diff --git a/missing b/missing
index 28055d2..86a8fc3 100755 (executable)
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-01-06.13; # UTC
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -84,7 +84,6 @@ Supported PROGRAM values:
   help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
@@ -122,15 +121,6 @@ case $1 in
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar*)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
   *)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
@@ -226,7 +216,7 @@ WARNING: \`$1' $msg.  You should only need it if
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
        case $LASTARG in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -256,7 +246,7 @@ WARNING: \`$1' is $msg.  You should only need it if
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
        case $LASTARG in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -318,41 +308,6 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch $file
     ;;
 
-  tar*)
-    shift
-
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
-    if (gnutar --version > /dev/null 2>&1); then
-       gnutar "$@" && exit 0
-    fi
-    if (gtar --version > /dev/null 2>&1); then
-       gtar "$@" && exit 0
-    fi
-    firstarg="$1"
-    if shift; then
-       case $firstarg in
-       *o*)
-           firstarg=`echo "$firstarg" | sed s/o//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-       case $firstarg in
-       *h*)
-           firstarg=`echo "$firstarg" | sed s/h//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-    fi
-
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
   *)
     echo 1>&2 "\
 WARNING: \`$1' is needed, and is $msg.
index 750481c..5ae42b5 100644 (file)
@@ -1,11 +1,11 @@
 Name:       gst-plugins-base
 Summary:    GStreamer streaming media framework base plug-ins
-Version:       0.10.34
-Release:    1
+Version:    0.10.36
+Release:    7
 Group:      Applications/Multimedia
 License:    LGPLv2+
-URL:        http://gstreamer.freedesktop.org/
-Source0:    http://gstreamer.freedesktop.org/src/gst-plugins-base/%{name}-%{version}.tar.gz
+Source0:    %{name}-%{version}.tar.gz
+#Patch0:     Samsung-feature-bugs.patch
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 BuildRequires:  pkgconfig(ogg)
@@ -17,6 +17,7 @@ BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(gstreamer-0.10)
 BuildRequires:  pkgconfig(gstreamer-base-0.10)
 BuildRequires:  pkgconfig(xv)
+BuildRequires:  pkgconfig(pango)
 BuildRequires:  intltool
 
 
@@ -48,33 +49,38 @@ Separate sub-package contaning helper applications of gstreamer base plugins.
 %prep
 %setup -q 
 
+#%patch0 -p1
 
 %build
-export CFLAGS+=" -DGST_EXT_TEXTRENDER_ENHANCEMENT  -DGST_EXT_XV_ENHANCEMENT"
 %autogen --noconfigure
-%configure \
-       --disable-static                                \
-       --disable-nls                           \
-       --with-html-dir=/tmp/dump               \
-       --disable-examples                      \
-       --disable-audiorate                     \
-       --disable-gdp                           \
-       --disable-cdparanoia                    \
-       --disable-gnome_vfs                     \
-       --disable-gio                           \
-       --disable-libvisual                     \
-       --disable-freetypetest                  \
-       --disable-rpath                                 \
-       --disable-valgrind                      \
-       --disable-gcov                          \
-       --disable-gtk-doc                       \
-       --disable-debug                                 \
-       --disable-pango                        \
-       --with-audioresample-format=int 
+
+export CFLAGS+=" -Wall -g -fPIC\
+ -DGST_EXT_XV_ENHANCEMENT\
+ -DGST_EXT_LINK_FIMCCONVERT\
+ -DGST_EXT_MIME_TYPES"
+
+%configure --prefix=/usr\
+ --disable-static\
+ --disable-nls\
+ --with-html-dir=/tmp/dump\
+ --disable-examples\
+ --disable-audiorate\
+ --disable-gdp\
+ --disable-cdparanoia\
+ --disable-gnome_vfs\
+ --disable-libvisual\
+ --disable-freetypetest\
+ --disable-rpath\
+ --disable-valgrind\
+ --disable-gcov\
+ --disable-gtk-doc\
+ --disable-debug\
+ --with-audioresample-format=int
 
 make %{?jobs:-j%jobs}
 
 %install
+rm -rf %{buildroot}
 %make_install
 
 
@@ -86,9 +92,12 @@ rm -rf %{buildroot}/tmp/dump
 
 
 %files
+%defattr(-,root,root,-)
+#%doc COPYING 
+# libraries
 %{_libdir}/libgstinterfaces-0.10.so.*
 %{_libdir}/libgstaudio-0.10.so.*
-%{_libdir}/libgstcdda-0.10.so.*
+%exclude %{_libdir}/libgstcdda-0.10.so.*
 %{_libdir}/libgstfft-0.10.so.*
 %{_libdir}/libgstriff-0.10.so.*
 %{_libdir}/libgsttag-0.10.so.*
@@ -125,12 +134,16 @@ rm -rf %{buildroot}/tmp/dump
 %{_libdir}/gstreamer-0.10/libgsttheora.so
 %{_libdir}/gstreamer-0.10/libgstvorbis.so
 %{_libdir}/gstreamer-0.10/libgstximagesink.so
+%{_libdir}/gstreamer-0.10/libgstpango.so
+%{_libdir}/gstreamer-0.10/libgstgio.so
+# data
+%{_datadir}/gst-plugins-base/license-translations.dict
 
 
 %files devel
 %defattr(-,root,root,-)
 %dir %{_includedir}/gstreamer-0.10/gst/app
-/usr/include/gstreamer-0.10/gst/tag/xmpwriter.h
+%{_includedir}/gstreamer-0.10/gst/tag/xmpwriter.h
 %{_includedir}/gstreamer-0.10/gst/app/gstappbuffer.h
 %{_includedir}/gstreamer-0.10/gst/app/gstappsink.h
 %{_includedir}/gstreamer-0.10/gst/app/gstappsrc.h
@@ -138,7 +151,10 @@ rm -rf %{buildroot}/tmp/dump
 %{_includedir}/gstreamer-0.10/gst/audio/audio.h
 %{_includedir}/gstreamer-0.10/gst/audio/audio-enumtypes.h
 %{_includedir}/gstreamer-0.10/gst/audio/gstaudioclock.h
+%{_includedir}/gstreamer-0.10/gst/audio/gstaudiodecoder.h
+%{_includedir}/gstreamer-0.10/gst/audio/gstaudioencoder.h
 %{_includedir}/gstreamer-0.10/gst/audio/gstaudiofilter.h
+%{_includedir}/gstreamer-0.10/gst/audio/gstaudioiec61937.h
 %{_includedir}/gstreamer-0.10/gst/audio/gstaudiosink.h
 %{_includedir}/gstreamer-0.10/gst/audio/gstaudiosrc.h
 %{_includedir}/gstreamer-0.10/gst/audio/gstbaseaudiosink.h
@@ -146,8 +162,8 @@ rm -rf %{buildroot}/tmp/dump
 %{_includedir}/gstreamer-0.10/gst/audio/gstringbuffer.h
 %{_includedir}/gstreamer-0.10/gst/audio/mixerutils.h
 %{_includedir}/gstreamer-0.10/gst/audio/multichannel.h
-%dir %{_includedir}/gstreamer-0.10/gst/cdda
-%{_includedir}/gstreamer-0.10/gst/cdda/gstcddabasesrc.h
+%exclude %dir %{_includedir}/gstreamer-0.10/gst/cdda
+%exclude %{_includedir}/gstreamer-0.10/gst/cdda/gstcddabasesrc.h
 %dir %{_includedir}/gstreamer-0.10/gst/floatcast
 %{_includedir}/gstreamer-0.10/gst/floatcast/floatcast.h
 %dir %{_includedir}/gstreamer-0.10/gst/fft
@@ -210,11 +226,13 @@ rm -rf %{buildroot}/tmp/dump
 %dir %{_includedir}/gstreamer-0.10/gst/tag
 %{_includedir}/gstreamer-0.10/gst/tag/tag.h
 %{_includedir}/gstreamer-0.10/gst/tag/gsttagdemux.h
+%{_includedir}/gstreamer-0.10/gst/tag/gsttagmux.h
 %dir %{_includedir}/gstreamer-0.10/gst/video
 %{_includedir}/gstreamer-0.10/gst/video/gstvideofilter.h
 %{_includedir}/gstreamer-0.10/gst/video/gstvideosink.h
 %{_includedir}/gstreamer-0.10/gst/video/video.h
 %{_includedir}/gstreamer-0.10/gst/video/video-enumtypes.h
+%{_includedir}/gstreamer-0.10/gst/video/video-overlay-composition.h
 %{_libdir}/libgstaudio-0.10.so
 %{_libdir}/libgstinterfaces-0.10.so
 %{_libdir}/libgstnetbuffer-0.10.so
@@ -222,7 +240,7 @@ rm -rf %{buildroot}/tmp/dump
 %{_libdir}/libgstrtp-0.10.so
 %{_libdir}/libgsttag-0.10.so
 %{_libdir}/libgstvideo-0.10.so
-%{_libdir}/libgstcdda-0.10.so
+%exclude %{_libdir}/libgstcdda-0.10.so
 %{_libdir}/libgstpbutils-0.10.so
 %{_libdir}/libgstrtsp-0.10.so
 %{_libdir}/libgstsdp-0.10.so
@@ -234,8 +252,7 @@ rm -rf %{buildroot}/tmp/dump
 %files tools
 %defattr(-,root,root,-)
 # helper programs
-%{_bindir}/gst-visualise-0.10
 %{_bindir}/gst-discoverer-0.10
-%{_mandir}/man1/gst-visualise-0.10*
-
+%exclude %{_bindir}/gst-visualise-0.10
+%exclude %{_mandir}/man1/gst-visualise-0.10*
 
index 24380b4..de45038 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -85,6 +85,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -123,11 +124,11 @@ CONFIG_CLEAN_FILES = gstreamer-audio.pc gstreamer-audio-uninstalled.pc \
        gstreamer-video-uninstalled.pc gstreamer-plugins-base.pc \
        gstreamer-plugins-base-uninstalled.pc
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -152,6 +153,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -215,6 +222,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -275,6 +283,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -284,9 +293,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -309,6 +321,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -381,10 +394,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -418,7 +434,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -616,9 +631,7 @@ uninstall-pkgconfigDATA:
        @$(NORMAL_UNINSTALL)
        @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+       dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -673,10 +686,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 8e987cc..2f56e09 100644 (file)
@@ -1 +1 @@
-af az bg ca cs da de el en_GB es eu fi fr gl hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN
+af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN
diff --git a/po/Makevars.template b/po/Makevars.template
deleted file mode 100644 (file)
index 32692ab..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
-# package.  (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.)  Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright.  The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings:
-# - Strings which are not entire sentences, see the maintainer guidelines
-#   in the GNU gettext documentation, section 'Preparing Strings'.
-# - Strings which use unclear terms or require additional context to be
-#   understood.
-# - Strings which make invalid assumptions about notation of date, time or
-#   money.
-# - Pluralisation problems.
-# - Incorrect English spelling.
-# - Incorrect formatting.
-# It can be your email address, or a mailing list address where translators
-# can write to without being subscribed, or the URL of a web page through
-# which the translators can contact you.
-MSGID_BUGS_ADDRESS =
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used.  It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
index b92cba8..2e86aac 100644 (file)
Binary files a/po/af.gmo and b/po/af.gmo differ
index 3f7add3..796fc0a 100644 (file)
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -410,6 +410,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
index 848c558..338b3d6 100644 (file)
Binary files a/po/az.gmo and b/po/az.gmo differ
index 52ec3a1..d282bed 100644 (file)
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -411,6 +411,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
index 3fd301f..e2d6fe5 100644 (file)
Binary files a/po/bg.gmo and b/po/bg.gmo differ
index 7e89d0e..3b77b33 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-26 22:31+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -413,6 +413,12 @@ msgstr "точки на инч по вертикал"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Целевата разделителна способност на медията по вертикал"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "В това CD липсва аудио"
 
index d2aca26..7caddd3 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index 889e39a..a5817bc 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -2,19 +2,22 @@
 # Copyright © 2005, 2010 Free Software Foundation, Inc.
 # This file is put in the public domain.
 # Jordi Mallach <jordi@sindominio.net>, 2005, 2010.
+# Jordi Estrada <jordi.estrada@yamaha-motor.es>, 2011.
+# Gil Forcada <gforcada@gnome.org>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-11-04 23:13+0100\n"
-"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2012-01-01 14:19+0100\n"
+"Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
 "Language: ca\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 msgid "Master"
 msgstr "Mestre"
@@ -23,7 +26,7 @@ msgid "Bass"
 msgstr "Baixos"
 
 msgid "Treble"
-msgstr "Treble"
+msgstr "Aguts"
 
 msgid "PCM"
 msgstr "PCM"
@@ -41,7 +44,7 @@ msgid "Microphone"
 msgstr "Micròfon"
 
 msgid "PC Speaker"
-msgstr "Altaveu PC"
+msgstr "Altaveu del PC"
 
 msgid "Playback"
 msgstr "Reproducció"
@@ -50,48 +53,51 @@ msgid "Capture"
 msgstr "Captura"
 
 msgid "Could not open device for playback in mono mode."
-msgstr "No s'ha pogut obrir el dispositiu per a reproduir en mode mono."
+msgstr "No s'ha pogut obrir el dispositiu per a la reproducció en mode mono."
 
 msgid "Could not open device for playback in stereo mode."
-msgstr "No s'ha pogut obrir el dispositiu per a reproduir en mode estèreo."
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a la reproducció en mode estèreo."
 
 #, c-format
 msgid "Could not open device for playback in %d-channel mode."
-msgstr "No s'ha pogut obrir el dispositiu per a reproduir en mode %d-canals."
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a la reproducció en mode %d-canals."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"No s'ha pogut obrir el dispositiu d'àudio per a reproduir. El dispositiu "
-"està en ús per una altra aplicació."
+"No s'ha pogut obrir el dispositiu d'àudio per a la reproducció. El "
+"dispositiu està en ús per una altra aplicació."
 
 msgid "Could not open audio device for playback."
-msgstr "No s'ha pogut obrir el dispositiu d'àudio per a reproduir."
+msgstr "No s'ha pogut obrir el dispositiu d'àudio per a la reproducció."
 
 msgid "Could not open device for recording in mono mode."
-msgstr "No s'ha pogut obrir el dispositiu per a enregistrar en mode mono."
+msgstr "No s'ha pogut obrir el dispositiu per a l'enregistrament en mode mono."
 
 msgid "Could not open device for recording in stereo mode."
-msgstr "No s'ha pogut obrir el dispositiu per a enregistrar en mode estèreo."
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a l'enregistrament en mode estèreo."
 
-# FIXME Trailing dot. jm
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "No s'ha pogut obrir el dispositiu per a enregistrar en mode %d-canals"
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a l'enregistrament en mode %d-canals"
 
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
 msgstr ""
-"No s'ha pogut obrir el dispositiu d'àudio per a enregistrar. El dispositiu "
-"està en ús per una altra aplicació."
+"No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament. El "
+"dispositiu està en ús per una altra aplicació."
 
 msgid "Could not open audio device for recording."
-msgstr "No s'ha pogut obrir el dispositiu d'àudio per a enregistrar."
+msgstr "No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament."
 
 msgid "Could not open CD device for reading."
-msgstr "No s'ha pogut obrir el dispositiu del CD per a lectura."
+msgstr "No s'ha pogut obrir el dispositiu del CD per a la lectura."
 
 msgid "Could not seek CD."
 msgstr "No s'ha pogut cercar el CD."
@@ -124,21 +130,21 @@ msgstr ""
 "instaŀlat."
 
 msgid "This appears to be a text file"
-msgstr "Açò sembla ser un fitxer de text"
+msgstr "Això sembla ser un fitxer de text"
 
 msgid "Could not determine type of stream"
 msgstr "No s'ha pogut determinar el tipus de flux"
 
 #, c-format
 msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-msgstr "L'URI de subtítols «%s» és invàlida, s'inhabiliten els subtítols."
+msgstr "L'URI de subtítols «%s» no és vàlid, s'inhabiliten els subtítols."
 
 msgid "No URI specified to play from."
-msgstr "No s'ha especificat cap URL des d'on reproduir."
+msgstr "No s'ha especificat cap URI des d'on reproduir."
 
 #, c-format
 msgid "Invalid URI \"%s\"."
-msgstr "L'URI «%s» és invàlid."
+msgstr "L'URI «%s» no és vàlid."
 
 msgid "RTSP streams cannot be played yet."
 msgstr "Encara no es poden reproduir els fluxes RTSP."
@@ -147,7 +153,7 @@ msgid "Could not create \"decodebin\" element."
 msgstr "No s'ha pogut crear l'element «decodebin»."
 
 msgid "Source element is invalid."
-msgstr "L'element font és invàlid."
+msgstr "L'element font no és vàlid."
 
 msgid ""
 "Only a subtitle stream was detected. Either you are loading a subtitle file "
@@ -155,30 +161,30 @@ msgid ""
 msgstr ""
 "Només s'ha detectat un flux de subtítols. O bé esteu carregant un fitxer de "
 "subtítols o qualsevol altre tipus de fitxer de text, o no s'ha reconegut el "
-"fitxer de medi."
+"fitxer multimèdia."
 
 msgid ""
 "You do not have a decoder installed to handle this file. You might need to "
 "install the necessary plugins."
 msgstr ""
-"No teniu un decodificador instaŀlat per a gestionar aquest fitxer. És "
+"No teniu un descodificador instaŀlat per a gestionar aquest fitxer. És "
 "possible que necessiteu instaŀlar els connectors necessaris."
 
 msgid "This is not a media file"
-msgstr "Aquest no és un fitxer de medi"
+msgstr "Això no és un fitxer multimèdia"
 
 msgid "A subtitle stream was detected, but no video stream."
 msgstr "S'ha detectat un flux de subtítols, però no un flux de vídeo."
 
 msgid "Both autovideosink and xvimagesink elements are missing."
-msgstr "Manquen l'element autovideosink i el xvimagesink."
+msgstr "Manquen els elements autovideosink i xvimagesink."
 
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Manca l'element «%s» - comproveu la vostra instaŀlació del GStreamer."
 
 msgid "Both autoaudiosink and alsasink elements are missing."
-msgstr "Manquen l'element autoaudiosink i l'alsasink."
+msgstr "Manquen els elements autoaudiosink i alsasink."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -193,13 +199,13 @@ msgstr "El videosink configurat %s no funciona."
 
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
-msgstr "Tant l'element autovideosink com el %s no funcionen."
+msgstr "Els elements autovideosink i %s no funcionen."
 
 msgid "The autovideosink element is not working."
 msgstr "L'element autovideosink no funciona."
 
 msgid "Custom text sink element is not usable."
-msgstr "L'element sortida personalitzat de text no es pot emprar."
+msgstr "L'element sortida de text personalitzat no es pot utilitzar."
 
 msgid "No volume control found"
 msgstr "No s'ha trobat un control de volum"
@@ -217,7 +223,7 @@ msgstr "L'audiosink configurat %s no funciona."
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
-msgstr "No funcionen tant l'element autoaudiosink com el %s."
+msgstr "Els elements autoaudiosink i %s no funcionen."
 
 msgid "The autoaudiosink element is not working."
 msgstr "L'element autoaudiosink no funciona."
@@ -227,7 +233,7 @@ msgstr "No es pot reproduir un fitxer de text sense vídeo o visualitzacions."
 
 #, c-format
 msgid "No decoder available for type '%s'."
-msgstr "No hi ha un decodificador disponible per al tipus «%s»."
+msgstr "No hi ha cap descodificador disponible per al tipus «%s»."
 
 msgid "This stream type cannot be played yet."
 msgstr "Encara no es pot reproduir aquest tipus de flux."
@@ -290,125 +296,138 @@ msgid "MusicBrainz TRM ID"
 msgstr "ID TRM al MusicBrainz"
 
 msgid "capturing shutter speed"
-msgstr "velocitat de l'obturador de la captura"
+msgstr "velocitat d'obturació de la captura"
 
 msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Velocitat d'obturació utilitzat en capturar una imatge, en segons"
 
 msgid "capturing focal ratio"
-msgstr ""
+msgstr "relació focal de la captura"
 
 msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Relació focal (nombre f) utilitzat en capturar la imatge"
 
 msgid "capturing focal length"
-msgstr ""
+msgstr "longitud focal de la captura"
 
 msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Longitud focal de la lent utilitzada en capturar la imatge, en mm"
 
 msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "relació de zoom digital de la captura"
 
 msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Relació de zoom digital utilitzat en capturar una imatge"
 
 msgid "capturing iso speed"
-msgstr ""
+msgstr "velocitat iso de la captura"
 
 msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "La velocitat ISO utilitzada en capturar una imatge"
 
 msgid "capturing exposure program"
-msgstr ""
+msgstr "programa d'exposició de la captura"
 
 msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "El programa d'exposició utilitzar en capturar una imatge"
 
 msgid "capturing exposure mode"
-msgstr ""
+msgstr "mode d'exposició de la captura"
 
 msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "El mode d'exposició utilitzat en capturar una imatge"
 
+#, fuzzy
 msgid "capturing exposure compensation"
-msgstr ""
+msgstr "mode d'exposició de la captura"
 
+#, fuzzy
 msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "El mode d'exposició utilitzat en capturar una imatge"
 
 msgid "capturing scene capture type"
-msgstr ""
+msgstr "tipus de captura d'escena de la captura"
 
 msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "El mode de captura d'escena utilitzat en capturar una imatge"
 
 msgid "capturing gain adjustment"
-msgstr ""
+msgstr "ajust de guany de la captura"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "L'ajust del guany general aplicat a una imatge"
 
 msgid "capturing white balance"
-msgstr ""
+msgstr "balanç de blancs de la captura"
 
 msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "El mode de balanç de blancs utilitzat en capturar una imatge"
 
 msgid "capturing contrast"
-msgstr ""
+msgstr "contrast de la captura"
 
 msgid "The direction of contrast processing applied when capturing an image"
 msgstr ""
+"La direcció del processament del contrast aplicada en capturar una imatge"
 
 msgid "capturing saturation"
-msgstr ""
+msgstr "saturació de la captura"
 
 msgid "The direction of saturation processing applied when capturing an image"
 msgstr ""
+"La direcció del processament de la saturació aplicada en capturar una imatge"
 
 msgid "capturing sharpness"
-msgstr ""
+msgstr "nitidesa de la captura"
 
 msgid "The direction of sharpness processing applied when capturing an image"
 msgstr ""
+"La direcció del processament de la nitidesa aplicada en capturar una imatge"
 
 msgid "capturing flash fired"
-msgstr ""
+msgstr "flaix de la captura"
 
 msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Si el flaix s'ha disparat en capturar una imatge"
 
 msgid "capturing flash mode"
-msgstr ""
+msgstr "mode de flaix de la captura"
 
 msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "El mode de flaix seleccionat en capturar una imatge"
 
 msgid "capturing metering mode"
-msgstr ""
+msgstr "mode de mesurament de la captura"
 
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
 msgstr ""
+"El mode de mesurament utilitzat en determinar l'exposició per a capturar una "
+"imatge"
 
 msgid "capturing source"
-msgstr ""
+msgstr "font de la captura"
 
 msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "La font o tipus de dispositiu utilitzat per a la captura"
 
 msgid "image horizontal ppi"
-msgstr "ppi horitzontal de la imatge"
+msgstr "ppp horitzontal de la imatge"
 
 msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Densitat horitzontal de píxels del medi (imatge/vídeo), en ppi"
+msgstr "Densitat horitzontal de píxels del multimèdia (imatge/vídeo), en ppp"
 
 msgid "image vertical ppi"
-msgstr "ppi vertical de la imatge"
+msgstr "ppp vertical de la imatge"
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Densitat vertical de píxels del medi (imatge/vídeo), en ppi"
+msgstr "Densitat vertical de píxels del multimèdia (imatge/vídeo), en ppp"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
 
 msgid "This CD has no audio tracks"
 msgstr "Aquest CD no té pistes d'àudio"
@@ -420,34 +439,34 @@ msgid "APE tag"
 msgstr "Etiqueta APE"
 
 msgid "ICY internet radio"
-msgstr "Emisora de ràdio per Internet ICY"
+msgstr "Emissora de ràdio per Internet ICY"
 
 msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgstr "Àudio sense pèrdues d'Apple (ALAC)"
 
 msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgstr "Còdec d'àudio sense pèrdues lliure (FLAC)"
 
 msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgstr "Àudio sense pèrdues real (TTA)"
 
 msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgstr "Parla de Windows Media"
 
 msgid "CYUV Lossless"
-msgstr "CYUV sense pèrdua"
+msgstr "CYUV sense pèrdues"
 
 msgid "FFMpeg v1"
 msgstr "FFMpeg v1"
 
 msgid "Lossless MSZH"
-msgstr "MSZH sense pèrdua"
+msgstr "MSZH sense pèrdues"
 
 msgid "Uncompressed Gray Image"
-msgstr "Imatge en escala de grisos no comprimida"
+msgstr "Imatge en escala de grisos sense comprimir"
 
 msgid "Run-length encoding"
-msgstr ""
+msgstr "Codificació Run-length"
 
 msgid "Sami subtitle format"
 msgstr "Format de subtítols Sami"
@@ -459,41 +478,41 @@ msgid "Kate subtitle format"
 msgstr "Format de subtítols Kate"
 
 msgid "Uncompressed planar YUV 4:2:0"
-msgstr ""
+msgstr "YUV 4:2:0 planar sense comprimir"
 
 msgid "Uncompressed planar YVU 4:2:0"
-msgstr ""
+msgstr "YVU 4:2:0 planar sense comprimir"
 
 msgid "Uncompressed packed YUV 4:2:2"
-msgstr ""
+msgstr "YUV 4:2:2 empaquetat sense comprimir"
 
 msgid "Uncompressed packed YUV 4:1:0"
-msgstr ""
+msgstr "YUV 4:1:0 empaquetat sense comprimir"
 
 msgid "Uncompressed packed YVU 4:1:0"
-msgstr ""
+msgstr "YVU 4:1:0 empaquetat sense comprimir"
 
 msgid "Uncompressed packed YUV 4:1:1"
-msgstr ""
+msgstr "YUV 4:1:1 empaquetat sense comprimir"
 
 msgid "Uncompressed packed YUV 4:4:4"
-msgstr ""
+msgstr "YUV 4:4:4 empaquetat sense comprimir"
 
 msgid "Uncompressed planar YUV 4:2:2"
-msgstr ""
+msgstr "YUV 4:2:2 planar sense comprimir"
 
 msgid "Uncompressed planar YUV 4:1:1"
-msgstr ""
+msgstr "YUV 4:1:1 planar sense comprimir"
 
 msgid "Uncompressed black and white Y-plane"
-msgstr ""
+msgstr "Pla Y blanc i negre sense comprimir"
 
 msgid "Uncompressed YUV"
 msgstr "YUV sense comprimir"
 
 #, c-format
 msgid "Uncompressed palettized %d-bit %s"
-msgstr ""
+msgstr "Paletitzat %d-bit %s sense comprimir"
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
@@ -501,7 +520,7 @@ msgstr "DivX MPEG-4 versió %d"
 
 #, c-format
 msgid "Raw %d-bit PCM audio"
-msgstr "Àudio en cru de %d-bit"
+msgstr "Àudio PCM en cru de %d-bit"
 
 msgid "Raw PCM audio"
 msgstr "Àudio PCM en cru"
@@ -520,10 +539,10 @@ msgid "DVD source"
 msgstr "Font de DVD"
 
 msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Font del Real Time Streaming Protocol (RTSP)"
+msgstr "Font del protocol de transmissió en temps real (RTSP)"
 
 msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Font del protocol Microsoft Media Server (MMS)"
+msgstr "Font del protocol de servidor Microsoft Media (MMS)"
 
 #, c-format
 msgid "%s protocol source"
@@ -543,11 +562,11 @@ msgstr "Descarregador RTP %s"
 
 #, c-format
 msgid "%s demuxer"
-msgstr "Demultiplexor %s"
+msgstr "Desmultiplexor %s"
 
 #, c-format
 msgid "%s decoder"
-msgstr "Decodificador %s"
+msgstr "Descodificador %s"
 
 #, c-format
 msgid "%s video RTP payloader"
@@ -583,7 +602,7 @@ msgid "Unknown element"
 msgstr "L'element és desconegut"
 
 msgid "Unknown decoder element"
-msgstr "L'element decodificador és desconegut"
+msgstr "L'element descodificador és desconegut"
 
 msgid "Unknown encoder element"
 msgstr "L'element codificador és desconegut"
@@ -604,7 +623,7 @@ msgstr "El dispositiu «%s» ja és en ús."
 
 #, c-format
 msgid "Could not open device \"%s\" for reading and writing."
-msgstr "No s'ha pogut obrir el dispositiu «%s» per a llegir i escriure."
+msgstr "No s'ha pogut obrir el dispositiu «%s» per a lectura o escriptura."
 
 #~ msgid "discid"
 #~ msgstr "id del disc"
index 0c29978..dfdd090 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index d82d4c6..b442bb1 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,15 +1,15 @@
 # Czech translations of gst-plugins-base.
-# Copyright (C) 2007, 2008, 2009, 2010 the author(s) of gst-plugins-base.
+# Copyright (C) 2007, 2008, 2009, 2010, 2011 the author(s) of gst-plugins-base.
 # Copyright (C) 2004 Miloslav Trmac <mitr@volny.cz>.
 # This file is put in the public domain.
 # Miloslav Trmac <mitr@volny.cz>, 2004.
-# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010.
+# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-0.10.30.3\n"
+"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-10-31 10:51+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-05-29 16:49+0200\n"
 "Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
@@ -17,7 +17,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 1.1\n"
+"X-Generator: Lokalize 1.2\n"
 
 msgid "Master"
 msgstr "Master"
@@ -332,13 +332,11 @@ msgstr "režim expozice záznamu"
 msgid "The exposure mode used when capturing an image"
 msgstr "Režim expozice při záznamu obrazu"
 
-#, fuzzy
 msgid "capturing exposure compensation"
-msgstr "režim expozice záznamu"
+msgstr "kompenzace expozice záznamu"
 
-#, fuzzy
 msgid "The exposure compensation used when capturing an image"
-msgstr "Režim expozice při záznamu obrazu"
+msgstr "Kompenzace expozice při záznamu obrazu"
 
 msgid "capturing scene capture type"
 msgstr "typ zachycení scény záznamu"
@@ -416,6 +414,12 @@ msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 "Zamýšlená hustota pixelů multimédia (image/video) svisle v pixelech na palec"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Toto CD nemá žádné zvukové stopy"
 
index a7a7a71..9469273 100644 (file)
Binary files a/po/da.gmo and b/po/da.gmo differ
index 71240e6..02c2c0b 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-28 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -449,6 +449,12 @@ msgstr "billedets lodrette billedtæthed (ppi)"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Påtænkt lodret billedtæthed for medie (billede/video) i ppi"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Denne cd har ingen lydspor"
 
index e87d6d4..41aa98e 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 13d6985..1730be6 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-28 00:04+0200\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -420,6 +420,12 @@ msgstr "Vertikale Bildauflösung"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Vertikale Auflösung des Bildes oder Videos in ppi (Pixel pro Zoll)"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Auf dieser CD befinden sich keine Audio-Titel"
 
index 2f765d4..8c04b7a 100644 (file)
Binary files a/po/el.gmo and b/po/el.gmo differ
index b2da853..dfb2485 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-10-27 12:05+0200\n"
 "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -428,6 +428,12 @@ msgstr ""
 "Η σκοπούμενη κάθετη πυκνότητα εικονοστοιχείων (pixel) του μέσου (εικόνα/"
 "βίντεο) σε ppi"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Αυτό το CD δεν έχει ηχητικά κομμάτια"
 
index feedec4..70b1d72 100644 (file)
Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ
index 450d126..d8f7f7f 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -408,6 +408,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
diff --git a/po/eo.gmo b/po/eo.gmo
new file mode 100644 (file)
index 0000000..b1dfb8f
Binary files /dev/null and b/po/eo.gmo differ
diff --git a/po/eo.po b/po/eo.po
new file mode 100644 (file)
index 0000000..781d4a2
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,605 @@
+# Esperanto translation for gst-plugins-base.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gst-plugins-base package.
+# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-06-04 21:11+0100\n"
+"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Master"
+msgstr "Ĉefa regilo"
+
+msgid "Bass"
+msgstr "Baso"
+
+msgid "Treble"
+msgstr ""
+
+msgid "PCM"
+msgstr ""
+
+msgid "Synth"
+msgstr "Sintezilo"
+
+msgid "Line-in"
+msgstr ""
+
+msgid "CD"
+msgstr "KD"
+
+msgid "Microphone"
+msgstr "Mikrofono"
+
+msgid "PC Speaker"
+msgstr "Komputila laŭtparolilo"
+
+msgid "Playback"
+msgstr "Reproduktado"
+
+msgid "Capture"
+msgstr "Kapti"
+
+msgid "Could not open device for playback in mono mode."
+msgstr "Ne eblis malfermi aparaton por reproduktado per unukanala reĝimo."
+
+msgid "Could not open device for playback in stereo mode."
+msgstr "Ne eblis malfermi aparaton por reproduktado per dukanala reĝimo."
+
+#, c-format
+msgid "Could not open device for playback in %d-channel mode."
+msgstr "Ne eblis malfermi la aparaton por reproduktado per %d-kanala reĝimo."
+
+msgid ""
+"Could not open audio device for playback. Device is being used by another "
+"application."
+msgstr ""
+"Ne eblis malfermi la sonaparaton por reproduktado. Ĝi estas uzate de alia "
+"aplikaĵo."
+
+msgid "Could not open audio device for playback."
+msgstr "Ne eblis malfermi la sonaparaton por reproduktado."
+
+msgid "Could not open device for recording in mono mode."
+msgstr "Ne eblis malfermi la aparaton por registrado per unukanala reĝimo."
+
+msgid "Could not open device for recording in stereo mode."
+msgstr "Ne eblis malfermi la aparaton por registrado per dukanala reĝimo."
+
+#, c-format
+msgid "Could not open device for recording in %d-channel mode"
+msgstr "Ne eblis malfermi la aparaton por registrado per %d-kanala reĝimo."
+
+msgid ""
+"Could not open audio device for recording. Device is being used by another "
+"application."
+msgstr ""
+"Ne eblis malfermi la aparaton por registrado. Ĝi estas uzate de alia "
+"aplikaĵo."
+
+msgid "Could not open audio device for recording."
+msgstr "Ne eblis malfermi sonaparaton por registrado."
+
+msgid "Could not open CD device for reading."
+msgstr "Ne eblis malfermi KD-aparaton por legado."
+
+msgid "Could not seek CD."
+msgstr "Ne eblis traserĉi la KD-n."
+
+msgid "Could not read CD."
+msgstr "Ne eblis legi la KD-n."
+
+#, c-format
+msgid "Could not open vfs file \"%s\" for writing: %s."
+msgstr "Ne eblis malfermi la vfs-dosieron \"%s\" por skribado: %s."
+
+msgid "No filename given"
+msgstr "Ne donis dosiernomon"
+
+#, c-format
+msgid "Could not close vfs file \"%s\"."
+msgstr "Ne eblis fermi vfs-dosieron \"%s\"."
+
+#, c-format
+msgid "Error while writing to file \"%s\"."
+msgstr "Eraro dum skribo al dosiero \"%s\"."
+
+msgid "Internal data stream error."
+msgstr "Interna datumflu-eraro."
+
+#, c-format
+msgid "A %s plugin is required to play this stream, but not installed."
+msgstr "%s-kromprogramo bezonatas, sed tia ne estas instalite."
+
+msgid "This appears to be a text file"
+msgstr "Tio ŝajnas esti tekstdosiero"
+
+msgid "Could not determine type of stream"
+msgstr "Ne eblis rekoni la tipon de la fluo"
+
+#, c-format
+msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+msgstr "Nevalida subtekst-adreso \"%s\", subtekstoj estos elŝaltate."
+
+msgid "No URI specified to play from."
+msgstr ""
+
+#, c-format
+msgid "Invalid URI \"%s\"."
+msgstr "Nevalida URI \"%s\"."
+
+msgid "RTSP streams cannot be played yet."
+msgstr "Ankoraŭ ne eblas ludi RTSP-fluojn."
+
+msgid "Could not create \"decodebin\" element."
+msgstr "Ne eblis krei \"decodebin\"-elementon."
+
+msgid "Source element is invalid."
+msgstr "Font-elemento estas nevalide."
+
+msgid ""
+"Only a subtitle stream was detected. Either you are loading a subtitle file "
+"or some other type of text file, or the media file was not recognized."
+msgstr ""
+
+msgid ""
+"You do not have a decoder installed to handle this file. You might need to "
+"install the necessary plugins."
+msgstr ""
+
+msgid "This is not a media file"
+msgstr "Tio ne estas aŭdvidaĵa dosiero"
+
+msgid "A subtitle stream was detected, but no video stream."
+msgstr ""
+
+msgid "Both autovideosink and xvimagesink elements are missing."
+msgstr "Ambaŭ elementoj \"autovideosink\" kaj \"xvimagesink\" mankas."
+
+#, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+msgid "Both autoaudiosink and alsasink elements are missing."
+msgstr ""
+
+#, c-format
+msgid "Both autovideosink and %s elements are missing."
+msgstr ""
+
+msgid "The autovideosink element is missing."
+msgstr ""
+
+#, c-format
+msgid "Configured videosink %s is not working."
+msgstr ""
+
+#, c-format
+msgid "Both autovideosink and %s elements are not working."
+msgstr ""
+
+msgid "The autovideosink element is not working."
+msgstr ""
+
+msgid "Custom text sink element is not usable."
+msgstr ""
+
+msgid "No volume control found"
+msgstr "Ne trovis laŭtec-regilon"
+
+#, c-format
+msgid "Both autoaudiosink and %s elements are missing."
+msgstr ""
+
+msgid "The autoaudiosink element is missing."
+msgstr ""
+
+#, c-format
+msgid "Configured audiosink %s is not working."
+msgstr ""
+
+#, c-format
+msgid "Both autoaudiosink and %s elements are not working."
+msgstr ""
+
+msgid "The autoaudiosink element is not working."
+msgstr ""
+
+msgid "Can't play a text file without video or visualizations."
+msgstr ""
+
+#, c-format
+msgid "No decoder available for type '%s'."
+msgstr ""
+
+msgid "This stream type cannot be played yet."
+msgstr ""
+
+#, c-format
+msgid "No URI handler implemented for \"%s\"."
+msgstr ""
+
+#, c-format
+msgid "Error while sending data to \"%s:%d\"."
+msgstr "Eraro dum sendado de datumoj al \"%s:%d\"."
+
+#, c-format
+msgid "Error while sending gdp header data to \"%s:%d\"."
+msgstr ""
+
+#, c-format
+msgid "Error while sending gdp payload data to \"%s:%d\"."
+msgstr ""
+
+#, c-format
+msgid "Connection to %s:%d refused."
+msgstr ""
+
+msgid "Can't record audio fast enough"
+msgstr "Ne eblas registri la sonon sufiĉe rapide"
+
+msgid "Failed to read tag: not enough data"
+msgstr ""
+
+msgid "track ID"
+msgstr ""
+
+msgid "MusicBrainz track ID"
+msgstr ""
+
+msgid "artist ID"
+msgstr ""
+
+msgid "MusicBrainz artist ID"
+msgstr ""
+
+msgid "album ID"
+msgstr "album-ID"
+
+msgid "MusicBrainz album ID"
+msgstr ""
+
+msgid "album artist ID"
+msgstr ""
+
+msgid "MusicBrainz album artist ID"
+msgstr ""
+
+msgid "track TRM ID"
+msgstr ""
+
+msgid "MusicBrainz TRM ID"
+msgstr ""
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
+msgid "This CD has no audio tracks"
+msgstr ""
+
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Uncompressed Gray Image"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed planar YUV 4:2:0"
+msgstr ""
+
+msgid "Uncompressed planar YVU 4:2:0"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:2:2"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:1:0"
+msgstr ""
+
+msgid "Uncompressed packed YVU 4:1:0"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:1:1"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:4:4"
+msgstr ""
+
+msgid "Uncompressed planar YUV 4:2:2"
+msgstr ""
+
+msgid "Uncompressed planar YUV 4:1:1"
+msgstr ""
+
+msgid "Uncompressed black and white Y-plane"
+msgstr ""
+
+msgid "Uncompressed YUV"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "\"DivX MPEG-4\"-versio %d"
+
+#, c-format
+msgid "Raw %d-bit PCM audio"
+msgstr ""
+
+msgid "Raw PCM audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit floating-point audio"
+msgstr ""
+
+msgid "Raw floating-point audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr "Son-KD-fonto"
+
+msgid "DVD source"
+msgstr "DVD-fonto"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokolfonto"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr "Nekonata fontelemento"
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr "Nekonata elemento"
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
+msgstr ""
+
+msgid "No device specified."
+msgstr ""
+
+#, c-format
+msgid "Device \"%s\" does not exist."
+msgstr "Aparato \"%s\" ne ekzistas."
+
+#, c-format
+msgid "Device \"%s\" is already being used."
+msgstr "Aparato \"%s\" jam estas uzata."
+
+#, c-format
+msgid "Could not open device \"%s\" for reading and writing."
+msgstr "Ne eblis malfermi aparaton  \"%s\" por legado aŭ skribado."
index d783dff..219400a 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 43272ee..d4b41ad 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,21 +1,21 @@
-# translation of gst-plugins-base-0.10.30.3.po to Español
+# translation of gst-plugins-base-0.10.32.2.po to Español
 # spanish translation for gst-plugins-base
 # This file is put in the public domain.
-# Jorge González González <aloriel@gmail.com>, 2007, 2008, 2009, 2010.
+# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-11-02 15:40+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-10-02 15:46+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 msgid "Master"
 msgstr "Maestro"
@@ -331,13 +331,11 @@ msgstr "modo de exposición de la toma"
 msgid "The exposure mode used when capturing an image"
 msgstr "El modo de exposición usado al tomar una imagen"
 
-#, fuzzy
 msgid "capturing exposure compensation"
-msgstr "modo de exposición de la toma"
+msgstr "compensación de la exposición en la captura"
 
-#, fuzzy
 msgid "The exposure compensation used when capturing an image"
-msgstr "El modo de exposición usado al tomar una imagen"
+msgstr "La compensación de exposición usada al capturar una imagen"
 
 msgid "capturing scene capture type"
 msgstr "tipo de escena usado en la toma"
@@ -413,6 +411,12 @@ msgstr "ppi vertical de la imagen"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Densidad vertical de píxeles, en ppi, del medio (imagen o vídeo)"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Este CD no tiene pistas de sonido"
 
index 6b44efe..0ab2782 100644 (file)
Binary files a/po/eu.gmo and b/po/eu.gmo differ
index bd0bcb7..931e4d6 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-03-25 12:32+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -415,6 +415,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "CD honek ez du audio-pistarik"
 
index 840744b..34b5f7c 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index 144a853..b2d9b0d 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-12-31 23:21+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -413,6 +413,12 @@ msgstr "kuvan pystysuora ppi"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Median (kuva tai video) tarkoitettu pystysuora pikselitiheys ppi:nä"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Tällä CD-levyllä ei ole ääniraitoja"
 
index 696d827..263bad9 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 011d8f8..f23cb1f 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-28 09:19+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -429,6 +429,12 @@ msgstr ""
 "Densité de pixels verticale annoncée par le média (image/vidéo), en points "
 "par pouce"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Ce CD ne contient aucune piste audio"
 
index 613209a..ba32fe8 100644 (file)
Binary files a/po/gl.gmo and b/po/gl.gmo differ
index ed874c6..1585351 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -2,14 +2,15 @@
 # Copyright (C) 2010 Fran Dieguez
 # This file is distributed under the same license as the gst-plugins-base package.
 # Fran Diéguez <frandieguez@ubuntu.com>, 2010, 2011.
+# Fran Dieguez <frandieguez@ubuntu.com>, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.31.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2011-01-09 21:20+0100\n"
-"Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-09-05 12:48+0200\n"
+"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
 "Language: gl\n"
 "MIME-Version: 1.0\n"
@@ -332,13 +333,11 @@ msgstr "modo de exposición da toma"
 msgid "The exposure mode used when capturing an image"
 msgstr "O modo de exposición usado ao tomar unha imaxe"
 
-#, fuzzy
 msgid "capturing exposure compensation"
-msgstr "modo de exposición da toma"
+msgstr "capturando a compensación de exposición"
 
-#, fuzzy
 msgid "The exposure compensation used when capturing an image"
-msgstr "O modo de exposición usado ao tomar unha imaxe"
+msgstr "A compensación de exposición usada ao capturar unha imaxe"
 
 msgid "capturing scene capture type"
 msgstr "tipo de escena usado na toma"
@@ -414,6 +413,12 @@ msgstr "ppi vertical da imaxe"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Densidade vertical de píxeles, en ppi, do medio (imaxe ou vídeo)"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Este CD non contén pistas de son"
 
index daff7bc..fa1e881 100644 (file)
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.34\n"
+"Project-Id-Version: gst-plugins-base 0.10.36\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -61,49 +61,49 @@ msgstr ""
 msgid "Capture"
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:486
+#: ext/alsa/gstalsasink.c:485
 msgid "Could not open device for playback in mono mode."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:488
+#: ext/alsa/gstalsasink.c:487
 msgid "Could not open device for playback in stereo mode."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:492
+#: ext/alsa/gstalsasink.c:491
 #, c-format
 msgid "Could not open device for playback in %d-channel mode."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:695
+#: ext/alsa/gstalsasink.c:687
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:700
+#: ext/alsa/gstalsasink.c:692
 msgid "Could not open audio device for playback."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:421
+#: ext/alsa/gstalsasrc.c:422
 msgid "Could not open device for recording in mono mode."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:423
+#: ext/alsa/gstalsasrc.c:424
 msgid "Could not open device for recording in stereo mode."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:427
+#: ext/alsa/gstalsasrc.c:428
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:633
+#: ext/alsa/gstalsasrc.c:634
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:638
+#: ext/alsa/gstalsasrc.c:639
 msgid "Could not open audio device for recording."
 msgstr ""
 
@@ -119,86 +119,86 @@ msgstr ""
 msgid "Could not read CD."
 msgstr ""
 
-#: ext/gnomevfs/gstgnomevfssink.c:375
+#: ext/gnomevfs/gstgnomevfssink.c:374
 #, c-format
 msgid "Could not open vfs file \"%s\" for writing: %s."
 msgstr ""
 
-#: ext/gnomevfs/gstgnomevfssink.c:382
+#: ext/gnomevfs/gstgnomevfssink.c:381
 msgid "No filename given"
 msgstr ""
 
-#: ext/gnomevfs/gstgnomevfssink.c:408
+#: ext/gnomevfs/gstgnomevfssink.c:407
 #, c-format
 msgid "Could not close vfs file \"%s\"."
 msgstr ""
 
-#: ext/gnomevfs/gstgnomevfssink.c:566
+#: ext/gnomevfs/gstgnomevfssink.c:565
 #, c-format
 msgid "Error while writing to file \"%s\"."
 msgstr ""
 
-#: ext/ogg/gstoggdemux.c:3480
+#: ext/ogg/gstoggdemux.c:4466
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/playback/gstdecodebin.c:994 gst/playback/gstdecodebin2.c:1576
-#: gst/playback/gstplaybasebin.c:1548 gst/playback/gstplaybasebin.c:1684
+#: gst/playback/gstdecodebin.c:1000 gst/playback/gstdecodebin2.c:1696
+#: gst/playback/gstplaybasebin.c:1549 gst/playback/gstplaybasebin.c:1685
 #, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 
-#: gst/playback/gstdecodebin.c:1825 gst/playback/gstdecodebin2.c:2061
+#: gst/playback/gstdecodebin.c:1845 gst/playback/gstdecodebin2.c:2264
 msgid "This appears to be a text file"
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:1583
+#: gst/playback/gstdecodebin2.c:1703
 msgid "Could not determine type of stream"
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:1531
+#: gst/playback/gstplaybasebin.c:1532
 #, c-format
 msgid "Invalid subtitle URI \"%s\", subtitles disabled."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:1654 gst/playback/gsturidecodebin.c:1148
+#: gst/playback/gstplaybasebin.c:1655 gst/playback/gsturidecodebin.c:1256
 msgid "No URI specified to play from."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:1660 gst/playback/gsturidecodebin.c:1154
+#: gst/playback/gstplaybasebin.c:1661 gst/playback/gsturidecodebin.c:1262
 #, c-format
 msgid "Invalid URI \"%s\"."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:1666
+#: gst/playback/gstplaybasebin.c:1667
 msgid "RTSP streams cannot be played yet."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:2019
+#: gst/playback/gstplaybasebin.c:2020
 msgid "Could not create \"decodebin\" element."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:2239 gst/playback/gsturidecodebin.c:1986
+#: gst/playback/gstplaybasebin.c:2240 gst/playback/gsturidecodebin.c:2091
 msgid "Source element is invalid."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:2316
+#: gst/playback/gstplaybasebin.c:2317
 msgid ""
 "Only a subtitle stream was detected. Either you are loading a subtitle file "
 "or some other type of text file, or the media file was not recognized."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:2321
+#: gst/playback/gstplaybasebin.c:2322
 msgid ""
 "You do not have a decoder installed to handle this file. You might need to "
 "install the necessary plugins."
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:2325
+#: gst/playback/gstplaybasebin.c:2326
 msgid "This is not a media file"
 msgstr ""
 
-#: gst/playback/gstplaybasebin.c:2330
+#: gst/playback/gstplaybasebin.c:2331
 msgid "A subtitle stream was detected, but no video stream."
 msgstr ""
 
@@ -210,16 +210,14 @@ msgstr ""
 #: gst/playback/gstplaybin.c:1177 gst/playback/gstplaybin.c:1186
 #: gst/playback/gstplaybin.c:1195 gst/playback/gstplaybin.c:1326
 #: gst/playback/gstplaybin.c:1335 gst/playback/gstplaybin.c:1344
-#: gst/playback/gstplaysink.c:1116 gst/playback/gstplaysink.c:1129
-#: gst/playback/gstplaysink.c:1260 gst/playback/gstplaysink.c:1277
-#: gst/playback/gstplaysink.c:1296 gst/playback/gstplaysink.c:1466
-#: gst/playback/gstplaysink.c:1515 gst/playback/gstplaysink.c:1530
-#: gst/playback/gstplaysink.c:1555 gst/playback/gstplaysink.c:1579
-#: gst/playback/gstplaysink.c:1699 gst/playback/gstplaysink.c:1766
-#: gst/playback/gstplaysink.c:1785 gst/playback/gstplaysink.c:1805
-#: gst/playback/gstplaysink.c:2080 gst/playback/gstplaysink.c:2089
-#: gst/playback/gstplaysink.c:2098 gst/playback/gstplaysink.c:2107
-#: gst/playback/gstplaysink.c:2888 gst/playback/gsturidecodebin.c:1235
+#: gst/playback/gstplaysink.c:1186 gst/playback/gstplaysink.c:1199
+#: gst/playback/gstplaysink.c:1330 gst/playback/gstplaysink.c:1510
+#: gst/playback/gstplaysink.c:1559 gst/playback/gstplaysink.c:1574
+#: gst/playback/gstplaysink.c:1599 gst/playback/gstplaysink.c:1631
+#: gst/playback/gstplaysink.c:1751 gst/playback/gstplaysink.c:2106
+#: gst/playback/gstplaysink.c:2115 gst/playback/gstplaysink.c:2124
+#: gst/playback/gstplaysink.c:2133 gst/playback/gstplaysink.c:3125
+#: gst/playback/gsturidecodebin.c:1343
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
@@ -228,79 +226,79 @@ msgstr ""
 msgid "Both autoaudiosink and alsasink elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1336
+#: gst/playback/gstplaysink.c:1379
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1340
+#: gst/playback/gstplaysink.c:1383
 msgid "The autovideosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1345
+#: gst/playback/gstplaysink.c:1388
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1349
+#: gst/playback/gstplaysink.c:1392
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1353
+#: gst/playback/gstplaysink.c:1396
 msgid "The autovideosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1503
+#: gst/playback/gstplaysink.c:1547
 msgid "Custom text sink element is not usable."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1848
+#: gst/playback/gstplaysink.c:1869
 msgid "No volume control found"
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1868
+#: gst/playback/gstplaysink.c:1889
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1872
+#: gst/playback/gstplaysink.c:1893
 msgid "The autoaudiosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1877
+#: gst/playback/gstplaysink.c:1898
 #, c-format
 msgid "Configured audiosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1881
+#: gst/playback/gstplaysink.c:1902
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1885
+#: gst/playback/gstplaysink.c:1906
 msgid "The autoaudiosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2183 gst/playback/gstplaysink.c:2188
+#: gst/playback/gstplaysink.c:2209 gst/playback/gstplaysink.c:2214
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:867
+#: gst/playback/gsturidecodebin.c:874
 #, c-format
 msgid "No decoder available for type '%s'."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1160
+#: gst/playback/gsturidecodebin.c:1268
 msgid "This stream type cannot be played yet."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1177
+#: gst/playback/gsturidecodebin.c:1285
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
 msgstr ""
 
-#: gst/tcp/gsttcp.c:503 gst/tcp/gsttcpclientsink.c:283
+#: gst/tcp/gsttcp.c:503 gst/tcp/gsttcpclientsink.c:282
 #, c-format
 msgid "Error while sending data to \"%s:%d\"."
 msgstr ""
@@ -315,220 +313,228 @@ msgstr ""
 msgid "Error while sending gdp payload data to \"%s:%d\"."
 msgstr ""
 
-#: gst/tcp/gsttcpclientsink.c:395 gst/tcp/gsttcpclientsrc.c:379
+#: gst/tcp/gsttcpclientsink.c:394 gst/tcp/gsttcpclientsrc.c:378
 #, c-format
 msgid "Connection to %s:%d refused."
 msgstr ""
 
-#: gst-libs/gst/audio/gstbaseaudiosrc.c:835
+#: gst-libs/gst/audio/gstbaseaudiosrc.c:837
 msgid "Can't record audio fast enough"
 msgstr ""
 
-#: gst-libs/gst/tag/gsttagdemux.c:1079
+#: gst-libs/gst/tag/gsttagdemux.c:1078
 msgid "Failed to read tag: not enough data"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:78
+#: gst-libs/gst/tag/tags.c:79
 msgid "track ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:78
+#: gst-libs/gst/tag/tags.c:79
 msgid "MusicBrainz track ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:80
+#: gst-libs/gst/tag/tags.c:81
 msgid "artist ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:80
+#: gst-libs/gst/tag/tags.c:81
 msgid "MusicBrainz artist ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:82
+#: gst-libs/gst/tag/tags.c:83
 msgid "album ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:82
+#: gst-libs/gst/tag/tags.c:83
 msgid "MusicBrainz album ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:85
+#: gst-libs/gst/tag/tags.c:86
 msgid "album artist ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:85
+#: gst-libs/gst/tag/tags.c:86
 msgid "MusicBrainz album artist ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:87
+#: gst-libs/gst/tag/tags.c:88
 msgid "track TRM ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:87
+#: gst-libs/gst/tag/tags.c:88
 msgid "MusicBrainz TRM ID"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:109
+#: gst-libs/gst/tag/tags.c:110
 msgid "capturing shutter speed"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:110
+#: gst-libs/gst/tag/tags.c:111
 msgid "Shutter speed used when capturing an image, in seconds"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:113
+#: gst-libs/gst/tag/tags.c:114
 msgid "capturing focal ratio"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:114
+#: gst-libs/gst/tag/tags.c:115
 msgid "Focal ratio (f-number) used when capturing the image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:117
+#: gst-libs/gst/tag/tags.c:118
 msgid "capturing focal length"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:118
+#: gst-libs/gst/tag/tags.c:119
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:121
+#: gst-libs/gst/tag/tags.c:122
 msgid "capturing digital zoom ratio"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:122
+#: gst-libs/gst/tag/tags.c:123
 msgid "Digital zoom ratio used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:125
+#: gst-libs/gst/tag/tags.c:126
 msgid "capturing iso speed"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:126
+#: gst-libs/gst/tag/tags.c:127
 msgid "The ISO speed used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:129
+#: gst-libs/gst/tag/tags.c:130
 msgid "capturing exposure program"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:130
+#: gst-libs/gst/tag/tags.c:131
 msgid "The exposure program used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:133
+#: gst-libs/gst/tag/tags.c:134
 msgid "capturing exposure mode"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:134
+#: gst-libs/gst/tag/tags.c:135
 msgid "The exposure mode used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:137
+#: gst-libs/gst/tag/tags.c:138
 msgid "capturing exposure compensation"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:138
+#: gst-libs/gst/tag/tags.c:139
 msgid "The exposure compensation used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:141
+#: gst-libs/gst/tag/tags.c:142
 msgid "capturing scene capture type"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:142
+#: gst-libs/gst/tag/tags.c:143
 msgid "The scene capture mode used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:145
+#: gst-libs/gst/tag/tags.c:146
 msgid "capturing gain adjustment"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:146
+#: gst-libs/gst/tag/tags.c:147
 msgid "The overall gain adjustment applied on an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:149
+#: gst-libs/gst/tag/tags.c:150
 msgid "capturing white balance"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:150
+#: gst-libs/gst/tag/tags.c:151
 msgid "The white balance mode set when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:153
+#: gst-libs/gst/tag/tags.c:154
 msgid "capturing contrast"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:154
+#: gst-libs/gst/tag/tags.c:155
 msgid "The direction of contrast processing applied when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:158
+#: gst-libs/gst/tag/tags.c:159
 msgid "capturing saturation"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:159
+#: gst-libs/gst/tag/tags.c:160
 msgid "The direction of saturation processing applied when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:163
+#: gst-libs/gst/tag/tags.c:164
 msgid "capturing sharpness"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:164
+#: gst-libs/gst/tag/tags.c:165
 msgid "The direction of sharpness processing applied when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:168
+#: gst-libs/gst/tag/tags.c:169
 msgid "capturing flash fired"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:169
+#: gst-libs/gst/tag/tags.c:170
 msgid "If the flash fired while capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:172
+#: gst-libs/gst/tag/tags.c:173
 msgid "capturing flash mode"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:173
+#: gst-libs/gst/tag/tags.c:174
 msgid "The selected flash mode while capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:176
+#: gst-libs/gst/tag/tags.c:177
 msgid "capturing metering mode"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:177
+#: gst-libs/gst/tag/tags.c:178
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:181
+#: gst-libs/gst/tag/tags.c:182
 msgid "capturing source"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:182
+#: gst-libs/gst/tag/tags.c:183
 msgid "The source or type of device used for the capture"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:185
+#: gst-libs/gst/tag/tags.c:186
 msgid "image horizontal ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:186
+#: gst-libs/gst/tag/tags.c:187
 msgid "Media (image/video) intended horizontal pixel density in ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:189
+#: gst-libs/gst/tag/tags.c:190
 msgid "image vertical ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:190
+#: gst-libs/gst/tag/tags.c:191
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+#: gst-libs/gst/tag/tags.c:194
+msgid "ID3v2 frame"
+msgstr ""
+
+#: gst-libs/gst/tag/tags.c:194
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #: gst-libs/gst/cdda/gstcddabasesrc.c:1468
 #: gst-libs/gst/cdda/gstcddabasesrc.c:1501
 msgid "This CD has no audio tracks"
@@ -584,163 +590,163 @@ msgstr ""
 msgid "Run-length encoding"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:237
+#: gst-libs/gst/pbutils/descriptions.c:238
 msgid "Sami subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:238
+#: gst-libs/gst/pbutils/descriptions.c:239
 msgid "TMPlayer subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:240
+#: gst-libs/gst/pbutils/descriptions.c:241
 msgid "Kate subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:304
+#: gst-libs/gst/pbutils/descriptions.c:305
 msgid "Uncompressed planar YUV 4:2:0"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:307
+#: gst-libs/gst/pbutils/descriptions.c:308
 msgid "Uncompressed planar YVU 4:2:0"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:310
-#: gst-libs/gst/pbutils/descriptions.c:320
+#: gst-libs/gst/pbutils/descriptions.c:311
+#: gst-libs/gst/pbutils/descriptions.c:321
 msgid "Uncompressed packed YUV 4:2:2"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:313
+#: gst-libs/gst/pbutils/descriptions.c:314
 msgid "Uncompressed packed YUV 4:1:0"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:316
+#: gst-libs/gst/pbutils/descriptions.c:317
 msgid "Uncompressed packed YVU 4:1:0"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:323
+#: gst-libs/gst/pbutils/descriptions.c:324
 msgid "Uncompressed packed YUV 4:1:1"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:326
+#: gst-libs/gst/pbutils/descriptions.c:327
 msgid "Uncompressed packed YUV 4:4:4"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:329
+#: gst-libs/gst/pbutils/descriptions.c:330
 msgid "Uncompressed planar YUV 4:2:2"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:332
+#: gst-libs/gst/pbutils/descriptions.c:333
 msgid "Uncompressed planar YUV 4:1:1"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:335
+#: gst-libs/gst/pbutils/descriptions.c:336
 msgid "Uncompressed black and white Y-plane"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:338
+#: gst-libs/gst/pbutils/descriptions.c:339
 msgid "Uncompressed YUV"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:349
+#: gst-libs/gst/pbutils/descriptions.c:350
 #, c-format
 msgid "Uncompressed palettized %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:401
+#: gst-libs/gst/pbutils/descriptions.c:402
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:619
+#: gst-libs/gst/pbutils/descriptions.c:620
 #, c-format
 msgid "Raw %d-bit PCM audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:621
+#: gst-libs/gst/pbutils/descriptions.c:622
 msgid "Raw PCM audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:627
+#: gst-libs/gst/pbutils/descriptions.c:628
 #, c-format
 msgid "Raw %d-bit floating-point audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:629
+#: gst-libs/gst/pbutils/descriptions.c:630
 msgid "Raw floating-point audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:716
+#: gst-libs/gst/pbutils/descriptions.c:717
 msgid "Audio CD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:719
+#: gst-libs/gst/pbutils/descriptions.c:720
 msgid "DVD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:722
+#: gst-libs/gst/pbutils/descriptions.c:723
 msgid "Real Time Streaming Protocol (RTSP) source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:726
+#: gst-libs/gst/pbutils/descriptions.c:727
 msgid "Microsoft Media Server (MMS) protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:734
+#: gst-libs/gst/pbutils/descriptions.c:735
 #, c-format
 msgid "%s protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:806
+#: gst-libs/gst/pbutils/descriptions.c:807
 #, c-format
 msgid "%s video RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:808
+#: gst-libs/gst/pbutils/descriptions.c:809
 #, c-format
 msgid "%s audio RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:810
+#: gst-libs/gst/pbutils/descriptions.c:811
 #, c-format
 msgid "%s RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:817
+#: gst-libs/gst/pbutils/descriptions.c:818
 #, c-format
 msgid "%s demuxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:819
+#: gst-libs/gst/pbutils/descriptions.c:820
 #, c-format
 msgid "%s decoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:857
+#: gst-libs/gst/pbutils/descriptions.c:858
 #, c-format
 msgid "%s video RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:859
+#: gst-libs/gst/pbutils/descriptions.c:860
 #, c-format
 msgid "%s audio RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:861
+#: gst-libs/gst/pbutils/descriptions.c:862
 #, c-format
 msgid "%s RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:868
+#: gst-libs/gst/pbutils/descriptions.c:869
 #, c-format
 msgid "%s muxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:870
+#: gst-libs/gst/pbutils/descriptions.c:871
 #, c-format
 msgid "%s encoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:902
+#: gst-libs/gst/pbutils/descriptions.c:903
 #, c-format
 msgid "GStreamer element %s"
 msgstr ""
index 6b95dc7..dc7fb38 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index 56567d5..40f63b0 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-11-03 02:48+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -413,6 +413,12 @@ msgstr "kép függőleges ppi"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "A média (kép/videó) tervezett függőleges képpontsűrűsége ppi-ben"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Ez a CD nem rendelkezik hangsávokkal"
 
index aeaccfa..9ad1f73 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index 5792720..f90522d 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -1,13 +1,13 @@
 # Indonesian translations for gst-plugins-base package.
 # This file is put in the public domain.
-# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010.
+# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010-2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-04-26 22:01+0700\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2012-01-28 11:31+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "Language: id\n"
@@ -284,125 +284,133 @@ msgid "MusicBrainz TRM ID"
 msgstr "ID TRM MusicBrainz"
 
 msgid "capturing shutter speed"
-msgstr ""
+msgstr "menangkap kecepatan rana"
 
 msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Kecepatan rana digunakan saat menangkap gambar, dalam detik"
 
 msgid "capturing focal ratio"
-msgstr ""
+msgstr "menangkap bukaan"
 
 msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Bukaan (angka-f) digunakan ketika menangkap gambar"
 
 msgid "capturing focal length"
-msgstr ""
+msgstr "menangkap panjang fokal"
 
 msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Panjang fokal dari lensa digunakan ketika menangkap gambar, dalam mm"
 
 msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "menangkap rasio pembesaran digital"
 
 msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Rasio pembesaran digital digunakan ketika menangkap gambar"
 
 msgid "capturing iso speed"
-msgstr ""
+msgstr "menangkap kecepatan iso"
 
 msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "Kecepatan ISO digunakan menangkap gambar"
 
 msgid "capturing exposure program"
-msgstr ""
+msgstr "menangkap program pajanan"
 
 msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Program pajanan digunakan ketika menangkap gambar"
 
 msgid "capturing exposure mode"
-msgstr ""
+msgstr "menangkap mode pajanan"
 
 msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Mode pajanan digunakan ketika menangkap gambar"
 
 msgid "capturing exposure compensation"
-msgstr ""
+msgstr "menangkap kompensasi pajanan"
 
 msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Kompensasi pajanan digunakan ketika menangkap gambar"
 
 msgid "capturing scene capture type"
-msgstr ""
+msgstr "menangkap tipe pengambilan scene"
 
 msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Mode penangkapan scene digunakan ketika menangkap gambar"
 
 msgid "capturing gain adjustment"
-msgstr ""
+msgstr "menangkap penyesuaian bati"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Keseluruhan penyesuaian bati diterapkan pada gambar"
 
 msgid "capturing white balance"
-msgstr ""
+msgstr "menangkap white balance"
 
 msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Pengaturan mode white balance ketika menangkap gambar"
 
 msgid "capturing contrast"
-msgstr ""
+msgstr "menangkap kontras"
 
 msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Arah pemrosesan kontras diterapkan ketika menangkap gambar"
 
 msgid "capturing saturation"
-msgstr ""
+msgstr "menangkap saturasi"
 
 msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Arah pemrosesan saturasi diterapkan ketika menangkap gambar"
 
 msgid "capturing sharpness"
-msgstr ""
+msgstr "menangkap ketajaman"
 
 msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Arah pemrosesan ketajaman diterapkan ketika menangkap gambar"
 
 msgid "capturing flash fired"
-msgstr ""
+msgstr "menangkap blitz ditembakkan"
 
 msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Apakah blitz ditembakkan ketika menangkap gambar"
 
 msgid "capturing flash mode"
-msgstr ""
+msgstr "menangkap mode blitz"
 
 msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Mode blitz terpilih ketika menangkap gambar"
 
 msgid "capturing metering mode"
-msgstr ""
+msgstr "menangkap mode meter"
 
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Mode meter digunakan untuk menentukan pajanan ketika menangkap gambar"
 
 msgid "capturing source"
-msgstr ""
+msgstr "menangkap sumber"
 
 msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Sumber atau tipe divais digunakan untuk menangkap"
 
 msgid "image horizontal ppi"
-msgstr ""
+msgstr "ppi horizontal gambar"
 
 msgid "Media (image/video) intended horizontal pixel density in ppi"
 msgstr ""
+"Kerapatan pixel horizontal yang diinginkan media (gambar/video) dalam ppi"
 
 msgid "image vertical ppi"
-msgstr ""
+msgstr "ppi vertikal gambar"
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
+"Kerapatan pixel vertikal yang diinginkan media (gambar/video) dalam ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
 
 msgid "This CD has no audio tracks"
 msgstr "CD ini tidak memiliki jalur audio"
index 11700a4..bf2d4e8 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 7bd3d07..d776f41 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-04-28 14:27+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -416,6 +416,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Questo CD non presenta alcuna traccia audio"
 
index 9b763ac..f4730ef 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index e6d7123..9235e3c 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-10-25 10:27+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -412,6 +412,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "この CD にはオーディオトラックがありません"
 
index 819b641..8dac9a2 100644 (file)
Binary files a/po/lt.gmo and b/po/lt.gmo differ
index bccc1f2..624ce03 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.15.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2008-03-07 23:43+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -413,6 +413,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Šiame CD nėra audio takelių"
 
index 222a2d7..7dbc7e8 100644 (file)
Binary files a/po/lv.gmo and b/po/lv.gmo differ
index 2903b31..0ff562c 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -3,12 +3,13 @@
 #
 # Arvis Lācis <arvis.lacis@inbox.lv>, 2009.
 # Rihards Priedītis <rprieditis@gmail.com>, 2010.
+# Rihards Priedītis <rprieditis@gmail.com>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.29.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-07-07 10:52+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-09-02 12:02-0000\n"
 "Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
 "Language: lv\n"
@@ -291,124 +292,130 @@ msgid "MusicBrainz TRM ID"
 msgstr "MusicBrainz TRM ID"
 
 msgid "capturing shutter speed"
-msgstr ""
+msgstr "Tveršanā aizvara ātrums"
 
 msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais aizvara ātrums sekundēs"
 
 msgid "capturing focal ratio"
-msgstr ""
+msgstr "tveršanā fokusa attiecība"
 
 msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotā fokusa attiecība (f-cipars)"
 
 msgid "capturing focal length"
-msgstr ""
+msgstr "tveršanā fokusa attālums"
 
 msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Attēla tveršanā izmantotā lēcas fokusa attālums milimetros"
 
 msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "tveršanā digitālais tālummaiņas attiecība"
 
 msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais digitālās tālummaiņas attiecība"
 
 msgid "capturing iso speed"
-msgstr ""
+msgstr "tveršanā iso ātrums"
 
 msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais ISO ātrums"
 
 msgid "capturing exposure program"
-msgstr ""
+msgstr "tveršanā atseguma programma"
 
 msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotā atseguma programma"
 
 msgid "capturing exposure mode"
-msgstr ""
+msgstr "tveršanā atseguma režīms"
 
 msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais atseguma režīms"
 
 msgid "capturing exposure compensation"
-msgstr ""
+msgstr "tveršanā atseguma kompensācija"
 
 msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais atseguma kompensācija"
 
 msgid "capturing scene capture type"
-msgstr ""
+msgstr "tveršanā ainas tveršanas tips"
 
 msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotas ainas tveršanas režīms"
 
 msgid "capturing gain adjustment"
-msgstr ""
+msgstr "tveršanā pieaguma korekcija"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais vispārējā pieauguma korekcija"
 
 msgid "capturing white balance"
-msgstr ""
+msgstr "tveršanas baltais balanss"
 
 msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Lietotais baltais balanss virziens attēla tveršanā"
 
 msgid "capturing contrast"
-msgstr ""
+msgstr "tveršanā kontrasts"
 
 msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Lietotais kontrasts virziens attēla tveršanā"
 
 msgid "capturing saturation"
-msgstr ""
+msgstr "tveršanā piesātinājums"
 
 msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Lietotais piesātinājuma virziens attēla tveršanā"
 
 msgid "capturing sharpness"
-msgstr ""
+msgstr "tveršanā asumss"
 
 msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Lietotais asuma virziens attēla tveršanā"
 
 msgid "capturing flash fired"
-msgstr ""
+msgstr "tveršanā zibsnis palaists"
 
 msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Ja zibsnis palaists attēla tveršanā"
 
 msgid "capturing flash mode"
-msgstr ""
+msgstr "tveršanā zibšņa režīms"
 
 msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Atlasītais zibšņa režīms priekš attēla tveršanas"
 
 msgid "capturing metering mode"
-msgstr ""
+msgstr "tveršanā mērīšanas režīms"
 
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Mērīšanas režīms, lai noteiktu atsegumu attēla tveršanai"
 
 msgid "capturing source"
-msgstr ""
+msgstr "tveršanā avots"
 
 msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Tveršanas avots vai iekārtas tips"
 
 msgid "image horizontal ppi"
-msgstr ""
+msgstr "attēla horizontālais ppi"
 
 msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
+msgstr "Medija (attēls/video) domātā horizontālā pikseļu blīvums ppi"
 
 msgid "image vertical ppi"
-msgstr ""
+msgstr "attēla vertikālais ppi"
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Medija (attēls/video) domātā vertikālā pikseļu blīvums ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
 msgstr ""
 
 msgid "This CD has no audio tracks"
index d626bb1..a7b1135 100644 (file)
Binary files a/po/nb.gmo and b/po/nb.gmo differ
index b114339..74c576a 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-10-24 21:44+0200\n"
 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -403,6 +403,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Denne CDen har ingen lydspor"
 
index 056b6ab..5430f8b 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 8118320..227d7dc 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-27 00:12+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -418,6 +418,12 @@ msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 "Voorgenomen verticale pixeldichtheid van medium (afbeelding/video) in ppi"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Deze CD heeft geen audiotracks"
 
index 23eaa24..36d8b8b 100644 (file)
Binary files a/po/or.gmo and b/po/or.gmo differ
index 9234b95..c704ff4 100644 (file)
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
@@ -410,6 +410,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
index 52b732e..a762cd5 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index a5ad73e..1f02706 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-26 18:01+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -414,6 +414,12 @@ msgstr "rozdzielczość pionowa"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Rozdzielczość pionowa nośnika w pikselach na cal"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Ta płyta CD nie ma ścieżek dźwiękowych"
 
index 8b2d738..fc626d3 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 8c95eee..f3d9a18 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-01-08 01:02-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -421,6 +421,12 @@ msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 "Densidade de pixels verticais desejado para a mídia (imagem/vídeo), em PPI"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Este CD não tem trilhas de áudio"
 
index 4b8c85b..9386676 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index 2ef833b..92bec00 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-08-16 01:21+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -409,6 +409,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Acest CD nu conține piste audio"
 
index 00714a3..9d18ea7 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index ec586c2..a259243 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-26 20:30+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -414,6 +414,12 @@ msgstr "изображение в ppi по вертикали"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Вертикальная плотность носителя (изображение/видео) в ppi"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "На CD нет звуковых дорожек"
 
index c0c3013..89ec73f 100644 (file)
Binary files a/po/sk.gmo and b/po/sk.gmo differ
index 7d7f68c..03d23a2 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-11-08 15:34+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -413,6 +413,12 @@ msgstr "zvislé ppi obrázku"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Cieľová zvislá hustota pixlov média (obrázku/videa) v ppi"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Toto CD nemá zvukové stopy"
 
index ba1d80e..c80092d 100644 (file)
Binary files a/po/sl.gmo and b/po/sl.gmo differ
index cbd6355..f30c714 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-26 15:56+0100\n"
 "Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -412,6 +412,12 @@ msgstr "navpične slikovne točke slike (ppi)"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Gostota navpičnih slikovnih točk (v ppi)"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Ta CD nima zvočnih sledi"
 
index 64b5c3c..2bc9a12 100644 (file)
Binary files a/po/sq.gmo and b/po/sq.gmo differ
index 257cf30..85d8044 100644 (file)
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -408,6 +408,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
index 6f01dec..a506734 100644 (file)
Binary files a/po/sr.gmo and b/po/sr.gmo differ
index 6df2c24..50ec072 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,36 +1,39 @@
 # Serbian translation of gst-plugins
 # Copyright (C) 2004 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gst-plugins-base package.
 # Danilo Segan <dsegan@gmx.net>, 2004.
-#
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins 0.7.6\n"
+"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2004-03-13 00:18+0100\n"
-"Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-12-05 09:10+0200\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
 "Language: sr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3;    plural=n%10==1 && n%100!=11 ? 0 :  (n%10>=2 && n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Virtaal 0.7.0\n"
+"X-Project-Style: gnome\n"
 
 msgid "Master"
-msgstr ""
+msgstr "Главни"
 
 msgid "Bass"
 msgstr "Бас"
 
 msgid "Treble"
-msgstr "ШÑ\83м"
+msgstr "Ð\92иÑ\81окоÑ\82онаÑ\86"
 
 msgid "PCM"
 msgstr "ПЦМ"
 
 msgid "Synth"
-msgstr "Синт."
+msgstr "Синтисајзер"
 
 msgid "Line-in"
 msgstr "Ул.лин."
@@ -41,456 +44,457 @@ msgstr "ЦД"
 msgid "Microphone"
 msgstr "Микрофон"
 
-#, fuzzy
 msgid "PC Speaker"
 msgstr "Звучник"
 
 msgid "Playback"
-msgstr ""
+msgstr "Пуштање"
 
 msgid "Capture"
-msgstr ""
+msgstr "Снимање"
 
-#, fuzzy
 msgid "Could not open device for playback in mono mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради пуштања у моно режиму."
 
-#, fuzzy
 msgid "Could not open device for playback in stereo mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради пуштања у стерео режиму."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not open device for playback in %d-channel mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради пуштања у %d-каналном режиму."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
+"Не могу да покренем звучни уређај ради пуштања. Уређај тренутно користи нека "
+"друга апликација."
 
-#, fuzzy
 msgid "Could not open audio device for playback."
-msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82воÑ\80им Ð·Ð²Ñ\83Ñ\87ни Ñ\83Ñ\80еÑ\92аÑ\98 â\80\9e%sâ\80\9c Ñ\80ади Ñ\83пиÑ\81а."
+msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¿Ð¾ÐºÑ\80енем Ð·Ð²Ñ\83Ñ\87ни Ñ\83Ñ\80еÑ\92аÑ\98 Ñ\80ади Ð¿Ñ\83Ñ\88Ñ\82аÑ\9aа."
 
-#, fuzzy
 msgid "Could not open device for recording in mono mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради снимања у моно режиму."
 
-#, fuzzy
 msgid "Could not open device for recording in stereo mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради снимања у стерео режиму."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради снимања у %d-каналном режиму."
 
-#, fuzzy
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
-msgstr "Не могу да отворим уређај „%s“ ради читања и уписа."
+msgstr ""
+"Не могу да отворим уређај ради снимања. Уређај тренутно користи нека друга "
+"апликација."
 
-#, fuzzy
 msgid "Could not open audio device for recording."
-msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82воÑ\80им Ð¦Ð\94 Ñ\83Ñ\80еÑ\92аÑ\98 Ñ\80ади Ñ\87иÑ\82ања."
+msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82воÑ\80им Ð·Ð²Ñ\83Ñ\87ни Ñ\83Ñ\80еÑ\92аÑ\98 Ñ\80ади Ñ\81нимања."
 
 msgid "Could not open CD device for reading."
 msgstr "Не могу да отворим ЦД уређај ради читања."
 
-#, fuzzy
 msgid "Could not seek CD."
-msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð·Ð°Ñ\82воÑ\80им Ð\92СÐ\94 Ð´Ð°Ñ\82оÑ\82екÑ\83 â\80\9e%sâ\80\9c."
+msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¿Ñ\80емоÑ\82ам Ð¦Ð\94."
 
-#, fuzzy
 msgid "Could not read CD."
-msgstr "Не могу да пишем на видео уређај „%s“."
+msgstr "Не могу да читам ЦД."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not open vfs file \"%s\" for writing: %s."
-msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82воÑ\80им Ð\92СÐ\94 Ð´Ð°Ñ\82оÑ\82екÑ\83 â\80\9e%sâ\80\9c Ñ\80ади Ñ\83пиÑ\81а."
+msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82воÑ\80им Ð²Ñ\81д Ð´Ð°Ñ\82оÑ\82екÑ\83 â\80\9e%sâ\80\9c Ñ\80ади Ñ\83пиÑ\81а: %s."
 
-#, fuzzy
 msgid "No filename given"
-msgstr "Ð\98ме Ð´Ð°Ñ\82оÑ\82еке Ð½Ð¸Ñ\98е Ð·Ð°Ð´Ð°Ñ\82о."
+msgstr "Ð\9dиÑ\98е Ð´Ð°Ñ\82 Ð½Ð°Ð·Ð¸Ð² Ð´Ð°Ñ\82оÑ\82еке."
 
 #, c-format
 msgid "Could not close vfs file \"%s\"."
-msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð·Ð°Ñ\82воÑ\80им Ð\92СÐ\94 датотеку „%s“."
+msgstr "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð·Ð°Ñ\82воÑ\80им Ð²Ñ\81д датотеку „%s“."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Error while writing to file \"%s\"."
-msgstr "Грешка при затварању датотеке „%s“."
+msgstr "Грешка приликом писања у датотеку „%s“."
 
 msgid "Internal data stream error."
-msgstr ""
+msgstr "Унутрашња грешка тока података."
 
 #, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
+msgstr "За пуштање овог тока потребан је прикључак „%s“, али није инсталиран."
 
 msgid "This appears to be a text file"
-msgstr ""
+msgstr "Изгледа да је ово текстуална датотека"
 
-#, fuzzy
 msgid "Could not determine type of stream"
-msgstr "Не могу да пишем у датотеку „%s“."
+msgstr "Не могу да утврдим врсту тока"
 
 #, c-format
 msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-msgstr ""
+msgstr "Неисправна адреса превода „%s“, преводи су искључени."
 
 msgid "No URI specified to play from."
-msgstr ""
+msgstr "Није наведена адреса за пуштање."
 
 #, c-format
 msgid "Invalid URI \"%s\"."
-msgstr ""
+msgstr "Неисправна адреса „%s“."
 
 msgid "RTSP streams cannot be played yet."
-msgstr ""
+msgstr "РТСП токови још увек не могу бити пуштени."
 
 msgid "Could not create \"decodebin\" element."
-msgstr ""
+msgstr "Не могу да направим „декодебин“ елемент."
 
 msgid "Source element is invalid."
-msgstr ""
+msgstr "Изворни елемент је неисправан."
 
 msgid ""
 "Only a subtitle stream was detected. Either you are loading a subtitle file "
 "or some other type of text file, or the media file was not recognized."
 msgstr ""
+"Откривен је само ток превода. Или сте учитали датотеку превода или неку "
+"другу врсту текстуалне датотеке или медијска датотеке није препозната."
 
 msgid ""
 "You do not have a decoder installed to handle this file. You might need to "
 "install the necessary plugins."
 msgstr ""
+"Немате инсталиран декодер за руковање овом датотеком. Можда ћете морати да "
+"инсталирате потребне прикључке."
 
-#, fuzzy
 msgid "This is not a media file"
-msgstr "УÑ\80еÑ\92аÑ\98 â\80\9e%sâ\80\9c Ð½Ðµ Ð¿Ñ\80едÑ\81Ñ\82авÑ\99а Ñ\83Ñ\80еÑ\92аÑ\98 Ð·Ð° Ñ\81нимаÑ\9aе."
+msgstr "Ð\9eво Ð½Ð¸Ñ\98е Ð¼ÐµÐ´Ð¸Ñ\98Ñ\81ка Ð´Ð°Ñ\82оÑ\82ека"
 
 msgid "A subtitle stream was detected, but no video stream."
-msgstr ""
+msgstr "Откривен је ток превода, али не и ток видео снимка."
 
 msgid "Both autovideosink and xvimagesink elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање видеа и усклађивање хв слике."
 
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+msgstr "Недостаје елемент „%s“ — проверите вашу инсталацију Гстримера."
 
 msgid "Both autoaudiosink and alsasink elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање звука и усклађивање алсе."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање видеа и „%s“."
 
 msgid "The autovideosink element is missing."
-msgstr ""
+msgstr "Недостаје самоусклађивање видеа."
 
 #, c-format
 msgid "Configured videosink %s is not working."
-msgstr ""
+msgstr "Подешени „%s“ усклађивања видеа не ради."
 
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
-msgstr ""
+msgstr "Не раде ни самоусклађивање видеа ни „%s“."
 
 msgid "The autovideosink element is not working."
-msgstr ""
+msgstr "Не ради самоусклађивање видеа."
 
 msgid "Custom text sink element is not usable."
-msgstr ""
+msgstr "Елемент усклађивања произвољног текста није употребљив."
 
 msgid "No volume control found"
-msgstr ""
+msgstr "Није пронађена контрола јачине звука"
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање звука и „%s“."
 
 msgid "The autoaudiosink element is missing."
-msgstr ""
+msgstr "Недостаје елемент самоусклађивања звука."
 
 #, c-format
 msgid "Configured audiosink %s is not working."
-msgstr ""
+msgstr "Подешени „%s“ усклађивања звука не ради."
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
-msgstr ""
+msgstr "Не раде ни самоусклађивање звука ни „%s“."
 
 msgid "The autoaudiosink element is not working."
-msgstr ""
+msgstr "Не ради самоусклађивање звука."
 
 msgid "Can't play a text file without video or visualizations."
-msgstr ""
+msgstr "Не могу да пустим текстуалну датотеку без видеа или визуелизације."
 
 #, c-format
 msgid "No decoder available for type '%s'."
-msgstr ""
+msgstr "Декодер није доступан за врсту „%s“."
 
 msgid "This stream type cannot be played yet."
-msgstr ""
+msgstr "Ова врста тока још увек не може бити пуштена."
 
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
-msgstr ""
+msgstr "Руковалац адресе није примењен за „%s“."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Error while sending data to \"%s:%d\"."
-msgstr "Грешка при затварању датотеке „%s“."
+msgstr "Грешка приликом слања података у „%s:%d“."
 
 #, c-format
 msgid "Error while sending gdp header data to \"%s:%d\"."
-msgstr ""
+msgstr "Грешка приликом слања података гдп заглавља у „%s:%d“."
 
 #, c-format
 msgid "Error while sending gdp payload data to \"%s:%d\"."
-msgstr ""
+msgstr "Грешка приликом слања података гдп носивости у „%s:%d“."
 
 #, c-format
 msgid "Connection to %s:%d refused."
-msgstr ""
+msgstr "Повезивање са %s:%d је одбијено."
 
 msgid "Can't record audio fast enough"
-msgstr ""
+msgstr "Не могу да снимам звук довољно брзо"
 
 msgid "Failed to read tag: not enough data"
-msgstr ""
+msgstr "Нисам успео да прочитам ознаку: нема довољно података"
 
 msgid "track ID"
-msgstr ""
+msgstr "ИБ нумере"
 
 msgid "MusicBrainz track ID"
-msgstr ""
+msgstr "ИБ нумере Мозгића музике"
 
 msgid "artist ID"
-msgstr ""
+msgstr "ИБ извођача"
 
 msgid "MusicBrainz artist ID"
-msgstr ""
+msgstr "ИБ извођача Мозгића музике"
 
 msgid "album ID"
-msgstr ""
+msgstr "ИБ албума"
 
 msgid "MusicBrainz album ID"
-msgstr ""
+msgstr "ИБ албума Мозгића музике"
 
 msgid "album artist ID"
-msgstr ""
+msgstr "ИБ извођача албума"
 
 msgid "MusicBrainz album artist ID"
-msgstr ""
+msgstr "ИБ извођача албума Мозгића музике"
 
 msgid "track TRM ID"
-msgstr ""
+msgstr "ТРМ ИБ стазе"
 
 msgid "MusicBrainz TRM ID"
-msgstr ""
+msgstr "ИБ ТРМ-а Мозгића музике"
 
 msgid "capturing shutter speed"
-msgstr ""
+msgstr "брзина затварача снимања"
 
 msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Брзина затварача коришћена приликом снимања слике, у секундама"
 
 msgid "capturing focal ratio"
-msgstr ""
+msgstr "жижни однос снимања"
 
 msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Жижни однос (ф-број) коришћен приликом снимања слике"
 
 msgid "capturing focal length"
-msgstr ""
+msgstr "жижна даљина снимања"
 
 msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Жижна даљина објектива коришћеног за снимање слика, у мииметрима"
 
 msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "однос дигиталног зума снимања"
 
 msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Однос дигиталног зума коришћен приликом снимања слике"
 
 msgid "capturing iso speed"
-msgstr ""
+msgstr "брзина изо снимања"
 
 msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "ИЗО брзина коришћена приликом снимања слике"
 
 msgid "capturing exposure program"
-msgstr ""
+msgstr "програм изложености снимања"
 
 msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Програм изложености коришћен приликом снимања слике"
 
 msgid "capturing exposure mode"
-msgstr ""
+msgstr "режим изложености снимања"
 
 msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Режим изложености коришћен приликом снимања слике"
 
 msgid "capturing exposure compensation"
-msgstr ""
+msgstr "поправка изложености снимања"
 
 msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Поправка изложености коришћена приликом снимања слике"
 
 msgid "capturing scene capture type"
-msgstr ""
+msgstr "врста снимка сцене снимања"
 
 msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Режим снимања сцене коришћен приликом снимања слике"
 
 msgid "capturing gain adjustment"
-msgstr ""
+msgstr "подешавање добитка снимања"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Подешавање укупног добитка примењено на слици"
 
 msgid "capturing white balance"
-msgstr ""
+msgstr "баланс белог снимања"
 
 msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Режим баланса белог приликом снимања слике"
 
 msgid "capturing contrast"
-msgstr ""
+msgstr "контраст снимања"
 
 msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Усмерење обраде контраста примењеног приликом снимања слике"
 
 msgid "capturing saturation"
-msgstr ""
+msgstr "засићење снимања"
 
 msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Усмерење обраде засићења примењеног приликом снимања слике"
 
 msgid "capturing sharpness"
-msgstr ""
+msgstr "оштрина снимања"
 
 msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Усмерење обраде оштрине примењене приликом снимања слике"
 
 msgid "capturing flash fired"
-msgstr ""
+msgstr "одрада блица снимања"
 
 msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Ако је блиц одрадио приликом снимања слике"
 
 msgid "capturing flash mode"
-msgstr ""
+msgstr "режим блица снимања"
 
 msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Изабрани режим рада блица приликом снимања слике"
 
 msgid "capturing metering mode"
-msgstr ""
+msgstr "режим мерења снимања"
 
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Режим мерења коришћен приликом одређивања излагања за снимање слике"
 
 msgid "capturing source"
-msgstr ""
+msgstr "извор снимања"
 
 msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Извор или врста уређаја коришћеног за снимање"
 
 msgid "image horizontal ppi"
-msgstr ""
+msgstr "водоравних тпи слике"
 
 msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
+msgstr "Очекивана густина водоравних тачака медија (слике/видеа) у тпи"
 
 msgid "image vertical ppi"
-msgstr ""
+msgstr "усправних тпи слике "
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Очекивана густина усправних тачака медија (слике/видеа) у тпи"
+
+msgid "ID3v2 frame"
 msgstr ""
 
-msgid "This CD has no audio tracks"
+msgid "unparsed id3v2 tag frame"
 msgstr ""
 
+msgid "This CD has no audio tracks"
+msgstr "Овај ЦД нема звучних нумера"
+
 msgid "ID3 tag"
-msgstr ""
+msgstr "ИБ3 ознака"
 
 msgid "APE tag"
-msgstr ""
+msgstr "АПЕ ознака"
 
 msgid "ICY internet radio"
-msgstr ""
+msgstr "ИЦИ Интернет радио"
 
 msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
+msgstr "Ејплов безгубитни звук (ALAC)"
 
 msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
+msgstr "Слободни кодек безгубитног звука (FLAC)"
 
 msgid "Lossless True Audio (TTA)"
-msgstr ""
+msgstr "Безгубитни истинитосни звук (ТТА)"
 
 msgid "Windows Media Speech"
-msgstr ""
+msgstr "Виндоуз говор медија"
 
 msgid "CYUV Lossless"
-msgstr ""
+msgstr "Безгубитни ЦИУВ"
 
 msgid "FFMpeg v1"
-msgstr ""
+msgstr "ФФмпег в1"
 
 msgid "Lossless MSZH"
-msgstr ""
+msgstr "Безгубитни МСЗХ"
 
 msgid "Uncompressed Gray Image"
-msgstr ""
+msgstr "Несажета сива слика"
 
 msgid "Run-length encoding"
-msgstr ""
+msgstr "Кодирање покретања дужине"
 
 msgid "Sami subtitle format"
-msgstr ""
+msgstr "Сами формат титла"
 
 msgid "TMPlayer subtitle format"
-msgstr ""
+msgstr "ТМПлејер формат титла"
 
 msgid "Kate subtitle format"
-msgstr ""
+msgstr "Кејт формат титла"
 
 msgid "Uncompressed planar YUV 4:2:0"
-msgstr ""
+msgstr "Несажета равна YUV 4:2:0"
 
 msgid "Uncompressed planar YVU 4:2:0"
-msgstr ""
+msgstr "Несажета равна YVU 4:2:0"
 
 msgid "Uncompressed packed YUV 4:2:2"
-msgstr ""
+msgstr "Несажета упакована YUV 4:2:2"
 
 msgid "Uncompressed packed YUV 4:1:0"
-msgstr ""
+msgstr "Несажета упакована YUV 4:1:0"
 
 msgid "Uncompressed packed YVU 4:1:0"
-msgstr ""
+msgstr "Несажета упакована YVU 4:1:0"
 
 msgid "Uncompressed packed YUV 4:1:1"
-msgstr ""
+msgstr "Несажета упакована YUV 4:1:1"
 
 msgid "Uncompressed packed YUV 4:4:4"
-msgstr ""
+msgstr "Несажета упакована YUV 4:4:4"
 
 msgid "Uncompressed planar YUV 4:2:2"
-msgstr ""
+msgstr "Несажета равна YUV 4:2:2"
 
 msgid "Uncompressed planar YUV 4:1:1"
-msgstr ""
+msgstr "Несажета равна YUV 4:1:1"
 
 msgid "Uncompressed black and white Y-plane"
-msgstr ""
+msgstr "Несажета црна и бела Y-раван"
 
 msgid "Uncompressed YUV"
-msgstr ""
+msgstr "Несажета YUV"
 
 #, c-format
 msgid "Uncompressed palettized %d-bit %s"
@@ -498,37 +502,37 @@ msgstr ""
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
-msgstr ""
+msgstr "ДивХ МПЕГ-4 издање %d"
 
 #, c-format
 msgid "Raw %d-bit PCM audio"
-msgstr ""
+msgstr "Сирови %d-бита ПЦМ звук"
 
 msgid "Raw PCM audio"
-msgstr ""
+msgstr "Сирови ПЦМ звук"
 
 #, c-format
 msgid "Raw %d-bit floating-point audio"
-msgstr ""
+msgstr "Сирови %d-бита звук покретног зареза"
 
 msgid "Raw floating-point audio"
-msgstr ""
+msgstr "Сирови звук покретног зареза"
 
 msgid "Audio CD source"
-msgstr ""
+msgstr "Извор звучног ЦД-а"
 
 msgid "DVD source"
-msgstr ""
+msgstr "Извор ДВД-а"
 
 msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
+msgstr "Извор протокола тока стварног времена (RTSP)"
 
 msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
+msgstr "Извор протокола Мајкрософтовог сервера медија (MMS)"
 
 #, c-format
 msgid "%s protocol source"
-msgstr ""
+msgstr "Извор „%s“ протокола"
 
 #, c-format
 msgid "%s video RTP depayloader"
@@ -544,11 +548,11 @@ msgstr ""
 
 #, c-format
 msgid "%s demuxer"
-msgstr ""
+msgstr "„%s“ демултиплексер"
 
 #, c-format
 msgid "%s decoder"
-msgstr ""
+msgstr "„%s“ декодер"
 
 #, c-format
 msgid "%s video RTP payloader"
@@ -564,33 +568,33 @@ msgstr ""
 
 #, c-format
 msgid "%s muxer"
-msgstr ""
+msgstr "„%s“ мултиплексер"
 
 #, c-format
 msgid "%s encoder"
-msgstr ""
+msgstr "„%s“ кодер"
 
 #, c-format
 msgid "GStreamer element %s"
-msgstr ""
+msgstr "„%s“ елемент Гстримера"
 
 msgid "Unknown source element"
-msgstr ""
+msgstr "Непознати елемент извора"
 
 msgid "Unknown sink element"
-msgstr ""
+msgstr "Непознати елемент усаглашавања"
 
 msgid "Unknown element"
-msgstr ""
+msgstr "Непознати елемент"
 
 msgid "Unknown decoder element"
-msgstr ""
+msgstr "Непознати елемент декодера"
 
 msgid "Unknown encoder element"
-msgstr ""
+msgstr "Непознати елемент кодера"
 
 msgid "Plugin or element of unknown type"
-msgstr ""
+msgstr "Прикључак или елемент непознате врсте"
 
 msgid "No device specified."
 msgstr "Уређај није наведен."
@@ -599,9 +603,9 @@ msgstr "Уређај није наведен."
 msgid "Device \"%s\" does not exist."
 msgstr "Не постоји уређај „%s“."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device \"%s\" is already being used."
-msgstr "OSS уређај „%s“ већ користи неки програм."
+msgstr "Уређај „%s“ је већ у употреби."
 
 #, c-format
 msgid "Could not open device \"%s\" for reading and writing."
index a0a75fc..0c9ebc5 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 5379413..8e84a6a 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-06-07 18:17+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -409,6 +409,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Den här cd-skivan saknar ljudspår"
 
index 2ebdd1f..18175d7 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 85911c7..2794ca7 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-26 19:22+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -403,6 +403,12 @@ msgstr "resim dikey ppi değeri"
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Medya (resim/vidyo)'nun ppi değerinden dikey piksel yoğunluğu"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Bu CD hiç ses izi içermiyor"
 
index 4275e28..61f81a5 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 0d89742..56bfb2b 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2011-04-27 17:49+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -422,6 +422,12 @@ msgstr ""
 "Вертикальна щільність пікселів на матриці (зображення або відео), у точках "
 "на дюйм"
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "На цьому компакт-диску немає звукових доріжок"
 
index cd0aad2..417dd81 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index 6e0a78d..dd5c694 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2010-04-27 22:51+0930\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -405,6 +405,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "Đĩa CD này không có rãnh âm thanh nào"
 
index 627c892..5704bf7 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index 35ec203..1f34fe9 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.21.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
 "PO-Revision-Date: 2009-01-14 12:41+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -404,6 +404,12 @@ msgstr ""
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr "此 CD 无音轨"
 
diff --git a/stamp-h.in b/stamp-h.in
deleted file mode 100644 (file)
index 9788f70..0000000
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
index a810471..93e4768 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -60,6 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -84,11 +85,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -192,6 +193,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -252,6 +254,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -261,9 +264,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -286,6 +292,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -358,10 +365,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -395,7 +405,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -456,6 +465,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/parallel-subdirs.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -680,10 +690,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index d2422b7..d089422 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -123,8 +130,8 @@ am_libgstvideo4linux_la_OBJECTS = libgstvideo4linux_la-gstv4l.lo \
        libgstvideo4linux_la-v4l_calls.lo \
        libgstvideo4linux_la-v4lsrc_calls.lo $(am__objects_1)
 libgstvideo4linux_la_OBJECTS = $(am_libgstvideo4linux_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstvideo4linux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -140,21 +147,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstvideo4linux_la_SOURCES)
 DIST_SOURCES = $(am__libgstvideo4linux_la_SOURCES_DIST)
@@ -222,6 +229,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -282,6 +290,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -291,9 +300,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -316,6 +328,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -388,10 +401,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -425,7 +441,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -549,7 +564,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstvideo4linux.la: $(libgstvideo4linux_la_OBJECTS) $(libgstvideo4linux_la_DEPENDENCIES) 
+libgstvideo4linux.la: $(libgstvideo4linux_la_OBJECTS) $(libgstvideo4linux_la_DEPENDENCIES) $(EXTRA_libgstvideo4linux_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstvideo4linux_la_LINK) -rpath $(plugindir) $(libgstvideo4linux_la_OBJECTS) $(libgstvideo4linux_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -570,90 +585,79 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstvideo4linux_la-gstv4l.lo: gstv4l.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4l.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4l.Tpo -c -o libgstvideo4linux_la-gstv4l.lo `test -f 'gstv4l.c' || echo '$(srcdir)/'`gstv4l.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4l.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4l.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstv4l.c' object='libgstvideo4linux_la-gstv4l.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstv4l.c' object='libgstvideo4linux_la-gstv4l.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4l.lo `test -f 'gstv4l.c' || echo '$(srcdir)/'`gstv4l.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4l.lo `test -f 'gstv4l.c' || echo '$(srcdir)/'`gstv4l.c
 
 libgstvideo4linux_la-gstv4lcolorbalance.lo: gstv4lcolorbalance.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lcolorbalance.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lcolorbalance.Tpo -c -o libgstvideo4linux_la-gstv4lcolorbalance.lo `test -f 'gstv4lcolorbalance.c' || echo '$(srcdir)/'`gstv4lcolorbalance.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lcolorbalance.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lcolorbalance.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstv4lcolorbalance.c' object='libgstvideo4linux_la-gstv4lcolorbalance.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstv4lcolorbalance.c' object='libgstvideo4linux_la-gstv4lcolorbalance.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lcolorbalance.lo `test -f 'gstv4lcolorbalance.c' || echo '$(srcdir)/'`gstv4lcolorbalance.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lcolorbalance.lo `test -f 'gstv4lcolorbalance.c' || echo '$(srcdir)/'`gstv4lcolorbalance.c
 
 libgstvideo4linux_la-gstv4lelement.lo: gstv4lelement.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lelement.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lelement.Tpo -c -o libgstvideo4linux_la-gstv4lelement.lo `test -f 'gstv4lelement.c' || echo '$(srcdir)/'`gstv4lelement.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lelement.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lelement.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstv4lelement.c' object='libgstvideo4linux_la-gstv4lelement.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstv4lelement.c' object='libgstvideo4linux_la-gstv4lelement.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lelement.lo `test -f 'gstv4lelement.c' || echo '$(srcdir)/'`gstv4lelement.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lelement.lo `test -f 'gstv4lelement.c' || echo '$(srcdir)/'`gstv4lelement.c
 
 libgstvideo4linux_la-gstv4lsrc.lo: gstv4lsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lsrc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lsrc.Tpo -c -o libgstvideo4linux_la-gstv4lsrc.lo `test -f 'gstv4lsrc.c' || echo '$(srcdir)/'`gstv4lsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lsrc.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lsrc.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstv4lsrc.c' object='libgstvideo4linux_la-gstv4lsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstv4lsrc.c' object='libgstvideo4linux_la-gstv4lsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lsrc.lo `test -f 'gstv4lsrc.c' || echo '$(srcdir)/'`gstv4lsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lsrc.lo `test -f 'gstv4lsrc.c' || echo '$(srcdir)/'`gstv4lsrc.c
 
 libgstvideo4linux_la-gstv4ltuner.lo: gstv4ltuner.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4ltuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4ltuner.Tpo -c -o libgstvideo4linux_la-gstv4ltuner.lo `test -f 'gstv4ltuner.c' || echo '$(srcdir)/'`gstv4ltuner.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4ltuner.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4ltuner.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstv4ltuner.c' object='libgstvideo4linux_la-gstv4ltuner.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstv4ltuner.c' object='libgstvideo4linux_la-gstv4ltuner.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4ltuner.lo `test -f 'gstv4ltuner.c' || echo '$(srcdir)/'`gstv4ltuner.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4ltuner.lo `test -f 'gstv4ltuner.c' || echo '$(srcdir)/'`gstv4ltuner.c
 
 libgstvideo4linux_la-v4l_calls.lo: v4l_calls.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-v4l_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-v4l_calls.Tpo -c -o libgstvideo4linux_la-v4l_calls.lo `test -f 'v4l_calls.c' || echo '$(srcdir)/'`v4l_calls.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-v4l_calls.Tpo $(DEPDIR)/libgstvideo4linux_la-v4l_calls.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='v4l_calls.c' object='libgstvideo4linux_la-v4l_calls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='v4l_calls.c' object='libgstvideo4linux_la-v4l_calls.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4l_calls.lo `test -f 'v4l_calls.c' || echo '$(srcdir)/'`v4l_calls.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4l_calls.lo `test -f 'v4l_calls.c' || echo '$(srcdir)/'`v4l_calls.c
 
 libgstvideo4linux_la-v4lsrc_calls.lo: v4lsrc_calls.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-v4lsrc_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-v4lsrc_calls.Tpo -c -o libgstvideo4linux_la-v4lsrc_calls.lo `test -f 'v4lsrc_calls.c' || echo '$(srcdir)/'`v4lsrc_calls.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-v4lsrc_calls.Tpo $(DEPDIR)/libgstvideo4linux_la-v4lsrc_calls.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='v4lsrc_calls.c' object='libgstvideo4linux_la-v4lsrc_calls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='v4lsrc_calls.c' object='libgstvideo4linux_la-v4lsrc_calls.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4lsrc_calls.lo `test -f 'v4lsrc_calls.c' || echo '$(srcdir)/'`v4lsrc_calls.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4lsrc_calls.lo `test -f 'v4lsrc_calls.c' || echo '$(srcdir)/'`v4lsrc_calls.c
 
 libgstvideo4linux_la-gstv4lxoverlay.lo: gstv4lxoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lxoverlay.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lxoverlay.Tpo -c -o libgstvideo4linux_la-gstv4lxoverlay.lo `test -f 'gstv4lxoverlay.c' || echo '$(srcdir)/'`gstv4lxoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lxoverlay.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lxoverlay.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gstv4lxoverlay.c' object='libgstvideo4linux_la-gstv4lxoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gstv4lxoverlay.c' object='libgstvideo4linux_la-gstv4lxoverlay.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lxoverlay.lo `test -f 'gstv4lxoverlay.c' || echo '$(srcdir)/'`gstv4lxoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lxoverlay.lo `test -f 'gstv4lxoverlay.c' || echo '$(srcdir)/'`gstv4lxoverlay.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -760,10 +764,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c0b5f78..208b781 100644 (file)
@@ -77,8 +77,8 @@ gst_v4lsrc_base_init (gpointer g_class)
       "Reads raw frames from a video4linux device",
       "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&v4l_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &v4l_src_template);
 }
 
 static void
index e217fe4..55d2a3f 100644 (file)
@@ -48,7 +48,7 @@ struct mjpeg_params
 
    int  quality;                  /* Measure for quality of compressed images.
                                      Scales linearly with the size of the compressed images.
-                                     Must be beetween 0 and 100, 100 is a compression
+                                     Must be between 0 and 100, 100 is a compression
                                      ratio of 1:4 */
 
    int  odd_even;                 /* Which field should come first ???
@@ -64,7 +64,7 @@ struct mjpeg_params
 
    unsigned long jpeg_markers;    /* Which markers should go into the JPEG output.
                                      Unless you exactly know what you do, leave them untouched.
-                                     Inluding less markers will make the resulting code
+                                     Including less markers will make the resulting code
                                      smaller, but there will be fewer applications
                                      which can read it.
                                      The presence of the APP and COM marker is
index d2c8d0f..d0cc25f 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,14 +103,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 am_libgstximagesink_la_OBJECTS = libgstximagesink_la-ximagesink.lo \
        libgstximagesink_la-ximage.lo
 libgstximagesink_la_OBJECTS = $(am_libgstximagesink_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstximagesink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -125,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstximagesink_la_SOURCES)
 DIST_SOURCES = $(libgstximagesink_la_SOURCES)
@@ -207,6 +214,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -267,6 +275,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -276,9 +285,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -301,6 +313,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -373,10 +386,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -410,7 +426,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -509,7 +524,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstximagesink.la: $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_DEPENDENCIES) 
+libgstximagesink.la: $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_DEPENDENCIES) $(EXTRA_libgstximagesink_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstximagesink_la_LINK) -rpath $(plugindir) $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -524,42 +539,37 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstximagesink_la-ximagesink.lo: ximagesink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -MT libgstximagesink_la-ximagesink.lo -MD -MP -MF $(DEPDIR)/libgstximagesink_la-ximagesink.Tpo -c -o libgstximagesink_la-ximagesink.lo `test -f 'ximagesink.c' || echo '$(srcdir)/'`ximagesink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesink_la-ximagesink.Tpo $(DEPDIR)/libgstximagesink_la-ximagesink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='ximagesink.c' object='libgstximagesink_la-ximagesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ximagesink.c' object='libgstximagesink_la-ximagesink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximagesink.lo `test -f 'ximagesink.c' || echo '$(srcdir)/'`ximagesink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximagesink.lo `test -f 'ximagesink.c' || echo '$(srcdir)/'`ximagesink.c
 
 libgstximagesink_la-ximage.lo: ximage.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -MT libgstximagesink_la-ximage.lo -MD -MP -MF $(DEPDIR)/libgstximagesink_la-ximage.Tpo -c -o libgstximagesink_la-ximage.lo `test -f 'ximage.c' || echo '$(srcdir)/'`ximage.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesink_la-ximage.Tpo $(DEPDIR)/libgstximagesink_la-ximage.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='ximage.c' object='libgstximagesink_la-ximage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ximage.c' object='libgstximagesink_la-ximage.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximage.lo `test -f 'ximage.c' || echo '$(srcdir)/'`ximage.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximage.lo `test -f 'ximage.c' || echo '$(srcdir)/'`ximage.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -666,10 +676,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 99ad35b..2adcc73 100644 (file)
 /* Debugging category */
 #include <gst/gstinfo.h>
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_ximagesink);
 #define GST_CAT_DEFAULT gst_debug_ximagesink
 
@@ -434,16 +436,23 @@ gst_ximagesink_ximage_new (GstXImageSink * ximagesink, GstCaps * caps)
         ZPixmap, NULL, &ximage->SHMInfo, ximage->width, ximage->height);
     if (!ximage->ximage || error_caught) {
       g_mutex_unlock (ximagesink->x_lock);
-      /* Reset error handler */
+
+      /* Reset error flag */
       error_caught = FALSE;
-      XSetErrorHandler (handler);
-      /* Push an error */
-      GST_ELEMENT_ERROR (ximagesink, RESOURCE, WRITE,
+
+      /* Push a warning */
+      GST_ELEMENT_WARNING (ximagesink, RESOURCE, WRITE,
           ("Failed to create output image buffer of %dx%d pixels",
               ximage->width, ximage->height),
           ("could not XShmCreateImage a %dx%d image",
               ximage->width, ximage->height));
-      goto beach;
+
+      /* Retry without XShm */
+      ximagesink->xcontext->use_xshm = FALSE;
+
+      /* Hold X mutex again to try without XShm */
+      g_mutex_lock (ximagesink->x_lock);
+      goto no_xshm;
     }
 
     /* we have to use the returned bytes_per_line for our shm size */
@@ -498,6 +507,7 @@ gst_ximagesink_ximage_new (GstXImageSink * ximagesink, GstCaps * caps)
     shmctl (ximage->SHMInfo.shmid, IPC_RMID, NULL);
 
   } else
+  no_xshm:
 #endif /* HAVE_XSHM */
   {
     guint allocsize;
@@ -1163,8 +1173,13 @@ gst_ximagesink_manage_event_thread (GstXImageSink * ximagesink)
       GST_DEBUG_OBJECT (ximagesink, "run xevent thread, expose %d, events %d",
           ximagesink->handle_expose, ximagesink->handle_events);
       ximagesink->running = TRUE;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
       ximagesink->event_thread = g_thread_create (
           (GThreadFunc) gst_ximagesink_event_thread, ximagesink, TRUE, NULL);
+#else
+      ximagesink->event_thread = g_thread_try_new ("ximagesink-events",
+          (GThreadFunc) gst_ximagesink_event_thread, ximagesink, NULL);
+#endif
     }
   } else {
     if (ximagesink->event_thread) {
@@ -1796,7 +1811,7 @@ gst_ximagesink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
       " and offset %" G_GUINT64_FORMAT, size, caps, offset);
 
   /* assume we're going to alloc what was requested, keep track of
-   * wheter we need to unref or not. When we suggest a new format 
+   * whether we need to unref or not. When we suggest a new format 
    * upstream we will create a new caps that we need to unref. */
   alloc_caps = caps;
   alloc_unref = FALSE;
@@ -1951,8 +1966,10 @@ beach:
 static gboolean
 gst_ximagesink_interface_supported (GstImplementsInterface * iface, GType type)
 {
-  g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY);
-  return TRUE;
+  if (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY)
+    return TRUE;
+  else
+    return FALSE;
 }
 
 static void
@@ -2366,8 +2383,8 @@ gst_ximagesink_base_init (gpointer g_class)
       "Video sink", "Sink/Video",
       "A standard X based videosink", "Julien Moutte <julien@moutte.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_ximagesink_sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_ximagesink_sink_template_factory);
 }
 
 static void
@@ -2393,8 +2410,9 @@ gst_ximagesink_class_init (GstXImageSinkClass * klass)
       g_param_spec_string ("display", "Display", "X Display name",
           NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_SYNCHRONOUS,
-      g_param_spec_boolean ("synchronous", "Synchronous", "When enabled, runs "
-          "the X display in synchronous mode. (used only for debugging)", FALSE,
+      g_param_spec_boolean ("synchronous", "Synchronous",
+          "When enabled, runs the X display in synchronous mode. "
+          "(unrelated to A/V sync, used only for debugging)", FALSE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
       g_param_spec_boolean ("force-aspect-ratio", "Force aspect ratio",
index cc8a863..0b9d3de 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -102,13 +103,19 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 am_libgstxvimagesink_la_OBJECTS = libgstxvimagesink_la-xvimagesink.lo
 libgstxvimagesink_la_OBJECTS = $(am_libgstxvimagesink_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstxvimagesink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -124,21 +131,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstxvimagesink_la_SOURCES)
 DIST_SOURCES = $(libgstxvimagesink_la_SOURCES)
@@ -206,6 +213,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -266,6 +274,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -275,9 +284,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -300,6 +312,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -372,10 +385,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -409,7 +425,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -509,7 +524,7 @@ clean-pluginLTLIBRARIES:
          echo "rm -f \"$${dir}/so_locations\""; \
          rm -f "$${dir}/so_locations"; \
        done
-libgstxvimagesink.la: $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_DEPENDENCIES) 
+libgstxvimagesink.la: $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_DEPENDENCIES) $(EXTRA_libgstxvimagesink_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgstxvimagesink_la_LINK) -rpath $(plugindir) $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -523,34 +538,30 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstxvimagesink_la-xvimagesink.lo: xvimagesink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -MT libgstxvimagesink_la-xvimagesink.lo -MD -MP -MF $(DEPDIR)/libgstxvimagesink_la-xvimagesink.Tpo -c -o libgstxvimagesink_la-xvimagesink.lo `test -f 'xvimagesink.c' || echo '$(srcdir)/'`xvimagesink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvimagesink_la-xvimagesink.Tpo $(DEPDIR)/libgstxvimagesink_la-xvimagesink.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='xvimagesink.c' object='libgstxvimagesink_la-xvimagesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='xvimagesink.c' object='libgstxvimagesink_la-xvimagesink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvimagesink.lo `test -f 'xvimagesink.c' || echo '$(srcdir)/'`xvimagesink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvimagesink.lo `test -f 'xvimagesink.c' || echo '$(srcdir)/'`xvimagesink.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -657,10 +668,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 01d6693..bbcc07d 100644 (file)
 #define XV_VERSION_MISMATCH -2
 
 /* Video Mode */
-#define VIDEO_MODE_TV_LCD      1
-#define VIDEO_MODE_TVONLY      2
-#define VIDEO_MODE_LCDONLY     3
-#define VIDEO_MODE_TVCAPTION   4
+#define DISPLAY_MODE_DEFAULT                                      0
+#define DISPLAY_MODE_PRI_VIDEO_ON_AND_SEC_VIDEO_FULL_SCREEN       1
+#define DISPLAY_MODE_PRI_VIDEO_OFF_AND_SEC_VIDEO_FULL_SCREEN      2
 
 /* Data structure for XvPutImage / XvShmPutImage */
 typedef struct {
index 120aef4..079f82a 100644 (file)
@@ -1,6 +1,6 @@
 /* GStreamer
  * Copyright (C) <2005> Julien Moutte <julien@moutte.net>
- *               <2009>,<2010> Stefan Kost <stefan.kost@nokia.com> 
+ *               <2009>,<2010> Stefan Kost <stefan.kost@nokia.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -22,7 +22,7 @@
  * SECTION:element-xvimagesink
  *
  * XvImageSink renders video frames to a drawable (XWindow) on a local display
- * using the XVideo extension. Rendering to a remote display is theorically
+ * using the XVideo extension. Rendering to a remote display is theoretically
  * possible but i doubt that the XVideo extension is actually available when
  * connecting to a remote display. This element can receive a Window ID from the
  * application through the XOverlay interface and will then render video frames
@@ -179,11 +179,13 @@ typedef struct
        /* arbitrary data */
        int      data[16];
 } SCMN_IMGB;
-
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
 /* Debugging category */
 #include <gst/gstinfo.h>
+
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (gst_debug_xvimagesink);
 #define GST_CAT_DEFAULT gst_debug_xvimagesink
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
@@ -196,11 +198,10 @@ gst_xvimagesink_display_mode_get_type(void)
 {
        static GType xvimagesink_display_mode_type = 0;
        static const GEnumValue display_mode_type[] = {
-               { 1, "Display to both TV and LCD", "BOTH"},
-               { 2, "Display to TV", "TVONLY"},
-               { 3, "Display to LCD", "LCDONLY"},
-               { 4, "Display caption on TV", "TVCAPTION"},
-               { 5, NULL, NULL},
+               { 0, "Default mode", "DEFAULT"},
+               { 1, "Primary video ON and Secondary video FULL SCREEN mode", "PRI_VIDEO_ON_AND_SEC_VIDEO_FULL_SCREEN"},
+               { 2, "Primary video OFF and Secondary video FULL SCREEN mode", "PRI_VIDEO_OFF_AND_SEC_VIDEO_FULL_SCREEN"},
+               { 3, NULL, NULL},
        };
 
        if (!xvimagesink_display_mode_type) {
@@ -298,7 +299,8 @@ static void gst_xvimagesink_expose (GstXOverlay * overlay);
 
 #ifdef GST_EXT_XV_ENHANCEMENT
 static XImage *make_transparent_image(Display *d, Window win, int w, int h);
-#endif
+static gboolean set_display_mode(GstXContext *xcontext, int set_mode);
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
 /* Default template - initiated with class struct to allow gst-register to work
    without X running */
@@ -347,10 +349,14 @@ enum
   PROP_DST_ROI_W,
   PROP_DST_ROI_H,
   PROP_STOP_VIDEO,
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 };
 
-static GstVideoSinkClass *parent_class = NULL;
+static void gst_xvimagesink_init_interfaces (GType type);
+
+GST_BOILERPLATE_FULL (GstXvImageSink, gst_xvimagesink, GstVideoSink,
+    GST_TYPE_VIDEO_SINK, gst_xvimagesink_init_interfaces);
+
 
 /* ============================================================= */
 /*                                                               */
@@ -697,7 +703,7 @@ gst_xvimagesink_xvimage_new (GstXvImageSink * xvimagesink, GstCaps * caps)
     xvimagesink->aligned_width = xvimage->width;
     xvimagesink->aligned_height = xvimage->height;
   }
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   xvimage->im_format = gst_xvimagesink_get_format_from_caps (xvimagesink, caps);
   if (xvimage->im_format == -1) {
@@ -725,21 +731,28 @@ gst_xvimagesink_xvimage_new (GstXvImageSink * xvimagesink, GstCaps * caps)
         xvimage->im_format, NULL,
 #ifdef GST_EXT_XV_ENHANCEMENT
         xvimagesink->aligned_width, xvimagesink->aligned_height, &xvimage->SHMInfo);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
         xvimage->width, xvimage->height, &xvimage->SHMInfo);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     if (!xvimage->xvimage || error_caught) {
       g_mutex_unlock (xvimagesink->x_lock);
-      /* Reset error handler */
+
+      /* Reset error flag */
       error_caught = FALSE;
-      XSetErrorHandler (handler);
-      /* Push an error */
-      GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
+
+      /* Push a warning */
+      GST_ELEMENT_WARNING (xvimagesink, RESOURCE, WRITE,
           ("Failed to create output image buffer of %dx%d pixels",
               xvimage->width, xvimage->height),
           ("could not XvShmCreateImage a %dx%d image",
               xvimage->width, xvimage->height));
-      goto beach_unlocked;
+
+      /* Retry without XShm */
+      xvimagesink->xcontext->use_xshm = FALSE;
+
+      /* Hold X mutex again to try without XShm */
+      g_mutex_lock (xvimagesink->x_lock);
+      goto no_xshm;
     }
 
     /* we have to use the returned data_size for our shm size */
@@ -789,7 +802,7 @@ gst_xvimagesink_xvimage_new (GstXvImageSink * xvimagesink, GstCaps * caps)
       case GST_MAKE_FOURCC ('S', 'Y', 'V', 'Y'):
         expected_size = sizeof(SCMN_IMGB);
         break;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
       default:
         expected_size = 0;
         break;
@@ -859,15 +872,16 @@ gst_xvimagesink_xvimage_new (GstXvImageSink * xvimagesink, GstCaps * caps)
     GST_DEBUG_OBJECT (xvimagesink, "XServer ShmAttached to 0x%x, id 0x%lx",
         xvimage->SHMInfo.shmid, xvimage->SHMInfo.shmseg);
   } else
+  no_xshm:
 #endif /* HAVE_XSHM */
   {
     xvimage->xvimage = XvCreateImage (xvimagesink->xcontext->disp,
         xvimagesink->xcontext->xv_port_id,
 #ifdef GST_EXT_XV_ENHANCEMENT
         xvimage->im_format, NULL, xvimagesink->aligned_width, xvimagesink->aligned_height);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
         xvimage->im_format, NULL, xvimage->width, xvimage->height);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     if (!xvimage->xvimage || error_caught) {
       g_mutex_unlock (xvimagesink->x_lock);
       /* Reset error handler */
@@ -963,7 +977,7 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
   gboolean draw_border = FALSE;
 
 #ifdef GST_EXT_XV_ENHANCEMENT
-  static Atom atom = None;
+  static Atom atom_rotation = None;
 
   GstVideoRectangle src_origin = { 0, 0, 0, 0};
   GstVideoRectangle src_input  = { 0, 0, 0, 0};
@@ -972,8 +986,7 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
 
   int rotate        = 0;
   int ret           = 0;
-  //int window_rotate = 0;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   /* We take the flow_lock. If expose is in there we don't want to run
      concurrently from the data flow thread */
@@ -982,19 +995,18 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
   if (G_UNLIKELY (xvimagesink->xwindow == NULL)) {
 #ifdef GST_EXT_XV_ENHANCEMENT
     GST_INFO_OBJECT( xvimagesink, "xwindow is NULL. Skip xvimage_put." );
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     g_mutex_unlock (xvimagesink->flow_lock);
     return FALSE;
   }
 
 #ifdef GST_EXT_XV_ENHANCEMENT
-  if( xvimagesink->visible == FALSE )
-  {
-    GST_INFO_OBJECT( xvimagesink, "visible is FALSE. Skip xvimage_put." );
-    g_mutex_unlock( xvimagesink->flow_lock );
+  if (xvimagesink->visible == FALSE) {
+    GST_INFO_OBJECT(xvimagesink, "visible is FALSE. Skip xvimage_put.");
+    g_mutex_unlock(xvimagesink->flow_lock);
     return TRUE;
   }
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   /* Draw borders when displaying the first frame. After this
      draw borders only on expose event or after a size change. */
@@ -1020,8 +1032,8 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
       xvimage = xvimagesink->cur_image;
     } else {
 #ifdef GST_EXT_XV_ENHANCEMENT
-      GST_INFO_OBJECT( xvimagesink, "cur_image is NULL. Skip xvimage_put." );
-#endif
+      GST_INFO_OBJECT(xvimagesink, "cur_image is NULL. Skip xvimage_put.");
+#endif /* GST_EXT_XV_ENHANCEMENT */
       g_mutex_unlock (xvimagesink->flow_lock);
       return TRUE;
     }
@@ -1098,6 +1110,42 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
       break;
 
     case DISP_GEO_METHOD_CUSTOM_ROI:
+#ifdef GST_EXT_XV_ENHANCEMENT_ROI_MODE
+      switch (xvimagesink->rotate_angle) {
+      case DEGREE_90:
+        result.w = xvimagesink->dst_roi.h;
+        result.h = xvimagesink->dst_roi.w;
+
+        result.x = xvimagesink->dst_roi.y;
+        result.y = xvimagesink->xwindow->height - xvimagesink->dst_roi.x - xvimagesink->dst_roi.w;
+        break;
+      case DEGREE_180:
+        result.w = xvimagesink->dst_roi.w;
+        result.h = xvimagesink->dst_roi.h;
+
+        result.x = xvimagesink->xwindow->width - result.w - xvimagesink->dst_roi.x;
+        result.y = xvimagesink->xwindow->height - result.h - xvimagesink->dst_roi.y;
+        break;
+      case DEGREE_270:
+        result.w = xvimagesink->dst_roi.h;
+        result.h = xvimagesink->dst_roi.w;
+
+        result.x = xvimagesink->xwindow->width - xvimagesink->dst_roi.y - xvimagesink->dst_roi.h;
+        result.y = xvimagesink->dst_roi.x;
+        break;
+      default:
+        result.x = xvimagesink->dst_roi.x;
+        result.y = xvimagesink->dst_roi.y;
+        result.w = xvimagesink->dst_roi.w;
+        result.h = xvimagesink->dst_roi.h;
+        break;
+      }
+
+      GST_LOG_OBJECT(xvimagesink, "rotate[%d], ROI input[%d,%d,%dx%d] > result[%d,%d,%dx%d]",
+                     xvimagesink->rotate_angle,
+                     xvimagesink->dst_roi.x, xvimagesink->dst_roi.y, xvimagesink->dst_roi.w, xvimagesink->dst_roi.h,
+                     result.x, result.y, result.w, result.h);
+#else /* GST_EXT_XV_ENHANCEMENT_ROI_MODE */
       result.x = xvimagesink->dst_roi.x;
       result.y = xvimagesink->dst_roi.y;
       result.w = xvimagesink->dst_roi.w;
@@ -1108,6 +1156,7 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
         result.w = xvimagesink->dst_roi.h;
         result.h = xvimagesink->dst_roi.w;
       }
+#endif /* GST_EXT_XV_ENHANCEMENT_ROI_MODE */
       break;
 
     default:
@@ -1120,7 +1169,7 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
     src_input.w /= xvimagesink->zoom;
     src_input.h /= xvimagesink->zoom;
   }
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
   if (xvimagesink->keep_aspect) {
     GstVideoRectangle src, dst;
 
@@ -1137,7 +1186,7 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
   } else {
     memcpy (&result, &xvimagesink->render_rect, sizeof (GstVideoRectangle));
   }
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   g_mutex_lock (xvimagesink->x_lock);
 
@@ -1185,24 +1234,24 @@ gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink,
         src_input.h += 1;
     }
 
-    GST_LOG_OBJECT( xvimagesink, "screen[%dx%d],window[%d,%d,%dx%d],method[%d],rotate[%d],zoom[%d],src[%dx%d],dst[%d,%d,%dx%d],input[%d,%d,%dx%d],result[%d,%d,%dx%d]",
+    GST_LOG_OBJECT( xvimagesink, "screen[%dx%d],window[%d,%d,%dx%d],method[%d],rotate[%d],zoom[%d],dp_mode[%d],src[%dx%d],dst[%d,%d,%dx%d],input[%d,%d,%dx%d],result[%d,%d,%dx%d]",
       xvimagesink->scr_w, xvimagesink->scr_h,
       xvimagesink->xwindow->x, xvimagesink->xwindow->y, xvimagesink->xwindow->width, xvimagesink->xwindow->height,
-      xvimagesink->display_geometry_method, rotate, xvimagesink->zoom,
+      xvimagesink->display_geometry_method, rotate, xvimagesink->zoom, xvimagesink->display_mode,
       src_origin.w, src_origin.h,
       dst.x, dst.y, dst.w, dst.h,
       src_input.x, src_input.y, src_input.w, src_input.h,
       result.x, result.y, result.w, result.h );
 
-    if (atom == None) {
-      atom = XInternAtom( xvimagesink->xcontext->disp, 
-        "_USER_WM_PORT_ATTRIBUTE_ROTATION", False );
+    if (atom_rotation == None) {
+      atom_rotation = XInternAtom(xvimagesink->xcontext->disp,
+                                  "_USER_WM_PORT_ATTRIBUTE_ROTATION", False);
     }
 
-    ret = XvSetPortAttribute(xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom, rotate );
+    ret = XvSetPortAttribute(xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom_rotation, rotate);
     if (ret != Success) {
       GST_ERROR_OBJECT( xvimagesink, "XvSetPortAttribute failed[%d]. disp[%x],xv_port_id[%d],atom[%x],rotate[%d]",
-        ret, xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom, rotate );
+        ret, xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom_rotation, rotate );
       return FALSE;
     }
 
@@ -1363,7 +1412,56 @@ static XImage *make_transparent_image(Display *d, Window win, int w, int h)
 
   return xim;
 }
-#endif
+
+
+static gboolean set_display_mode(GstXContext *xcontext, int set_mode)
+{
+  int ret = 0;
+  static gboolean is_exist = FALSE;
+  static XvPortID current_port_id = -1;
+  Atom atom_output = None;
+
+  if (xcontext == NULL) {
+    GST_WARNING("xcontext is NULL");
+    return FALSE;
+  }
+
+  /* check once per one xv_port_id */
+  if (current_port_id != xcontext->xv_port_id) {
+    /* check whether _USER_WM_PORT_ATTRIBUTE_OUTPUT attribute is existed */
+    int i = 0;
+    int count = 0;
+    XvAttribute *const attr = XvQueryPortAttributes(xcontext->disp,
+                                                    xcontext->xv_port_id, &count);
+    is_exist = FALSE;
+    current_port_id = xcontext->xv_port_id;
+    for (i = 0 ; i < count ; i++) {
+      if (!strcmp(attr[i].name, "_USER_WM_PORT_ATTRIBUTE_OUTPUT")) {
+        is_exist = TRUE;
+        GST_INFO("_USER_WM_PORT_ATTRIBUTE_OUTPUT[index %d] found", i);
+        break;
+      }
+    }
+  }
+
+  if (is_exist) {
+    GST_INFO("set display mode %d", set_mode);
+    atom_output = XInternAtom(xcontext->disp,
+                              "_USER_WM_PORT_ATTRIBUTE_OUTPUT", False);
+    ret = XvSetPortAttribute(xcontext->disp, xcontext->xv_port_id,
+                             atom_output, set_mode);
+    if (ret == Success) {
+      return TRUE;
+    } else {
+      GST_WARNING("display mode[%d] set failed.", set_mode);
+    }
+  } else {
+    GST_WARNING("_USER_WM_PORT_ATTRIBUTE_OUTPUT is not existed");
+  }
+
+  return FALSE;
+}
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
 /* This function handles a GstXWindow creation
  * The width and height are the actual pixel size on the display */
@@ -1376,7 +1474,7 @@ gst_xvimagesink_xwindow_new (GstXvImageSink * xvimagesink,
 #ifdef GST_EXT_XV_ENHANCEMENT
   XSetWindowAttributes win_attr;
   XWindowAttributes root_attr;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), NULL);
 
@@ -1424,7 +1522,7 @@ gst_xvimagesink_xwindow_new (GstXvImageSink * xvimagesink,
   /* Make window manager not to change window size as Full screen */
   win_attr.override_redirect = True;
   XChangeWindowAttributes(xvimagesink->xcontext->disp, xwindow->win, CWOverrideRedirect, &win_attr);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
   xvimagesink->render_rect.w = width;
   xvimagesink->render_rect.h = height;
 
@@ -1437,7 +1535,7 @@ gst_xvimagesink_xwindow_new (GstXvImageSink * xvimagesink,
   xwindow->win = XCreateSimpleWindow (xvimagesink->xcontext->disp,
       xvimagesink->xcontext->root,
       0, 0, width, height, 0, 0, xvimagesink->xcontext->black);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   /* We have to do that to prevent X from redrawing the background on
    * ConfigureNotify. This takes away flickering of video when resizing. */
@@ -1490,10 +1588,15 @@ gst_xvimagesink_xwindow_destroy (GstXvImageSink * xvimagesink,
   g_mutex_lock (xvimagesink->x_lock);
 
   /* If we did not create that window we just free the GC and let it live */
-  if (xwindow->internal)
+  if (xwindow->internal) {
     XDestroyWindow (xvimagesink->xcontext->disp, xwindow->win);
-  else
+    if (xvimagesink->xim_transparenter) {
+      XDestroyImage(xvimagesink->xim_transparenter);
+      xvimagesink->xim_transparenter = NULL;
+    }
+  } else {
     XSelectInput (xvimagesink->xcontext->disp, xwindow->win, 0);
+  }
 
   XFreeGC (xvimagesink->xcontext->disp, xwindow->gc);
 
@@ -1517,9 +1620,9 @@ gst_xvimagesink_xwindow_update_geometry (GstXvImageSink * xvimagesink)
   unsigned int cur_win_height = 0;
   unsigned int cur_win_border_width = 0;
   unsigned int cur_win_depth = 0;
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
   XWindowAttributes attr;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
 
@@ -1569,20 +1672,19 @@ gst_xvimagesink_xwindow_update_geometry (GstXvImageSink * xvimagesink)
     xvimagesink->xwindow->width, xvimagesink->xwindow->height,
     xvimagesink->render_rect.x, xvimagesink->render_rect.y,
     xvimagesink->render_rect.w, xvimagesink->render_rect.h);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
   XGetWindowAttributes (xvimagesink->xcontext->disp,
       xvimagesink->xwindow->win, &attr);
 
   xvimagesink->xwindow->width = attr.width;
   xvimagesink->xwindow->height = attr.height;
 
-
   if (!xvimagesink->have_render_rect) {
     xvimagesink->render_rect.x = xvimagesink->render_rect.y = 0;
     xvimagesink->render_rect.w = attr.width;
     xvimagesink->render_rect.h = attr.height;
   }
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   g_mutex_unlock (xvimagesink->x_lock);
 }
@@ -1606,7 +1708,7 @@ gst_xvimagesink_xwindow_clear (GstXvImageSink * xvimagesink,
   XFillRectangle (xvimagesink->xcontext->disp, xwindow->win, xwindow->gc,
       xvimagesink->render_rect.x, xvimagesink->render_rect.y,
       xvimagesink->render_rect.w, xvimagesink->render_rect.h);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   XSync (xvimagesink->xcontext->disp, FALSE);
 
@@ -1799,7 +1901,9 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink)
         break;
       case ConfigureNotify:
         g_mutex_unlock (xvimagesink->x_lock);
+#ifdef GST_EXT_XV_ENHANCEMENT
         GST_INFO_OBJECT (xvimagesink, "Call gst_xvimagesink_xwindow_update_geometry!");
+#endif /* GST_EXT_XV_ENHANCEMENT */
         gst_xvimagesink_xwindow_update_geometry (xvimagesink);
         g_mutex_lock (xvimagesink->x_lock);
         configured = TRUE;
@@ -1822,6 +1926,7 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink)
   /* Handle Display events */
   while (XPending (xvimagesink->xcontext->disp)) {
     XNextEvent (xvimagesink->xcontext->disp, &e);
+
     switch (e.type) {
       case ClientMessage:{
 #ifdef GST_EXT_XV_ENHANCEMENT
@@ -1829,7 +1934,7 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink)
         Atom active_win_atom;
         Atom deactive_win_atom;
         Atom atom_stream;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
         Atom wm_delete;
 
         wm_delete = XInternAtom (xvimagesink->xcontext->disp,
@@ -1850,52 +1955,40 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink)
         active_win_atom   = XInternAtom (xvimagesink->xcontext->disp, "_X_ILLUME_ACTIVATE_WINDOW", False);
         deactive_win_atom = XInternAtom (xvimagesink->xcontext->disp, "_X_ILLUME_DEACTIVATE_WINDOW", False);
 
-        if( !active_win_atom || !deactive_win_atom )
-        {
+        if (!active_win_atom || !deactive_win_atom) {
           GST_WARNING_OBJECT( xvimagesink, "Can NOT get active[%d] or deactive[%d] win atom",
                                            active_win_atom, deactive_win_atom );
-        }
-        else
-        {
-          /* Window is DEACTIVATED */
-          if( e.xclient.message_type == deactive_win_atom )
-          {
+        } else {
+          if (e.xclient.message_type == deactive_win_atom) {
+            /* Window is DEACTIVATED */
             /* Get pid of activated/deactivated window */
             active_pid = e.xclient.data.l[1];
             deactive_pid = e.xclient.data.l[3];
 
-            if( active_pid != deactive_pid )
-            {
+            if (active_pid != deactive_pid) {
               GST_INFO_OBJECT( xvimagesink, "XClientMessage : Window DEACTIVATED" );
 
               xvimagesink->is_hided = TRUE;
               atom_stream = XInternAtom( xvimagesink->xcontext->disp,
                                               "_USER_WM_PORT_ATTRIBUTE_STREAM_OFF", False );
-              if( atom_stream != None )
-              {
-                if( XvSetPortAttribute( xvimagesink->xcontext->disp,
-                                        xvimagesink->xcontext->xv_port_id,
-                                        atom_stream, 0 ) != Success )
-                {
+              if (atom_stream != None) {
+                if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+                                       xvimagesink->xcontext->xv_port_id,
+                                       atom_stream, 0 ) != Success) {
                   GST_WARNING_OBJECT( xvimagesink, "STREAM OFF failed" );
                 }
                 XSync( xvimagesink->xcontext->disp, FALSE );
               }
-            }
-            else
-            {
+            } else {
               GST_INFO_OBJECT( xvimagesink, "Window is DEACTIVATED, but same process. so Do not clear screen." );
             }
-          }
-          /* Window is ACTIVATED */
-          else if( e.xclient.message_type == active_win_atom )
-          {
+          } else if (e.xclient.message_type == active_win_atom) {
+            /* Window is ACTIVATED */
             /* Get pid of activated/deactivated window */
             active_pid = e.xclient.data.l[1];
             deactive_pid = e.xclient.data.l[3];
 
-            if( active_pid != deactive_pid )
-            {
+            if (active_pid != deactive_pid) {
               GST_INFO_OBJECT( xvimagesink, "XClientMessage : Window ACTIVATED" );
 
               g_mutex_unlock (xvimagesink->x_lock);
@@ -1906,16 +1999,14 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink)
 
               g_mutex_lock (xvimagesink->flow_lock);
               g_mutex_lock (xvimagesink->x_lock);
-            }
-            else
-            {
+            } else {
               GST_INFO_OBJECT( xvimagesink, "Window is ACTIVATED, but same process. so Do not redraw screen." );
             }
           }
         }
-#endif
-      }
+#endif /* GST_EXT_XV_ENHANCEMENT */
         break;
+      }
       default:
         break;
     }
@@ -2129,7 +2220,7 @@ gst_xvimagesink_get_xv_support (GstXvImageSink * xvimagesink,
 #ifdef GST_EXT_XV_ENHANCEMENT
       xvimagesink->scr_w = max_w;
       xvimagesink->scr_h = max_h;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     }
   }
 
@@ -2276,8 +2367,13 @@ gst_xvimagesink_manage_event_thread (GstXvImageSink * xvimagesink)
       GST_DEBUG_OBJECT (xvimagesink, "run xevent thread, expose %d, events %d",
           xvimagesink->handle_expose, xvimagesink->handle_events);
       xvimagesink->running = TRUE;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
       xvimagesink->event_thread = g_thread_create (
           (GThreadFunc) gst_xvimagesink_event_thread, xvimagesink, TRUE, NULL);
+#else
+      xvimagesink->event_thread = g_thread_try_new ("xvimagesink-events",
+          (GThreadFunc) gst_xvimagesink_event_thread, xvimagesink, NULL);
+#endif
     }
   } else {
     if (xvimagesink->event_thread) {
@@ -2475,7 +2571,7 @@ gst_xvimagesink_xcontext_get (GstXvImageSink * xvimagesink)
   for (i = 0; i < (sizeof (channels) / sizeof (char *)); i++) {
     XvAttribute *matching_attr = NULL;
 
-    /* Retrieve the property atom if it exists. If it doesn't exist, 
+    /* Retrieve the property atom if it exists. If it doesn't exist,
      * the attribute itself must not either, so we can skip */
     prop_atom = XInternAtom (xcontext->disp, channels[i], True);
     if (prop_atom == None)
@@ -2492,8 +2588,8 @@ gst_xvimagesink_xcontext_get (GstXvImageSink * xvimagesink)
 
       channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL);
       channel->label = g_strdup (channels[i]);
-      channel->min_value = matching_attr ? matching_attr->min_value : -1000;
-      channel->max_value = matching_attr ? matching_attr->max_value : 1000;
+      channel->min_value = matching_attr->min_value;
+      channel->max_value = matching_attr->max_value;
 
       xcontext->channels_list = g_list_append (xcontext->channels_list,
           channel);
@@ -2524,6 +2620,10 @@ gst_xvimagesink_xcontext_get (GstXvImageSink * xvimagesink)
   if (xv_attr)
     XFree (xv_attr);
 
+#ifdef GST_EXT_XV_ENHANCEMENT
+  set_display_mode(xcontext, xvimagesink->display_mode);
+#endif /* GST_EXT_XV_ENHANCEMENT */
+
   g_mutex_unlock (xvimagesink->x_lock);
 
   return xcontext;
@@ -2678,6 +2778,9 @@ gst_xvimagesink_setcaps (GstBaseSink * bsink, GstCaps * caps)
   const GValue *caps_disp_reg;
   const GValue *fps;
   guint num, den;
+#ifdef GST_EXT_XV_ENHANCEMENT
+  gboolean enable_last_buffer;
+#endif /* #ifdef GST_EXT_XV_ENHANCEMENT */
 
   xvimagesink = GST_XVIMAGESINK (bsink);
 
@@ -2700,7 +2803,18 @@ gst_xvimagesink_setcaps (GstBaseSink * bsink, GstCaps * caps)
 #ifdef GST_EXT_XV_ENHANCEMENT
   xvimagesink->aligned_width = video_width;
   xvimagesink->aligned_height = video_height;
-#endif
+
+  /* get enable-last-buffer */
+  g_object_get(G_OBJECT(xvimagesink), "enable-last-buffer", &enable_last_buffer, NULL);
+  GST_INFO_OBJECT(xvimagesink, "current enable-last-buffer : %d", enable_last_buffer);
+
+  /* flush if enable-last-buffer is TRUE */
+  if (enable_last_buffer) {
+    GST_INFO_OBJECT(xvimagesink, "flush last-buffer");
+    g_object_set(G_OBJECT(xvimagesink), "enable-last-buffer", FALSE, NULL);
+    g_object_set(G_OBJECT(xvimagesink), "enable-last-buffer", TRUE, NULL);
+  }
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   xvimagesink->fps_n = gst_value_get_fraction_numerator (fps);
   xvimagesink->fps_d = gst_value_get_fraction_denominator (fps);
@@ -2807,7 +2921,7 @@ gst_xvimagesink_setcaps (GstBaseSink * bsink, GstCaps * caps)
         GST_VIDEO_SINK_HEIGHT (xvimagesink));
   }
 
-  /* After a resize, we want to redraw the borders in case the new frame size 
+  /* After a resize, we want to redraw the borders in case the new frame size
    * doesn't cover the same area */
   xvimagesink->redraw_border = TRUE;
 
@@ -2870,7 +2984,7 @@ gst_xvimagesink_change_state (GstElement * element, GstStateChange transition)
   GstXContext *xcontext = NULL;
 #ifdef GST_EXT_XV_ENHANCEMENT
   Atom atom_preemption = None;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   xvimagesink = GST_XVIMAGESINK (element);
 
@@ -2910,18 +3024,16 @@ gst_xvimagesink_change_state (GstElement * element, GstStateChange transition)
       g_mutex_lock (xvimagesink->x_lock);
       atom_preemption = XInternAtom( xvimagesink->xcontext->disp,
                                      "_USER_WM_PORT_ATTRIBUTE_PREEMPTION", False );
-      if(atom_preemption != None)
-      {
-         if( XvSetPortAttribute( xvimagesink->xcontext->disp,
-                                 xvimagesink->xcontext->xv_port_id,
-                                 atom_preemption, 1 ) != Success )
-         {
+      if (atom_preemption != None) {
+         if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+                                xvimagesink->xcontext->xv_port_id,
+                                atom_preemption, 1 ) != Success) {
             GST_ERROR_OBJECT(xvimagesink, "%d: XvSetPortAttribute: preemption failed.\n", atom_preemption);
          }
          XSync (xvimagesink->xcontext->disp, FALSE);
       }
       g_mutex_unlock (xvimagesink->x_lock);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       g_mutex_lock (xvimagesink->pool_lock);
@@ -2941,18 +3053,16 @@ gst_xvimagesink_change_state (GstElement * element, GstStateChange transition)
       g_mutex_lock (xvimagesink->x_lock);
       atom_preemption = XInternAtom( xvimagesink->xcontext->disp,
                                      "_USER_WM_PORT_ATTRIBUTE_PREEMPTION", False );
-      if(atom_preemption != None)
-      {
-         if( XvSetPortAttribute( xvimagesink->xcontext->disp,
-                                 xvimagesink->xcontext->xv_port_id,
-                                 atom_preemption, 0 ) != Success )
-         {
+      if (atom_preemption != None) {
+         if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+                                xvimagesink->xcontext->xv_port_id,
+                                atom_preemption, 0 ) != Success) {
             GST_ERROR_OBJECT(xvimagesink, "%d: XvSetPortAttribute: preemption failed.\n", atom_preemption);
          }
          XSync (xvimagesink->xcontext->disp, FALSE);
       }
       g_mutex_unlock (xvimagesink->x_lock);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       xvimagesink->fps_n = 0;
@@ -3000,20 +3110,17 @@ gst_xvimagesink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
 #ifdef GST_EXT_XV_ENHANCEMENT
   XV_PUTIMAGE_DATA_PTR img_data = NULL;
   SCMN_IMGB *scmn_imgb = NULL;
-  GstMultiPlaneImageBuffer* mp_buf = NULL;
-  int ret = 0;
   gint format = 0;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   xvimagesink = GST_XVIMAGESINK (vsink);
 
 #ifdef GST_EXT_XV_ENHANCEMENT
-  if( xvimagesink->stop_video )
-  {
+  if (xvimagesink->stop_video) {
     GST_INFO( "Stop video is TRUE. so skip show frame..." );
     return GST_FLOW_OK;
   }
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   /* If this buffer has been allocated using our buffer management we simply
      put the ximage which is in the PRIVATE pointer */
@@ -3044,6 +3151,16 @@ gst_xvimagesink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
             GST_DEBUG_OBJECT( xvimagesink, "scmn_imgb is NULL. Skip xvimage put..." );
             return GST_FLOW_OK;
           }
+
+          /* skip buffer if aligned size is smaller than size of caps */
+          if (scmn_imgb->s[0] < xvimagesink->video_width ||
+              scmn_imgb->e[0] < xvimagesink->video_height) {
+            GST_WARNING_OBJECT(xvimagesink, "invalid size[caps:%dx%d,aligned:%dx%d]. Skip this buffer...",
+                                            xvimagesink->video_width, xvimagesink->video_height,
+                                            scmn_imgb->s[0], scmn_imgb->e[0]);
+            return GST_FLOW_OK;
+          }
+
           xvimagesink->aligned_width = scmn_imgb->s[0];
           xvimagesink->aligned_height = scmn_imgb->e[0];
           GST_INFO_OBJECT(xvimagesink, "Use aligned width,height[%dx%d]",
@@ -3053,7 +3170,7 @@ gst_xvimagesink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
           GST_INFO_OBJECT(xvimagesink, "Use original width,height of caps");
           break;
       }
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
       xvimagesink->xvimage = gst_xvimagesink_xvimage_new (xvimagesink,
           GST_BUFFER_CAPS (buf));
@@ -3075,7 +3192,6 @@ gst_xvimagesink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
     }
 
 #ifdef GST_EXT_XV_ENHANCEMENT
-
     switch (xvimagesink->xvimage->im_format) {
       /* Cases for specified formats of Samsung extension */
       case GST_MAKE_FOURCC('S', 'T', '1', '2'):
@@ -3084,6 +3200,7 @@ gst_xvimagesink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
       case GST_MAKE_FOURCC('S', 'U', 'Y', '2'):
       case GST_MAKE_FOURCC('S', 'U', 'Y', 'V'):
       case GST_MAKE_FOURCC('S', 'Y', 'V', 'Y'):
+      case GST_MAKE_FOURCC('I', 'T', 'L', 'V'):
       {
         GST_DEBUG("Samsung extension display format activated. fourcc:%d,display mode:%d,Rotate angle:%d",
                   xvimagesink->xvimage->im_format, xvimagesink->display_mode, xvimagesink->rotate_angle);
@@ -3122,11 +3239,12 @@ gst_xvimagesink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
         break;
       }
     }
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
     memcpy (xvimagesink->xvimage->xvimage->data,
         GST_BUFFER_DATA (buf),
         MIN (GST_BUFFER_SIZE (buf), xvimagesink->xvimage->size));
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
+
     if (!gst_xvimagesink_xvimage_put (xvimagesink, xvimagesink->xvimage))
       goto no_window;
   }
@@ -3370,6 +3488,7 @@ reuse_last_caps:
      suitable one */
   while (xvimagesink->image_pool) {
     xvimage = xvimagesink->image_pool->data;
+
     if (xvimage) {
       /* Removing from the pool */
       xvimagesink->image_pool = g_slist_delete_link (xvimagesink->image_pool,
@@ -3451,9 +3570,11 @@ no_caps:
 static gboolean
 gst_xvimagesink_interface_supported (GstImplementsInterface * iface, GType type)
 {
-  g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY ||
-      type == GST_TYPE_COLOR_BALANCE || type == GST_TYPE_PROPERTY_PROBE);
-  return TRUE;
+  if (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY ||
+      type == GST_TYPE_COLOR_BALANCE || type == GST_TYPE_PROPERTY_PROBE)
+    return TRUE;
+  else
+    return FALSE;
 }
 
 static void
@@ -3544,7 +3665,7 @@ gst_xvimagesink_set_window_handle (GstXOverlay * overlay, guintptr id)
 
 #ifdef GST_EXT_XV_ENHANCEMENT
   GST_INFO_OBJECT( xvimagesink, "ENTER, id : %d", xwindow_id );
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   /* If we already use that window return */
   if (xvimagesink->xwindow && (xwindow_id == xvimagesink->xwindow->win)) {
@@ -3584,7 +3705,7 @@ gst_xvimagesink_set_window_handle (GstXOverlay * overlay, guintptr id)
 #ifdef GST_EXT_XV_ENHANCEMENT
   GST_INFO_OBJECT( xvimagesink, "xid is 0. create window[%dx%d]",
     GST_VIDEO_SINK_WIDTH (xvimagesink), GST_VIDEO_SINK_HEIGHT (xvimagesink) );
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     if (GST_VIDEO_SINK_WIDTH (xvimagesink)
         && GST_VIDEO_SINK_HEIGHT (xvimagesink)) {
       xwindow =
@@ -3637,9 +3758,9 @@ gst_xvimagesink_expose (GstXOverlay * overlay)
 #ifdef GST_EXT_XV_ENHANCEMENT
   GST_INFO_OBJECT( xvimagesink, "Overlay window exposed. update it");
   gst_xvimagesink_xvimage_put (xvimagesink, xvimagesink->xvimage);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
   gst_xvimagesink_xvimage_put (xvimagesink, NULL);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 }
 
 static void
@@ -4039,7 +4160,32 @@ gst_xvimagesink_set_property (GObject * object, guint prop_id,
       break;
 #ifdef GST_EXT_XV_ENHANCEMENT
     case PROP_DISPLAY_MODE:
-      xvimagesink->display_mode = g_value_get_enum (value);
+    {
+      int set_mode = g_value_get_enum (value);
+
+      g_mutex_lock(xvimagesink->flow_lock);
+      g_mutex_lock(xvimagesink->x_lock);
+
+      if (xvimagesink->display_mode != set_mode) {
+        if (xvimagesink->xcontext) {
+          /* set display mode */
+          if (set_display_mode(xvimagesink->xcontext, set_mode)) {
+            xvimagesink->display_mode = set_mode;
+          } else {
+            GST_WARNING_OBJECT(xvimagesink, "display mode[%d] set failed.", set_mode);
+          }
+        } else {
+          /* "xcontext" is not created yet. It will be applied when xcontext is created. */
+          GST_INFO_OBJECT(xvimagesink, "xcontext is NULL. display-mode will be set later.");
+          xvimagesink->display_mode = set_mode;
+        }
+      } else {
+        GST_INFO_OBJECT(xvimagesink, "skip display mode %d, because current mode is same", set_mode);
+      }
+
+      g_mutex_unlock(xvimagesink->x_lock);
+      g_mutex_unlock(xvimagesink->flow_lock);
+    }
       break;
     case PROP_DISPLAY_GEOMETRY_METHOD:
       xvimagesink->display_geometry_method = g_value_get_enum (value);
@@ -4054,24 +4200,19 @@ gst_xvimagesink_set_property (GObject * object, guint prop_id,
       g_mutex_lock( xvimagesink->flow_lock );
       g_mutex_lock( xvimagesink->x_lock );
 
-      if( xvimagesink->visible && ( g_value_get_boolean( value ) == FALSE ) )
-      {
+      if (xvimagesink->visible && (g_value_get_boolean(value) == FALSE)) {
         Atom atom_stream = XInternAtom( xvimagesink->xcontext->disp,
                                         "_USER_WM_PORT_ATTRIBUTE_STREAM_OFF", False );
-        if( atom_stream != None )
-        {
-          if( XvSetPortAttribute( xvimagesink->xcontext->disp,
-                                  xvimagesink->xcontext->xv_port_id,
-                                  atom_stream, 0 ) != Success )
-          {
+        if (atom_stream != None) {
+          if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+                                 xvimagesink->xcontext->xv_port_id,
+                                 atom_stream, 0 ) != Success) {
             GST_WARNING_OBJECT( xvimagesink, "Set visible FALSE failed" );
           }
 
           XSync( xvimagesink->xcontext->disp, FALSE );
         }
-      }
-      else if( !xvimagesink->visible && ( g_value_get_boolean( value ) == TRUE ) )
-      {
+      } else if (!xvimagesink->visible && (g_value_get_boolean(value) == TRUE)) {
         g_mutex_unlock( xvimagesink->x_lock );
         g_mutex_unlock( xvimagesink->flow_lock );
         GST_INFO_OBJECT( xvimagesink, "Set visible as TRUE. Update it." );
@@ -4112,7 +4253,7 @@ gst_xvimagesink_set_property (GObject * object, guint prop_id,
 
       g_mutex_unlock( xvimagesink->flow_lock );
       break;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -4232,7 +4373,7 @@ gst_xvimagesink_get_property (GObject * object, guint prop_id,
     case PROP_STOP_VIDEO:
       g_value_set_int (value, xvimagesink->stop_video);
       break;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -4324,9 +4465,9 @@ gst_xvimagesink_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
-
 static void
-gst_xvimagesink_init (GstXvImageSink * xvimagesink)
+gst_xvimagesink_init (GstXvImageSink * xvimagesink,
+    GstXvImageSinkClass * xvimagesinkclass)
 {
   xvimagesink->display_name = NULL;
   xvimagesink->adaptor_no = 0;
@@ -4367,7 +4508,7 @@ gst_xvimagesink_init (GstXvImageSink * xvimagesink)
   xvimagesink->draw_borders = TRUE;
 
 #ifdef GST_EXT_XV_ENHANCEMENT
-  xvimagesink->display_mode = VIDEO_MODE_LCDONLY;
+  xvimagesink->display_mode = DISPLAY_MODE_DEFAULT;
   xvimagesink->rotate_changed = TRUE;
   xvimagesink->display_geometry_method = DEF_DISPLAY_GEOMETRY_METHOD;
   xvimagesink->rotate_angle = DEGREE_270;
@@ -4385,7 +4526,7 @@ gst_xvimagesink_init (GstXvImageSink * xvimagesink)
   xvimagesink->aligned_height = 0;
   xvimagesink->stop_video = FALSE;
   xvimagesink->is_hided = FALSE;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 }
 
 static void
@@ -4397,8 +4538,8 @@ gst_xvimagesink_base_init (gpointer g_class)
       "Video sink", "Sink/Video",
       "A Xv based videosink", "Julien Moutte <julien@moutte.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_xvimagesink_sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_xvimagesink_sink_template_factory);
 }
 
 static void
@@ -4414,8 +4555,6 @@ gst_xvimagesink_class_init (GstXvImageSinkClass * klass)
   gstbasesink_class = (GstBaseSinkClass *) klass;
   videosink_class = (GstVideoSinkClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
-
   gobject_class->set_property = gst_xvimagesink_set_property;
   gobject_class->get_property = gst_xvimagesink_get_property;
 
@@ -4438,8 +4577,8 @@ gst_xvimagesink_class_init (GstXvImageSinkClass * klass)
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_SYNCHRONOUS,
       g_param_spec_boolean ("synchronous", "Synchronous",
-          "When enabled, runs "
-          "the X display in synchronous mode. (used only for debugging)", FALSE,
+          "When enabled, runs the X display in synchronous mode. "
+          "(unrelated to A/V sync, used only for debugging)", FALSE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
       g_param_spec_string ("pixel-aspect-ratio", "Pixel Aspect Ratio",
@@ -4555,7 +4694,7 @@ gst_xvimagesink_class_init (GstXvImageSinkClass * klass)
   g_object_class_install_property(gobject_class, PROP_DISPLAY_MODE,
     g_param_spec_enum("display-mode", "Display Mode",
       "Display device setting",
-      GST_TYPE_XVIMAGESINK_DISPLAY_MODE, VIDEO_MODE_LCDONLY,
+      GST_TYPE_XVIMAGESINK_DISPLAY_MODE, DISPLAY_MODE_DEFAULT,
       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
@@ -4649,7 +4788,7 @@ gst_xvimagesink_class_init (GstXvImageSinkClass * klass)
       g_param_spec_int ("stop-video", "Stop-Video",
           "Stop video for releasing video source buffer", 0, 1, 0,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
 
   gobject_class->finalize = gst_xvimagesink_finalize;
 
@@ -4677,71 +4816,48 @@ gst_xvimagesink_class_init (GstXvImageSinkClass * klass)
 /*          Object typing & Creation           */
 /*                                             */
 /* =========================================== */
-
-GType
-gst_xvimagesink_get_type (void)
+static void
+gst_xvimagesink_init_interfaces (GType type)
 {
-  static GType xvimagesink_type = 0;
-
-  if (!xvimagesink_type) {
-    static const GTypeInfo xvimagesink_info = {
-      sizeof (GstXvImageSinkClass),
-      gst_xvimagesink_base_init,
-      NULL,
-      (GClassInitFunc) gst_xvimagesink_class_init,
-      NULL,
-      NULL,
-      sizeof (GstXvImageSink),
-      0,
-      (GInstanceInitFunc) gst_xvimagesink_init,
-    };
-    static const GInterfaceInfo iface_info = {
-      (GInterfaceInitFunc) gst_xvimagesink_interface_init,
-      NULL,
-      NULL,
-    };
-    static const GInterfaceInfo navigation_info = {
-      (GInterfaceInitFunc) gst_xvimagesink_navigation_init,
-      NULL,
-      NULL,
-    };
-    static const GInterfaceInfo overlay_info = {
-      (GInterfaceInitFunc) gst_xvimagesink_xoverlay_init,
-      NULL,
-      NULL,
-    };
-    static const GInterfaceInfo colorbalance_info = {
-      (GInterfaceInitFunc) gst_xvimagesink_colorbalance_init,
-      NULL,
-      NULL,
-    };
-    static const GInterfaceInfo propertyprobe_info = {
-      (GInterfaceInitFunc) gst_xvimagesink_property_probe_interface_init,
-      NULL,
-      NULL,
-    };
-    xvimagesink_type = g_type_register_static (GST_TYPE_VIDEO_SINK,
-        "GstXvImageSink", &xvimagesink_info, 0);
-
-    g_type_add_interface_static (xvimagesink_type,
-        GST_TYPE_IMPLEMENTS_INTERFACE, &iface_info);
-    g_type_add_interface_static (xvimagesink_type, GST_TYPE_NAVIGATION,
-        &navigation_info);
-    g_type_add_interface_static (xvimagesink_type, GST_TYPE_X_OVERLAY,
-        &overlay_info);
-    g_type_add_interface_static (xvimagesink_type, GST_TYPE_COLOR_BALANCE,
-        &colorbalance_info);
-    g_type_add_interface_static (xvimagesink_type, GST_TYPE_PROPERTY_PROBE,
-        &propertyprobe_info);
-
-
-    /* register type and create class in a more safe place instead of at
-     * runtime since the type registration and class creation is not
-     * threadsafe. */
-    g_type_class_ref (gst_xvimage_buffer_get_type ());
-  }
+  static const GInterfaceInfo iface_info = {
+    (GInterfaceInitFunc) gst_xvimagesink_interface_init,
+    NULL,
+    NULL,
+  };
+  static const GInterfaceInfo navigation_info = {
+    (GInterfaceInitFunc) gst_xvimagesink_navigation_init,
+    NULL,
+    NULL,
+  };
+  static const GInterfaceInfo overlay_info = {
+    (GInterfaceInitFunc) gst_xvimagesink_xoverlay_init,
+    NULL,
+    NULL,
+  };
+  static const GInterfaceInfo colorbalance_info = {
+    (GInterfaceInitFunc) gst_xvimagesink_colorbalance_init,
+    NULL,
+    NULL,
+  };
+  static const GInterfaceInfo propertyprobe_info = {
+    (GInterfaceInitFunc) gst_xvimagesink_property_probe_interface_init,
+    NULL,
+    NULL,
+  };
 
-  return xvimagesink_type;
+  g_type_add_interface_static (type,
+      GST_TYPE_IMPLEMENTS_INTERFACE, &iface_info);
+  g_type_add_interface_static (type, GST_TYPE_NAVIGATION, &navigation_info);
+  g_type_add_interface_static (type, GST_TYPE_X_OVERLAY, &overlay_info);
+  g_type_add_interface_static (type, GST_TYPE_COLOR_BALANCE,
+      &colorbalance_info);
+  g_type_add_interface_static (type, GST_TYPE_PROPERTY_PROBE,
+      &propertyprobe_info);
+
+  /* register type and create class in a more safe place instead of at
+   * runtime since the type registration and class creation is not
+   * threadsafe. */
+  g_type_class_ref (gst_xvimage_buffer_get_type ());
 }
 
 static gboolean
index 6bbf80d..b3b0b5a 100644 (file)
@@ -299,7 +299,7 @@ struct _GstXvImageSink {
   /* stream metadata */
   gchar *media_title;
 
-  /* target video rectagle */
+  /* target video rectangle */
   GstVideoRectangle render_rect;
   gboolean have_render_rect;
 
index bce0f88..ca8083f 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -186,6 +187,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -246,6 +248,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -255,9 +258,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -280,6 +286,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -352,10 +359,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -389,7 +399,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -675,10 +684,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 8b8782d..3280ba3 100644 (file)
@@ -12,7 +12,8 @@ TESTS_ENVIRONMENT = \
        $(REGISTRY_ENVIRONMENT)                                 \
        GST_PLUGIN_SYSTEM_PATH=                                 \
        GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
-       GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)"
+       GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)" \
+       GST_TAG_LICENSE_TRANSLATIONS_DICT="$(top_srcdir)/gst-libs/gst/tag/license-translations.dict"
 
 
 # ths core dumps of some machines have PIDs appended
@@ -129,6 +130,7 @@ check_PROGRAMS = \
        elements/multifdsink \
        elements/playbin \
        elements/playbin2 \
+       elements/playbin2-compressed \
        $(check_subparse) \
        elements/videorate \
        elements/videoscale \
@@ -171,6 +173,7 @@ VALGRIND_TO_FIX = \
 noinst_PROGRAMS = $(check_libvisual)
 
 noinst_HEADERS = \
+       libs/struct_arm.h     \
        libs/struct_i386.h     \
        libs/struct_i386_osx.h \
        libs/struct_x86_64.h
@@ -376,6 +379,9 @@ elements_playbin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_playbin2_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_playbin2_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 
+elements_playbin2_compressed_LDADD = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la $(GST_BASE_LIBS) $(LDADD)
+elements_playbin2_compressed_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+
 elements_decodebin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_decodebin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 
@@ -394,6 +400,7 @@ elements_audioresample_CFLAGS = \
        $(AM_CFLAGS)
 
 elements_audioresample_LDADD = \
+       $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
        $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
        $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
        $(GST_BASE_LIBS) \
@@ -404,7 +411,6 @@ elements_textoverlay_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 
 elements_volume_LDADD = \
        $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
-       $(GST_PLUGINS_BASE_LIBS) \
        $(GST_CONTROLLER_LIBS) \
        $(GST_BASE_LIBS) \
        $(LDADD)
index 8338915..aa49617 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -47,7 +47,8 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
        $(am__EXEEXT_8) elements/ffmpegcolorspace$(EXEEXT) \
        elements/gdpdepay$(EXEEXT) elements/gdppay$(EXEEXT) \
        elements/multifdsink$(EXEEXT) elements/playbin$(EXEEXT) \
-       elements/playbin2$(EXEEXT) $(am__EXEEXT_9) \
+       elements/playbin2$(EXEEXT) \
+       elements/playbin2-compressed$(EXEEXT) $(am__EXEEXT_9) \
        elements/videorate$(EXEEXT) elements/videoscale$(EXEEXT) \
        elements/videotestsrc$(EXEEXT) elements/volume$(EXEEXT) \
        generic/clock-selection$(EXEEXT) generic/states$(EXEEXT) \
@@ -82,6 +83,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -132,8 +134,8 @@ elements_adder_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 elements_adder_DEPENDENCIES = $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__dirstamp = $(am__leading_dot)dirstamp
 elements_alsa_SOURCES = elements/alsa.c
@@ -180,7 +182,8 @@ elements_audiorate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 elements_audioresample_SOURCES = elements/audioresample.c
 elements_audioresample_OBJECTS =  \
        elements_audioresample-audioresample.$(OBJEXT)
-elements_audioresample_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+elements_audioresample_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
+       $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
        $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_audioresample_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -263,6 +266,15 @@ elements_playbin2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(elements_playbin2_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
        -o $@
+elements_playbin2_compressed_SOURCES = elements/playbin2-compressed.c
+elements_playbin2_compressed_OBJECTS =  \
+       elements_playbin2_compressed-playbin2-compressed.$(OBJEXT)
+elements_playbin2_compressed_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_playbin2_compressed_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+       $(LDFLAGS) -o $@
 elements_subparse_SOURCES = elements/subparse.c
 elements_subparse_OBJECTS = elements_subparse-subparse.$(OBJEXT)
 elements_subparse_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -584,18 +596,18 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
        $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
@@ -603,18 +615,18 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_$(V))
-am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
 am__v_CXX_0 = @echo "  CXX   " $@;
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
        $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_$(V))
-am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
 am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
        elements/appsrc.c elements/audioconvert.c elements/audiorate.c \
@@ -623,7 +635,8 @@ SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
        elements/encodebin.c elements/ffmpegcolorspace.c \
        elements/gdpdepay.c elements/gdppay.c elements/gnomevfssink.c \
        elements/libvisual.c elements/multifdsink.c elements/playbin.c \
-       elements/playbin2.c elements/subparse.c elements/textoverlay.c \
+       elements/playbin2.c elements/playbin2-compressed.c \
+       elements/subparse.c elements/textoverlay.c \
        elements/videorate.c elements/videoscale.c \
        elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
        elements/vorbistag.c generic/clock-selection.c \
@@ -648,7 +661,8 @@ DIST_SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
        elements/encodebin.c elements/ffmpegcolorspace.c \
        elements/gdpdepay.c elements/gdppay.c elements/gnomevfssink.c \
        elements/libvisual.c elements/multifdsink.c elements/playbin.c \
-       elements/playbin2.c elements/subparse.c elements/textoverlay.c \
+       elements/playbin2.c elements/playbin2-compressed.c \
+       elements/subparse.c elements/textoverlay.c \
        elements/videorate.c elements/videoscale.c \
        elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
        elements/vorbistag.c generic/clock-selection.c \
@@ -728,6 +742,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -788,6 +803,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -797,9 +813,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -822,6 +841,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -894,10 +914,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -931,7 +954,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -967,7 +989,8 @@ TESTS_ENVIRONMENT = \
        $(REGISTRY_ENVIRONMENT)                                 \
        GST_PLUGIN_SYSTEM_PATH=                                 \
        GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
-       GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)"
+       GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)" \
+       GST_TAG_LICENSE_TRANSLATIONS_DICT="$(top_srcdir)/gst-libs/gst/tag/license-translations.dict"
 
 
 # ths core dumps of some machines have PIDs appended
@@ -1013,6 +1036,7 @@ VALGRIND_TO_FIX = \
        libs/video
 
 noinst_HEADERS = \
+       libs/struct_arm.h     \
        libs/struct_i386.h     \
        libs/struct_i386_osx.h \
        libs/struct_x86_64.h
@@ -1218,6 +1242,8 @@ elements_playbin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_playbin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_playbin2_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_playbin2_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_playbin2_compressed_LDADD = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la $(GST_BASE_LIBS) $(LDADD)
+elements_playbin2_compressed_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_decodebin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_decodebin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_encodebin_LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la $(GST_BASE_LIBS) $(LDADD)
@@ -1232,6 +1258,7 @@ elements_audioresample_CFLAGS = \
        $(AM_CFLAGS)
 
 elements_audioresample_LDADD = \
+       $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
        $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
        $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
        $(GST_BASE_LIBS) \
@@ -1241,7 +1268,6 @@ elements_textoverlay_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_textoverlay_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_volume_LDADD = \
        $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
-       $(GST_PLUGINS_BASE_LIBS) \
        $(GST_CONTROLLER_LIBS) \
        $(GST_BASE_LIBS) \
        $(LDADD)
@@ -1361,6 +1387,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/check.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1391,199 +1418,202 @@ clean-noinstPROGRAMS:
 elements/$(am__dirstamp):
        @$(MKDIR_P) elements
        @: > elements/$(am__dirstamp)
-elements/adder$(EXEEXT): $(elements_adder_OBJECTS) $(elements_adder_DEPENDENCIES) elements/$(am__dirstamp)
+elements/adder$(EXEEXT): $(elements_adder_OBJECTS) $(elements_adder_DEPENDENCIES) $(EXTRA_elements_adder_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/adder$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_adder_OBJECTS) $(elements_adder_LDADD) $(LIBS)
-elements/alsa$(EXEEXT): $(elements_alsa_OBJECTS) $(elements_alsa_DEPENDENCIES) elements/$(am__dirstamp)
+elements/alsa$(EXEEXT): $(elements_alsa_OBJECTS) $(elements_alsa_DEPENDENCIES) $(EXTRA_elements_alsa_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/alsa$(EXEEXT)
        $(AM_V_CCLD)$(elements_alsa_LINK) $(elements_alsa_OBJECTS) $(elements_alsa_LDADD) $(LIBS)
-elements/appsink$(EXEEXT): $(elements_appsink_OBJECTS) $(elements_appsink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/appsink$(EXEEXT): $(elements_appsink_OBJECTS) $(elements_appsink_DEPENDENCIES) $(EXTRA_elements_appsink_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/appsink$(EXEEXT)
        $(AM_V_CCLD)$(elements_appsink_LINK) $(elements_appsink_OBJECTS) $(elements_appsink_LDADD) $(LIBS)
-elements/appsrc$(EXEEXT): $(elements_appsrc_OBJECTS) $(elements_appsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/appsrc$(EXEEXT): $(elements_appsrc_OBJECTS) $(elements_appsrc_DEPENDENCIES) $(EXTRA_elements_appsrc_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/appsrc$(EXEEXT)
        $(AM_V_CCLD)$(elements_appsrc_LINK) $(elements_appsrc_OBJECTS) $(elements_appsrc_LDADD) $(LIBS)
-elements/audioconvert$(EXEEXT): $(elements_audioconvert_OBJECTS) $(elements_audioconvert_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audioconvert$(EXEEXT): $(elements_audioconvert_OBJECTS) $(elements_audioconvert_DEPENDENCIES) $(EXTRA_elements_audioconvert_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/audioconvert$(EXEEXT)
        $(AM_V_CCLD)$(elements_audioconvert_LINK) $(elements_audioconvert_OBJECTS) $(elements_audioconvert_LDADD) $(LIBS)
-elements/audiorate$(EXEEXT): $(elements_audiorate_OBJECTS) $(elements_audiorate_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audiorate$(EXEEXT): $(elements_audiorate_OBJECTS) $(elements_audiorate_DEPENDENCIES) $(EXTRA_elements_audiorate_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/audiorate$(EXEEXT)
        $(AM_V_CCLD)$(elements_audiorate_LINK) $(elements_audiorate_OBJECTS) $(elements_audiorate_LDADD) $(LIBS)
-elements/audioresample$(EXEEXT): $(elements_audioresample_OBJECTS) $(elements_audioresample_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audioresample$(EXEEXT): $(elements_audioresample_OBJECTS) $(elements_audioresample_DEPENDENCIES) $(EXTRA_elements_audioresample_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/audioresample$(EXEEXT)
        $(AM_V_CCLD)$(elements_audioresample_LINK) $(elements_audioresample_OBJECTS) $(elements_audioresample_LDADD) $(LIBS)
-elements/audiotestsrc$(EXEEXT): $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audiotestsrc$(EXEEXT): $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_DEPENDENCIES) $(EXTRA_elements_audiotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/audiotestsrc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_LDADD) $(LIBS)
-elements/decodebin$(EXEEXT): $(elements_decodebin_OBJECTS) $(elements_decodebin_DEPENDENCIES) elements/$(am__dirstamp)
+elements/decodebin$(EXEEXT): $(elements_decodebin_OBJECTS) $(elements_decodebin_DEPENDENCIES) $(EXTRA_elements_decodebin_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/decodebin$(EXEEXT)
        $(AM_V_CCLD)$(elements_decodebin_LINK) $(elements_decodebin_OBJECTS) $(elements_decodebin_LDADD) $(LIBS)
-elements/decodebin2$(EXEEXT): $(elements_decodebin2_OBJECTS) $(elements_decodebin2_DEPENDENCIES) elements/$(am__dirstamp)
+elements/decodebin2$(EXEEXT): $(elements_decodebin2_OBJECTS) $(elements_decodebin2_DEPENDENCIES) $(EXTRA_elements_decodebin2_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/decodebin2$(EXEEXT)
        $(AM_V_CCLD)$(elements_decodebin2_LINK) $(elements_decodebin2_OBJECTS) $(elements_decodebin2_LDADD) $(LIBS)
-elements/encodebin$(EXEEXT): $(elements_encodebin_OBJECTS) $(elements_encodebin_DEPENDENCIES) elements/$(am__dirstamp)
+elements/encodebin$(EXEEXT): $(elements_encodebin_OBJECTS) $(elements_encodebin_DEPENDENCIES) $(EXTRA_elements_encodebin_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/encodebin$(EXEEXT)
        $(AM_V_CCLD)$(elements_encodebin_LINK) $(elements_encodebin_OBJECTS) $(elements_encodebin_LDADD) $(LIBS)
-elements/ffmpegcolorspace$(EXEEXT): $(elements_ffmpegcolorspace_OBJECTS) $(elements_ffmpegcolorspace_DEPENDENCIES) elements/$(am__dirstamp)
+elements/ffmpegcolorspace$(EXEEXT): $(elements_ffmpegcolorspace_OBJECTS) $(elements_ffmpegcolorspace_DEPENDENCIES) $(EXTRA_elements_ffmpegcolorspace_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/ffmpegcolorspace$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_ffmpegcolorspace_OBJECTS) $(elements_ffmpegcolorspace_LDADD) $(LIBS)
-elements/gdpdepay$(EXEEXT): $(elements_gdpdepay_OBJECTS) $(elements_gdpdepay_DEPENDENCIES) elements/$(am__dirstamp)
+elements/gdpdepay$(EXEEXT): $(elements_gdpdepay_OBJECTS) $(elements_gdpdepay_DEPENDENCIES) $(EXTRA_elements_gdpdepay_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/gdpdepay$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_gdpdepay_OBJECTS) $(elements_gdpdepay_LDADD) $(LIBS)
-elements/gdppay$(EXEEXT): $(elements_gdppay_OBJECTS) $(elements_gdppay_DEPENDENCIES) elements/$(am__dirstamp)
+elements/gdppay$(EXEEXT): $(elements_gdppay_OBJECTS) $(elements_gdppay_DEPENDENCIES) $(EXTRA_elements_gdppay_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/gdppay$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_gdppay_OBJECTS) $(elements_gdppay_LDADD) $(LIBS)
-elements/gnomevfssink$(EXEEXT): $(elements_gnomevfssink_OBJECTS) $(elements_gnomevfssink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/gnomevfssink$(EXEEXT): $(elements_gnomevfssink_OBJECTS) $(elements_gnomevfssink_DEPENDENCIES) $(EXTRA_elements_gnomevfssink_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/gnomevfssink$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_gnomevfssink_OBJECTS) $(elements_gnomevfssink_LDADD) $(LIBS)
-elements/libvisual$(EXEEXT): $(elements_libvisual_OBJECTS) $(elements_libvisual_DEPENDENCIES) elements/$(am__dirstamp)
+elements/libvisual$(EXEEXT): $(elements_libvisual_OBJECTS) $(elements_libvisual_DEPENDENCIES) $(EXTRA_elements_libvisual_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/libvisual$(EXEEXT)
        $(AM_V_CCLD)$(elements_libvisual_LINK) $(elements_libvisual_OBJECTS) $(elements_libvisual_LDADD) $(LIBS)
-elements/multifdsink$(EXEEXT): $(elements_multifdsink_OBJECTS) $(elements_multifdsink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/multifdsink$(EXEEXT): $(elements_multifdsink_OBJECTS) $(elements_multifdsink_DEPENDENCIES) $(EXTRA_elements_multifdsink_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/multifdsink$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_multifdsink_OBJECTS) $(elements_multifdsink_LDADD) $(LIBS)
-elements/playbin$(EXEEXT): $(elements_playbin_OBJECTS) $(elements_playbin_DEPENDENCIES) elements/$(am__dirstamp)
+elements/playbin$(EXEEXT): $(elements_playbin_OBJECTS) $(elements_playbin_DEPENDENCIES) $(EXTRA_elements_playbin_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/playbin$(EXEEXT)
        $(AM_V_CCLD)$(elements_playbin_LINK) $(elements_playbin_OBJECTS) $(elements_playbin_LDADD) $(LIBS)
-elements/playbin2$(EXEEXT): $(elements_playbin2_OBJECTS) $(elements_playbin2_DEPENDENCIES) elements/$(am__dirstamp)
+elements/playbin2$(EXEEXT): $(elements_playbin2_OBJECTS) $(elements_playbin2_DEPENDENCIES) $(EXTRA_elements_playbin2_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/playbin2$(EXEEXT)
        $(AM_V_CCLD)$(elements_playbin2_LINK) $(elements_playbin2_OBJECTS) $(elements_playbin2_LDADD) $(LIBS)
-elements/subparse$(EXEEXT): $(elements_subparse_OBJECTS) $(elements_subparse_DEPENDENCIES) elements/$(am__dirstamp)
+elements/playbin2-compressed$(EXEEXT): $(elements_playbin2_compressed_OBJECTS) $(elements_playbin2_compressed_DEPENDENCIES) $(EXTRA_elements_playbin2_compressed_DEPENDENCIES) elements/$(am__dirstamp)
+       @rm -f elements/playbin2-compressed$(EXEEXT)
+       $(AM_V_CCLD)$(elements_playbin2_compressed_LINK) $(elements_playbin2_compressed_OBJECTS) $(elements_playbin2_compressed_LDADD) $(LIBS)
+elements/subparse$(EXEEXT): $(elements_subparse_OBJECTS) $(elements_subparse_DEPENDENCIES) $(EXTRA_elements_subparse_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/subparse$(EXEEXT)
        $(AM_V_CCLD)$(elements_subparse_LINK) $(elements_subparse_OBJECTS) $(elements_subparse_LDADD) $(LIBS)
-elements/textoverlay$(EXEEXT): $(elements_textoverlay_OBJECTS) $(elements_textoverlay_DEPENDENCIES) elements/$(am__dirstamp)
+elements/textoverlay$(EXEEXT): $(elements_textoverlay_OBJECTS) $(elements_textoverlay_DEPENDENCIES) $(EXTRA_elements_textoverlay_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/textoverlay$(EXEEXT)
        $(AM_V_CCLD)$(elements_textoverlay_LINK) $(elements_textoverlay_OBJECTS) $(elements_textoverlay_LDADD) $(LIBS)
-elements/videorate$(EXEEXT): $(elements_videorate_OBJECTS) $(elements_videorate_DEPENDENCIES) elements/$(am__dirstamp)
+elements/videorate$(EXEEXT): $(elements_videorate_OBJECTS) $(elements_videorate_DEPENDENCIES) $(EXTRA_elements_videorate_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/videorate$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_videorate_OBJECTS) $(elements_videorate_LDADD) $(LIBS)
-elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
+elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) $(EXTRA_elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/videoscale$(EXEEXT)
        $(AM_V_CCLD)$(elements_videoscale_LINK) $(elements_videoscale_OBJECTS) $(elements_videoscale_LDADD) $(LIBS)
-elements/videotestsrc$(EXEEXT): $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/videotestsrc$(EXEEXT): $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_DEPENDENCIES) $(EXTRA_elements_videotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/videotestsrc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_LDADD) $(LIBS)
-elements/volume$(EXEEXT): $(elements_volume_OBJECTS) $(elements_volume_DEPENDENCIES) elements/$(am__dirstamp)
+elements/volume$(EXEEXT): $(elements_volume_OBJECTS) $(elements_volume_DEPENDENCIES) $(EXTRA_elements_volume_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/volume$(EXEEXT)
        $(AM_V_CCLD)$(elements_volume_LINK) $(elements_volume_OBJECTS) $(elements_volume_LDADD) $(LIBS)
-elements/vorbisdec$(EXEEXT): $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_DEPENDENCIES) elements/$(am__dirstamp)
+elements/vorbisdec$(EXEEXT): $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_DEPENDENCIES) $(EXTRA_elements_vorbisdec_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/vorbisdec$(EXEEXT)
        $(AM_V_CCLD)$(elements_vorbisdec_LINK) $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_LDADD) $(LIBS)
-elements/vorbistag$(EXEEXT): $(elements_vorbistag_OBJECTS) $(elements_vorbistag_DEPENDENCIES) elements/$(am__dirstamp)
+elements/vorbistag$(EXEEXT): $(elements_vorbistag_OBJECTS) $(elements_vorbistag_DEPENDENCIES) $(EXTRA_elements_vorbistag_DEPENDENCIES) elements/$(am__dirstamp)
        @rm -f elements/vorbistag$(EXEEXT)
        $(AM_V_CCLD)$(elements_vorbistag_LINK) $(elements_vorbistag_OBJECTS) $(elements_vorbistag_LDADD) $(LIBS)
 generic/$(am__dirstamp):
        @$(MKDIR_P) generic
        @: > generic/$(am__dirstamp)
-generic/clock-selection$(EXEEXT): $(generic_clock_selection_OBJECTS) $(generic_clock_selection_DEPENDENCIES) generic/$(am__dirstamp)
+generic/clock-selection$(EXEEXT): $(generic_clock_selection_OBJECTS) $(generic_clock_selection_DEPENDENCIES) $(EXTRA_generic_clock_selection_DEPENDENCIES) generic/$(am__dirstamp)
        @rm -f generic/clock-selection$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(generic_clock_selection_OBJECTS) $(generic_clock_selection_LDADD) $(LIBS)
-generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) generic/$(am__dirstamp)
+generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp)
        @rm -f generic/states$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS)
 gst/$(am__dirstamp):
        @$(MKDIR_P) gst
        @: > gst/$(am__dirstamp)
-gst/typefindfunctions$(EXEEXT): $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_DEPENDENCIES) gst/$(am__dirstamp)
+gst/typefindfunctions$(EXEEXT): $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_DEPENDENCIES) $(EXTRA_gst_typefindfunctions_DEPENDENCIES) gst/$(am__dirstamp)
        @rm -f gst/typefindfunctions$(EXEEXT)
        $(AM_V_CCLD)$(gst_typefindfunctions_LINK) $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_LDADD) $(LIBS)
 libs/$(am__dirstamp):
        @$(MKDIR_P) libs
        @: > libs/$(am__dirstamp)
-libs/audio$(EXEEXT): $(libs_audio_OBJECTS) $(libs_audio_DEPENDENCIES) libs/$(am__dirstamp)
+libs/audio$(EXEEXT): $(libs_audio_OBJECTS) $(libs_audio_DEPENDENCIES) $(EXTRA_libs_audio_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/audio$(EXEEXT)
        $(AM_V_CCLD)$(libs_audio_LINK) $(libs_audio_OBJECTS) $(libs_audio_LDADD) $(LIBS)
-libs/cddabasesrc$(EXEEXT): $(libs_cddabasesrc_OBJECTS) $(libs_cddabasesrc_DEPENDENCIES) libs/$(am__dirstamp)
+libs/cddabasesrc$(EXEEXT): $(libs_cddabasesrc_OBJECTS) $(libs_cddabasesrc_DEPENDENCIES) $(EXTRA_libs_cddabasesrc_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/cddabasesrc$(EXEEXT)
        $(AM_V_CCLD)$(libs_cddabasesrc_LINK) $(libs_cddabasesrc_OBJECTS) $(libs_cddabasesrc_LDADD) $(LIBS)
-libs/discoverer$(EXEEXT): $(libs_discoverer_OBJECTS) $(libs_discoverer_DEPENDENCIES) libs/$(am__dirstamp)
+libs/discoverer$(EXEEXT): $(libs_discoverer_OBJECTS) $(libs_discoverer_DEPENDENCIES) $(EXTRA_libs_discoverer_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/discoverer$(EXEEXT)
        $(AM_V_CCLD)$(libs_discoverer_LINK) $(libs_discoverer_OBJECTS) $(libs_discoverer_LDADD) $(LIBS)
-libs/fft$(EXEEXT): $(libs_fft_OBJECTS) $(libs_fft_DEPENDENCIES) libs/$(am__dirstamp)
+libs/fft$(EXEEXT): $(libs_fft_OBJECTS) $(libs_fft_DEPENDENCIES) $(EXTRA_libs_fft_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/fft$(EXEEXT)
        $(AM_V_CCLD)$(libs_fft_LINK) $(libs_fft_OBJECTS) $(libs_fft_LDADD) $(LIBS)
-libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) $(EXTRA_libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/gstlibscpp$(EXEEXT)
        $(AM_V_CXXLD)$(CXXLINK) $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_LDADD) $(LIBS)
-libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
+libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) $(EXTRA_libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/libsabi$(EXEEXT)
        $(AM_V_CCLD)$(libs_libsabi_LINK) $(libs_libsabi_OBJECTS) $(libs_libsabi_LDADD) $(LIBS)
-libs/mixer$(EXEEXT): $(libs_mixer_OBJECTS) $(libs_mixer_DEPENDENCIES) libs/$(am__dirstamp)
+libs/mixer$(EXEEXT): $(libs_mixer_OBJECTS) $(libs_mixer_DEPENDENCIES) $(EXTRA_libs_mixer_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/mixer$(EXEEXT)
        $(AM_V_CCLD)$(libs_mixer_LINK) $(libs_mixer_OBJECTS) $(libs_mixer_LDADD) $(LIBS)
-libs/navigation$(EXEEXT): $(libs_navigation_OBJECTS) $(libs_navigation_DEPENDENCIES) libs/$(am__dirstamp)
+libs/navigation$(EXEEXT): $(libs_navigation_OBJECTS) $(libs_navigation_DEPENDENCIES) $(EXTRA_libs_navigation_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/navigation$(EXEEXT)
        $(AM_V_CCLD)$(libs_navigation_LINK) $(libs_navigation_OBJECTS) $(libs_navigation_LDADD) $(LIBS)
-libs/netbuffer$(EXEEXT): $(libs_netbuffer_OBJECTS) $(libs_netbuffer_DEPENDENCIES) libs/$(am__dirstamp)
+libs/netbuffer$(EXEEXT): $(libs_netbuffer_OBJECTS) $(libs_netbuffer_DEPENDENCIES) $(EXTRA_libs_netbuffer_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/netbuffer$(EXEEXT)
        $(AM_V_CCLD)$(libs_netbuffer_LINK) $(libs_netbuffer_OBJECTS) $(libs_netbuffer_LDADD) $(LIBS)
-libs/pbutils$(EXEEXT): $(libs_pbutils_OBJECTS) $(libs_pbutils_DEPENDENCIES) libs/$(am__dirstamp)
+libs/pbutils$(EXEEXT): $(libs_pbutils_OBJECTS) $(libs_pbutils_DEPENDENCIES) $(EXTRA_libs_pbutils_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/pbutils$(EXEEXT)
        $(AM_V_CCLD)$(libs_pbutils_LINK) $(libs_pbutils_OBJECTS) $(libs_pbutils_LDADD) $(LIBS)
-libs/profile$(EXEEXT): $(libs_profile_OBJECTS) $(libs_profile_DEPENDENCIES) libs/$(am__dirstamp)
+libs/profile$(EXEEXT): $(libs_profile_OBJECTS) $(libs_profile_DEPENDENCIES) $(EXTRA_libs_profile_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/profile$(EXEEXT)
        $(AM_V_CCLD)$(libs_profile_LINK) $(libs_profile_OBJECTS) $(libs_profile_LDADD) $(LIBS)
-libs/rtp$(EXEEXT): $(libs_rtp_OBJECTS) $(libs_rtp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/rtp$(EXEEXT): $(libs_rtp_OBJECTS) $(libs_rtp_DEPENDENCIES) $(EXTRA_libs_rtp_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/rtp$(EXEEXT)
        $(AM_V_CCLD)$(libs_rtp_LINK) $(libs_rtp_OBJECTS) $(libs_rtp_LDADD) $(LIBS)
-libs/rtsp$(EXEEXT): $(libs_rtsp_OBJECTS) $(libs_rtsp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/rtsp$(EXEEXT): $(libs_rtsp_OBJECTS) $(libs_rtsp_DEPENDENCIES) $(EXTRA_libs_rtsp_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/rtsp$(EXEEXT)
        $(AM_V_CCLD)$(libs_rtsp_LINK) $(libs_rtsp_OBJECTS) $(libs_rtsp_LDADD) $(LIBS)
-libs/tag$(EXEEXT): $(libs_tag_OBJECTS) $(libs_tag_DEPENDENCIES) libs/$(am__dirstamp)
+libs/tag$(EXEEXT): $(libs_tag_OBJECTS) $(libs_tag_DEPENDENCIES) $(EXTRA_libs_tag_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/tag$(EXEEXT)
        $(AM_V_CCLD)$(libs_tag_LINK) $(libs_tag_OBJECTS) $(libs_tag_LDADD) $(LIBS)
-libs/video$(EXEEXT): $(libs_video_OBJECTS) $(libs_video_DEPENDENCIES) libs/$(am__dirstamp)
+libs/video$(EXEEXT): $(libs_video_OBJECTS) $(libs_video_DEPENDENCIES) $(EXTRA_libs_video_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/video$(EXEEXT)
        $(AM_V_CCLD)$(libs_video_LINK) $(libs_video_OBJECTS) $(libs_video_LDADD) $(LIBS)
-libs/xmpwriter$(EXEEXT): $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_DEPENDENCIES) libs/$(am__dirstamp)
+libs/xmpwriter$(EXEEXT): $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_DEPENDENCIES) $(EXTRA_libs_xmpwriter_DEPENDENCIES) libs/$(am__dirstamp)
        @rm -f libs/xmpwriter$(EXEEXT)
        $(AM_V_CCLD)$(libs_xmpwriter_LINK) $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_LDADD) $(LIBS)
 orc/$(am__dirstamp):
        @$(MKDIR_P) orc
        @: > orc/$(am__dirstamp)
-orc/adder$(EXEEXT): $(orc_adder_OBJECTS) $(orc_adder_DEPENDENCIES) orc/$(am__dirstamp)
+orc/adder$(EXEEXT): $(orc_adder_OBJECTS) $(orc_adder_DEPENDENCIES) $(EXTRA_orc_adder_DEPENDENCIES) orc/$(am__dirstamp)
        @rm -f orc/adder$(EXEEXT)
        $(AM_V_CCLD)$(orc_adder_LINK) $(orc_adder_OBJECTS) $(orc_adder_LDADD) $(LIBS)
-orc/audioconvert$(EXEEXT): $(orc_audioconvert_OBJECTS) $(orc_audioconvert_DEPENDENCIES) orc/$(am__dirstamp)
+orc/audioconvert$(EXEEXT): $(orc_audioconvert_OBJECTS) $(orc_audioconvert_DEPENDENCIES) $(EXTRA_orc_audioconvert_DEPENDENCIES) orc/$(am__dirstamp)
        @rm -f orc/audioconvert$(EXEEXT)
        $(AM_V_CCLD)$(orc_audioconvert_LINK) $(orc_audioconvert_OBJECTS) $(orc_audioconvert_LDADD) $(LIBS)
-orc/videoscale$(EXEEXT): $(orc_videoscale_OBJECTS) $(orc_videoscale_DEPENDENCIES) orc/$(am__dirstamp)
+orc/videoscale$(EXEEXT): $(orc_videoscale_OBJECTS) $(orc_videoscale_DEPENDENCIES) $(EXTRA_orc_videoscale_DEPENDENCIES) orc/$(am__dirstamp)
        @rm -f orc/videoscale$(EXEEXT)
        $(AM_V_CCLD)$(orc_videoscale_LINK) $(orc_videoscale_OBJECTS) $(orc_videoscale_LDADD) $(LIBS)
-orc/videotestsrc$(EXEEXT): $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_DEPENDENCIES) orc/$(am__dirstamp)
+orc/videotestsrc$(EXEEXT): $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_DEPENDENCIES) $(EXTRA_orc_videotestsrc_DEPENDENCIES) orc/$(am__dirstamp)
        @rm -f orc/videotestsrc$(EXEEXT)
        $(AM_V_CCLD)$(orc_videotestsrc_LINK) $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_LDADD) $(LIBS)
-orc/volume$(EXEEXT): $(orc_volume_OBJECTS) $(orc_volume_DEPENDENCIES) orc/$(am__dirstamp)
+orc/volume$(EXEEXT): $(orc_volume_OBJECTS) $(orc_volume_DEPENDENCIES) $(EXTRA_orc_volume_DEPENDENCIES) orc/$(am__dirstamp)
        @rm -f orc/volume$(EXEEXT)
        $(AM_V_CCLD)$(orc_volume_LINK) $(orc_volume_OBJECTS) $(orc_volume_LDADD) $(LIBS)
 pipelines/$(am__dirstamp):
        @$(MKDIR_P) pipelines
        @: > pipelines/$(am__dirstamp)
-pipelines/basetime$(EXEEXT): $(pipelines_basetime_OBJECTS) $(pipelines_basetime_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/basetime$(EXEEXT): $(pipelines_basetime_OBJECTS) $(pipelines_basetime_DEPENDENCIES) $(EXTRA_pipelines_basetime_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/basetime$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(pipelines_basetime_OBJECTS) $(pipelines_basetime_LDADD) $(LIBS)
-pipelines/capsfilter-renegotiation$(EXEEXT): $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/capsfilter-renegotiation$(EXEEXT): $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_DEPENDENCIES) $(EXTRA_pipelines_capsfilter_renegotiation_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/capsfilter-renegotiation$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_LDADD) $(LIBS)
-pipelines/gio$(EXEEXT): $(pipelines_gio_OBJECTS) $(pipelines_gio_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/gio$(EXEEXT): $(pipelines_gio_OBJECTS) $(pipelines_gio_DEPENDENCIES) $(EXTRA_pipelines_gio_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/gio$(EXEEXT)
        $(AM_V_CCLD)$(pipelines_gio_LINK) $(pipelines_gio_OBJECTS) $(pipelines_gio_LDADD) $(LIBS)
-pipelines/oggmux$(EXEEXT): $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/oggmux$(EXEEXT): $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_DEPENDENCIES) $(EXTRA_pipelines_oggmux_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/oggmux$(EXEEXT)
        $(AM_V_CCLD)$(pipelines_oggmux_LINK) $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_LDADD) $(LIBS)
-pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) $(EXTRA_pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/simple-launch-lines$(EXEEXT)
        $(AM_V_CCLD)$(pipelines_simple_launch_lines_LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS)
-pipelines/streamheader$(EXEEXT): $(pipelines_streamheader_OBJECTS) $(pipelines_streamheader_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/streamheader$(EXEEXT): $(pipelines_streamheader_OBJECTS) $(pipelines_streamheader_DEPENDENCIES) $(EXTRA_pipelines_streamheader_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/streamheader$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(pipelines_streamheader_OBJECTS) $(pipelines_streamheader_LDADD) $(LIBS)
-pipelines/theoraenc$(EXEEXT): $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/theoraenc$(EXEEXT): $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_DEPENDENCIES) $(EXTRA_pipelines_theoraenc_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/theoraenc$(EXEEXT)
        $(AM_V_CCLD)$(pipelines_theoraenc_LINK) $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_LDADD) $(LIBS)
-pipelines/vorbisdec$(EXEEXT): $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/vorbisdec$(EXEEXT): $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_DEPENDENCIES) $(EXTRA_pipelines_vorbisdec_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/vorbisdec$(EXEEXT)
        $(AM_V_CCLD)$(pipelines_vorbisdec_LINK) $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_LDADD) $(LIBS)
-pipelines/vorbisenc$(EXEEXT): $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/vorbisenc$(EXEEXT): $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_DEPENDENCIES) $(EXTRA_pipelines_vorbisenc_DEPENDENCIES) pipelines/$(am__dirstamp)
        @rm -f pipelines/vorbisenc$(EXEEXT)
        $(AM_V_CCLD)$(pipelines_vorbisenc_LINK) $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_LDADD) $(LIBS)
 
@@ -1610,6 +1640,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_libvisual-libvisual.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin-playbin.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin2-playbin2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_subparse-subparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_textoverlay-textoverlay.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videoscale-videoscale.Po@am__quote@
@@ -1657,1010 +1688,898 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 adder.o: elements/adder.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adder.o -MD -MP -MF $(DEPDIR)/adder.Tpo -c -o adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/adder.Tpo $(DEPDIR)/adder.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/adder.c' object='adder.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/adder.c' object='adder.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
 
 adder.obj: elements/adder.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adder.obj -MD -MP -MF $(DEPDIR)/adder.Tpo -c -o adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/adder.Tpo $(DEPDIR)/adder.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/adder.c' object='adder.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/adder.c' object='adder.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
 
 elements_alsa-alsa.o: elements/alsa.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -MT elements_alsa-alsa.o -MD -MP -MF $(DEPDIR)/elements_alsa-alsa.Tpo -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alsa-alsa.Tpo $(DEPDIR)/elements_alsa-alsa.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/alsa.c' object='elements_alsa-alsa.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/alsa.c' object='elements_alsa-alsa.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
 
 elements_alsa-alsa.obj: elements/alsa.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -MT elements_alsa-alsa.obj -MD -MP -MF $(DEPDIR)/elements_alsa-alsa.Tpo -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alsa-alsa.Tpo $(DEPDIR)/elements_alsa-alsa.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/alsa.c' object='elements_alsa-alsa.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/alsa.c' object='elements_alsa-alsa.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
 
 elements_appsink-appsink.o: elements/appsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.o -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/appsink.c' object='elements_appsink-appsink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/appsink.c' object='elements_appsink-appsink.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
 
 elements_appsink-appsink.obj: elements/appsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.obj -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/appsink.c' object='elements_appsink-appsink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/appsink.c' object='elements_appsink-appsink.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
 
 elements_appsrc-appsrc.o: elements/appsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements_appsrc-appsrc.o -MD -MP -MF $(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsrc-appsrc.Tpo $(DEPDIR)/elements_appsrc-appsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/appsrc.c' object='elements_appsrc-appsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/appsrc.c' object='elements_appsrc-appsrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
 
 elements_appsrc-appsrc.obj: elements/appsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements_appsrc-appsrc.obj -MD -MP -MF $(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsrc-appsrc.Tpo $(DEPDIR)/elements_appsrc-appsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/appsrc.c' object='elements_appsrc-appsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/appsrc.c' object='elements_appsrc-appsrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
 
 elements_audioconvert-audioconvert.o: elements/audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements_audioconvert-audioconvert.o -MD -MP -MF $(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioconvert-audioconvert.Tpo $(DEPDIR)/elements_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
 
 elements_audioconvert-audioconvert.obj: elements/audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements_audioconvert-audioconvert.obj -MD -MP -MF $(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioconvert-audioconvert.Tpo $(DEPDIR)/elements_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
 
 elements_audiorate-audiorate.o: elements/audiorate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements_audiorate-audiorate.o -MD -MP -MF $(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiorate-audiorate.Tpo $(DEPDIR)/elements_audiorate-audiorate.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audiorate.c' object='elements_audiorate-audiorate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audiorate.c' object='elements_audiorate-audiorate.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
 
 elements_audiorate-audiorate.obj: elements/audiorate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements_audiorate-audiorate.obj -MD -MP -MF $(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiorate-audiorate.Tpo $(DEPDIR)/elements_audiorate-audiorate.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audiorate.c' object='elements_audiorate-audiorate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audiorate.c' object='elements_audiorate-audiorate.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
 
 elements_audioresample-audioresample.o: elements/audioresample.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements_audioresample-audioresample.o -MD -MP -MF $(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioresample-audioresample.Tpo $(DEPDIR)/elements_audioresample-audioresample.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audioresample.c' object='elements_audioresample-audioresample.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audioresample.c' object='elements_audioresample-audioresample.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
 
 elements_audioresample-audioresample.obj: elements/audioresample.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements_audioresample-audioresample.obj -MD -MP -MF $(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioresample-audioresample.Tpo $(DEPDIR)/elements_audioresample-audioresample.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audioresample.c' object='elements_audioresample-audioresample.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audioresample.c' object='elements_audioresample-audioresample.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
 
 audiotestsrc.o: elements/audiotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiotestsrc.o -MD -MP -MF $(DEPDIR)/audiotestsrc.Tpo -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/audiotestsrc.Tpo $(DEPDIR)/audiotestsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audiotestsrc.c' object='audiotestsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audiotestsrc.c' object='audiotestsrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
 
 audiotestsrc.obj: elements/audiotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiotestsrc.obj -MD -MP -MF $(DEPDIR)/audiotestsrc.Tpo -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/audiotestsrc.Tpo $(DEPDIR)/audiotestsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/audiotestsrc.c' object='audiotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/audiotestsrc.c' object='audiotestsrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
 
 elements_decodebin-decodebin.o: elements/decodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements_decodebin-decodebin.o -MD -MP -MF $(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin-decodebin.Tpo $(DEPDIR)/elements_decodebin-decodebin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/decodebin.c' object='elements_decodebin-decodebin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/decodebin.c' object='elements_decodebin-decodebin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
 
 elements_decodebin-decodebin.obj: elements/decodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements_decodebin-decodebin.obj -MD -MP -MF $(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin-decodebin.Tpo $(DEPDIR)/elements_decodebin-decodebin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/decodebin.c' object='elements_decodebin-decodebin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/decodebin.c' object='elements_decodebin-decodebin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
 
 elements_decodebin2-decodebin2.o: elements/decodebin2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -MT elements_decodebin2-decodebin2.o -MD -MP -MF $(DEPDIR)/elements_decodebin2-decodebin2.Tpo -c -o elements_decodebin2-decodebin2.o `test -f 'elements/decodebin2.c' || echo '$(srcdir)/'`elements/decodebin2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin2-decodebin2.Tpo $(DEPDIR)/elements_decodebin2-decodebin2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.o `test -f 'elements/decodebin2.c' || echo '$(srcdir)/'`elements/decodebin2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.o `test -f 'elements/decodebin2.c' || echo '$(srcdir)/'`elements/decodebin2.c
 
 elements_decodebin2-decodebin2.obj: elements/decodebin2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -MT elements_decodebin2-decodebin2.obj -MD -MP -MF $(DEPDIR)/elements_decodebin2-decodebin2.Tpo -c -o elements_decodebin2-decodebin2.obj `if test -f 'elements/decodebin2.c'; then $(CYGPATH_W) 'elements/decodebin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin2.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin2-decodebin2.Tpo $(DEPDIR)/elements_decodebin2-decodebin2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.obj `if test -f 'elements/decodebin2.c'; then $(CYGPATH_W) 'elements/decodebin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin2.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.obj `if test -f 'elements/decodebin2.c'; then $(CYGPATH_W) 'elements/decodebin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin2.c'; fi`
 
 elements_encodebin-encodebin.o: elements/encodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements_encodebin-encodebin.o -MD -MP -MF $(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_encodebin-encodebin.Tpo $(DEPDIR)/elements_encodebin-encodebin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/encodebin.c' object='elements_encodebin-encodebin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/encodebin.c' object='elements_encodebin-encodebin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
 
 elements_encodebin-encodebin.obj: elements/encodebin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements_encodebin-encodebin.obj -MD -MP -MF $(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_encodebin-encodebin.Tpo $(DEPDIR)/elements_encodebin-encodebin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/encodebin.c' object='elements_encodebin-encodebin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/encodebin.c' object='elements_encodebin-encodebin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
 
 ffmpegcolorspace.o: elements/ffmpegcolorspace.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ffmpegcolorspace.o -MD -MP -MF $(DEPDIR)/ffmpegcolorspace.Tpo -c -o ffmpegcolorspace.o `test -f 'elements/ffmpegcolorspace.c' || echo '$(srcdir)/'`elements/ffmpegcolorspace.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ffmpegcolorspace.Tpo $(DEPDIR)/ffmpegcolorspace.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ffmpegcolorspace.o `test -f 'elements/ffmpegcolorspace.c' || echo '$(srcdir)/'`elements/ffmpegcolorspace.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ffmpegcolorspace.o `test -f 'elements/ffmpegcolorspace.c' || echo '$(srcdir)/'`elements/ffmpegcolorspace.c
 
 ffmpegcolorspace.obj: elements/ffmpegcolorspace.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ffmpegcolorspace.obj -MD -MP -MF $(DEPDIR)/ffmpegcolorspace.Tpo -c -o ffmpegcolorspace.obj `if test -f 'elements/ffmpegcolorspace.c'; then $(CYGPATH_W) 'elements/ffmpegcolorspace.c'; else $(CYGPATH_W) '$(srcdir)/elements/ffmpegcolorspace.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ffmpegcolorspace.Tpo $(DEPDIR)/ffmpegcolorspace.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ffmpegcolorspace.obj `if test -f 'elements/ffmpegcolorspace.c'; then $(CYGPATH_W) 'elements/ffmpegcolorspace.c'; else $(CYGPATH_W) '$(srcdir)/elements/ffmpegcolorspace.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ffmpegcolorspace.obj `if test -f 'elements/ffmpegcolorspace.c'; then $(CYGPATH_W) 'elements/ffmpegcolorspace.c'; else $(CYGPATH_W) '$(srcdir)/elements/ffmpegcolorspace.c'; fi`
 
 gdpdepay.o: elements/gdpdepay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdpdepay.o -MD -MP -MF $(DEPDIR)/gdpdepay.Tpo -c -o gdpdepay.o `test -f 'elements/gdpdepay.c' || echo '$(srcdir)/'`elements/gdpdepay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gdpdepay.Tpo $(DEPDIR)/gdpdepay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/gdpdepay.c' object='gdpdepay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/gdpdepay.c' object='gdpdepay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdpdepay.o `test -f 'elements/gdpdepay.c' || echo '$(srcdir)/'`elements/gdpdepay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdpdepay.o `test -f 'elements/gdpdepay.c' || echo '$(srcdir)/'`elements/gdpdepay.c
 
 gdpdepay.obj: elements/gdpdepay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdpdepay.obj -MD -MP -MF $(DEPDIR)/gdpdepay.Tpo -c -o gdpdepay.obj `if test -f 'elements/gdpdepay.c'; then $(CYGPATH_W) 'elements/gdpdepay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdpdepay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gdpdepay.Tpo $(DEPDIR)/gdpdepay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/gdpdepay.c' object='gdpdepay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/gdpdepay.c' object='gdpdepay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdpdepay.obj `if test -f 'elements/gdpdepay.c'; then $(CYGPATH_W) 'elements/gdpdepay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdpdepay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdpdepay.obj `if test -f 'elements/gdpdepay.c'; then $(CYGPATH_W) 'elements/gdpdepay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdpdepay.c'; fi`
 
 gdppay.o: elements/gdppay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdppay.o -MD -MP -MF $(DEPDIR)/gdppay.Tpo -c -o gdppay.o `test -f 'elements/gdppay.c' || echo '$(srcdir)/'`elements/gdppay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gdppay.Tpo $(DEPDIR)/gdppay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/gdppay.c' object='gdppay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/gdppay.c' object='gdppay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdppay.o `test -f 'elements/gdppay.c' || echo '$(srcdir)/'`elements/gdppay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdppay.o `test -f 'elements/gdppay.c' || echo '$(srcdir)/'`elements/gdppay.c
 
 gdppay.obj: elements/gdppay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdppay.obj -MD -MP -MF $(DEPDIR)/gdppay.Tpo -c -o gdppay.obj `if test -f 'elements/gdppay.c'; then $(CYGPATH_W) 'elements/gdppay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdppay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gdppay.Tpo $(DEPDIR)/gdppay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/gdppay.c' object='gdppay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/gdppay.c' object='gdppay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdppay.obj `if test -f 'elements/gdppay.c'; then $(CYGPATH_W) 'elements/gdppay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdppay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdppay.obj `if test -f 'elements/gdppay.c'; then $(CYGPATH_W) 'elements/gdppay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdppay.c'; fi`
 
 gnomevfssink.o: elements/gnomevfssink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gnomevfssink.o -MD -MP -MF $(DEPDIR)/gnomevfssink.Tpo -c -o gnomevfssink.o `test -f 'elements/gnomevfssink.c' || echo '$(srcdir)/'`elements/gnomevfssink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gnomevfssink.Tpo $(DEPDIR)/gnomevfssink.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/gnomevfssink.c' object='gnomevfssink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/gnomevfssink.c' object='gnomevfssink.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnomevfssink.o `test -f 'elements/gnomevfssink.c' || echo '$(srcdir)/'`elements/gnomevfssink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnomevfssink.o `test -f 'elements/gnomevfssink.c' || echo '$(srcdir)/'`elements/gnomevfssink.c
 
 gnomevfssink.obj: elements/gnomevfssink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gnomevfssink.obj -MD -MP -MF $(DEPDIR)/gnomevfssink.Tpo -c -o gnomevfssink.obj `if test -f 'elements/gnomevfssink.c'; then $(CYGPATH_W) 'elements/gnomevfssink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gnomevfssink.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gnomevfssink.Tpo $(DEPDIR)/gnomevfssink.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/gnomevfssink.c' object='gnomevfssink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/gnomevfssink.c' object='gnomevfssink.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnomevfssink.obj `if test -f 'elements/gnomevfssink.c'; then $(CYGPATH_W) 'elements/gnomevfssink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gnomevfssink.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnomevfssink.obj `if test -f 'elements/gnomevfssink.c'; then $(CYGPATH_W) 'elements/gnomevfssink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gnomevfssink.c'; fi`
 
 elements_libvisual-libvisual.o: elements/libvisual.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements_libvisual-libvisual.o -MD -MP -MF $(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_libvisual-libvisual.Tpo $(DEPDIR)/elements_libvisual-libvisual.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/libvisual.c' object='elements_libvisual-libvisual.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/libvisual.c' object='elements_libvisual-libvisual.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
 
 elements_libvisual-libvisual.obj: elements/libvisual.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements_libvisual-libvisual.obj -MD -MP -MF $(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_libvisual-libvisual.Tpo $(DEPDIR)/elements_libvisual-libvisual.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/libvisual.c' object='elements_libvisual-libvisual.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/libvisual.c' object='elements_libvisual-libvisual.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
 
 multifdsink.o: elements/multifdsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifdsink.o -MD -MP -MF $(DEPDIR)/multifdsink.Tpo -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/multifdsink.Tpo $(DEPDIR)/multifdsink.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/multifdsink.c' object='multifdsink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/multifdsink.c' object='multifdsink.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
 
 multifdsink.obj: elements/multifdsink.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifdsink.obj -MD -MP -MF $(DEPDIR)/multifdsink.Tpo -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/multifdsink.Tpo $(DEPDIR)/multifdsink.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/multifdsink.c' object='multifdsink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/multifdsink.c' object='multifdsink.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
 
 elements_playbin-playbin.o: elements/playbin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements_playbin-playbin.o -MD -MP -MF $(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin-playbin.Tpo $(DEPDIR)/elements_playbin-playbin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/playbin.c' object='elements_playbin-playbin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/playbin.c' object='elements_playbin-playbin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
 
 elements_playbin-playbin.obj: elements/playbin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements_playbin-playbin.obj -MD -MP -MF $(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin-playbin.Tpo $(DEPDIR)/elements_playbin-playbin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/playbin.c' object='elements_playbin-playbin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/playbin.c' object='elements_playbin-playbin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
 
 elements_playbin2-playbin2.o: elements/playbin2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -MT elements_playbin2-playbin2.o -MD -MP -MF $(DEPDIR)/elements_playbin2-playbin2.Tpo -c -o elements_playbin2-playbin2.o `test -f 'elements/playbin2.c' || echo '$(srcdir)/'`elements/playbin2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2-playbin2.Tpo $(DEPDIR)/elements_playbin2-playbin2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/playbin2.c' object='elements_playbin2-playbin2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/playbin2.c' object='elements_playbin2-playbin2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.o `test -f 'elements/playbin2.c' || echo '$(srcdir)/'`elements/playbin2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.o `test -f 'elements/playbin2.c' || echo '$(srcdir)/'`elements/playbin2.c
 
 elements_playbin2-playbin2.obj: elements/playbin2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -MT elements_playbin2-playbin2.obj -MD -MP -MF $(DEPDIR)/elements_playbin2-playbin2.Tpo -c -o elements_playbin2-playbin2.obj `if test -f 'elements/playbin2.c'; then $(CYGPATH_W) 'elements/playbin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2-playbin2.Tpo $(DEPDIR)/elements_playbin2-playbin2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/playbin2.c' object='elements_playbin2-playbin2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/playbin2.c' object='elements_playbin2-playbin2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.obj `if test -f 'elements/playbin2.c'; then $(CYGPATH_W) 'elements/playbin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.obj `if test -f 'elements/playbin2.c'; then $(CYGPATH_W) 'elements/playbin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2.c'; fi`
+
+elements_playbin2_compressed-playbin2-compressed.o: elements/playbin2-compressed.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -MT elements_playbin2_compressed-playbin2-compressed.o -MD -MP -MF $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo -c -o elements_playbin2_compressed-playbin2-compressed.o `test -f 'elements/playbin2-compressed.c' || echo '$(srcdir)/'`elements/playbin2-compressed.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/playbin2-compressed.c' object='elements_playbin2_compressed-playbin2-compressed.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -c -o elements_playbin2_compressed-playbin2-compressed.o `test -f 'elements/playbin2-compressed.c' || echo '$(srcdir)/'`elements/playbin2-compressed.c
+
+elements_playbin2_compressed-playbin2-compressed.obj: elements/playbin2-compressed.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -MT elements_playbin2_compressed-playbin2-compressed.obj -MD -MP -MF $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo -c -o elements_playbin2_compressed-playbin2-compressed.obj `if test -f 'elements/playbin2-compressed.c'; then $(CYGPATH_W) 'elements/playbin2-compressed.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2-compressed.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/playbin2-compressed.c' object='elements_playbin2_compressed-playbin2-compressed.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -c -o elements_playbin2_compressed-playbin2-compressed.obj `if test -f 'elements/playbin2-compressed.c'; then $(CYGPATH_W) 'elements/playbin2-compressed.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2-compressed.c'; fi`
 
 elements_subparse-subparse.o: elements/subparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements_subparse-subparse.o -MD -MP -MF $(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_subparse-subparse.Tpo $(DEPDIR)/elements_subparse-subparse.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/subparse.c' object='elements_subparse-subparse.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/subparse.c' object='elements_subparse-subparse.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
 
 elements_subparse-subparse.obj: elements/subparse.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements_subparse-subparse.obj -MD -MP -MF $(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_subparse-subparse.Tpo $(DEPDIR)/elements_subparse-subparse.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/subparse.c' object='elements_subparse-subparse.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/subparse.c' object='elements_subparse-subparse.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
 
 elements_textoverlay-textoverlay.o: elements/textoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements_textoverlay-textoverlay.o -MD -MP -MF $(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_textoverlay-textoverlay.Tpo $(DEPDIR)/elements_textoverlay-textoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
 
 elements_textoverlay-textoverlay.obj: elements/textoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements_textoverlay-textoverlay.obj -MD -MP -MF $(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_textoverlay-textoverlay.Tpo $(DEPDIR)/elements_textoverlay-textoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
 
 videorate.o: elements/videorate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videorate.o -MD -MP -MF $(DEPDIR)/videorate.Tpo -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/videorate.Tpo $(DEPDIR)/videorate.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/videorate.c' object='videorate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/videorate.c' object='videorate.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
 
 videorate.obj: elements/videorate.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videorate.obj -MD -MP -MF $(DEPDIR)/videorate.Tpo -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/videorate.Tpo $(DEPDIR)/videorate.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/videorate.c' object='videorate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/videorate.c' object='videorate.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
 
 elements_videoscale-videoscale.o: elements/videoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements_videoscale-videoscale.o -MD -MP -MF $(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoscale-videoscale.Tpo $(DEPDIR)/elements_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/videoscale.c' object='elements_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/videoscale.c' object='elements_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
 
 elements_videoscale-videoscale.obj: elements/videoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements_videoscale-videoscale.obj -MD -MP -MF $(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoscale-videoscale.Tpo $(DEPDIR)/elements_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/videoscale.c' object='elements_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/videoscale.c' object='elements_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
 
 videotestsrc.o: elements/videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videotestsrc.o -MD -MP -MF $(DEPDIR)/videotestsrc.Tpo -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/videotestsrc.Tpo $(DEPDIR)/videotestsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/videotestsrc.c' object='videotestsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/videotestsrc.c' object='videotestsrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
 
 videotestsrc.obj: elements/videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videotestsrc.obj -MD -MP -MF $(DEPDIR)/videotestsrc.Tpo -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/videotestsrc.Tpo $(DEPDIR)/videotestsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/videotestsrc.c' object='videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/videotestsrc.c' object='videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
 
 elements_volume-volume.o: elements/volume.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements_volume-volume.o -MD -MP -MF $(DEPDIR)/elements_volume-volume.Tpo -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_volume-volume.Tpo $(DEPDIR)/elements_volume-volume.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/volume.c' object='elements_volume-volume.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/volume.c' object='elements_volume-volume.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
 
 elements_volume-volume.obj: elements/volume.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements_volume-volume.obj -MD -MP -MF $(DEPDIR)/elements_volume-volume.Tpo -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_volume-volume.Tpo $(DEPDIR)/elements_volume-volume.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/volume.c' object='elements_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/volume.c' object='elements_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
 
 elements_vorbisdec-vorbisdec.o: elements/vorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements_vorbisdec-vorbisdec.o -MD -MP -MF $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo $(DEPDIR)/elements_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
 
 elements_vorbisdec-vorbisdec.obj: elements/vorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements_vorbisdec-vorbisdec.obj -MD -MP -MF $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo $(DEPDIR)/elements_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
 
 elements_vorbistag-vorbistag.o: elements/vorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements_vorbistag-vorbistag.o -MD -MP -MF $(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbistag-vorbistag.Tpo $(DEPDIR)/elements_vorbistag-vorbistag.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
 
 elements_vorbistag-vorbistag.obj: elements/vorbistag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements_vorbistag-vorbistag.obj -MD -MP -MF $(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbistag-vorbistag.Tpo $(DEPDIR)/elements_vorbistag-vorbistag.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
 
 clock-selection.o: generic/clock-selection.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clock-selection.o -MD -MP -MF $(DEPDIR)/clock-selection.Tpo -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/clock-selection.Tpo $(DEPDIR)/clock-selection.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='generic/clock-selection.c' object='clock-selection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='generic/clock-selection.c' object='clock-selection.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
 
 clock-selection.obj: generic/clock-selection.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clock-selection.obj -MD -MP -MF $(DEPDIR)/clock-selection.Tpo -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/clock-selection.Tpo $(DEPDIR)/clock-selection.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='generic/clock-selection.c' object='clock-selection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='generic/clock-selection.c' object='clock-selection.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
 
 states.o: generic/states.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.o -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
 
 states.obj: generic/states.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.obj -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
 
 gst_typefindfunctions-typefindfunctions.o: gst/typefindfunctions.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst_typefindfunctions-typefindfunctions.o -MD -MP -MF $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
 
 gst_typefindfunctions-typefindfunctions.obj: gst/typefindfunctions.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst_typefindfunctions-typefindfunctions.obj -MD -MP -MF $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
 
 libs_audio-audio.o: libs/audio.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs_audio-audio.o -MD -MP -MF $(DEPDIR)/libs_audio-audio.Tpo -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_audio-audio.Tpo $(DEPDIR)/libs_audio-audio.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/audio.c' object='libs_audio-audio.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/audio.c' object='libs_audio-audio.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
 
 libs_audio-audio.obj: libs/audio.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs_audio-audio.obj -MD -MP -MF $(DEPDIR)/libs_audio-audio.Tpo -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_audio-audio.Tpo $(DEPDIR)/libs_audio-audio.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/audio.c' object='libs_audio-audio.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/audio.c' object='libs_audio-audio.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
 
 libs_cddabasesrc-cddabasesrc.o: libs/cddabasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -MT libs_cddabasesrc-cddabasesrc.o -MD -MP -MF $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo -c -o libs_cddabasesrc-cddabasesrc.o `test -f 'libs/cddabasesrc.c' || echo '$(srcdir)/'`libs/cddabasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.o `test -f 'libs/cddabasesrc.c' || echo '$(srcdir)/'`libs/cddabasesrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.o `test -f 'libs/cddabasesrc.c' || echo '$(srcdir)/'`libs/cddabasesrc.c
 
 libs_cddabasesrc-cddabasesrc.obj: libs/cddabasesrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -MT libs_cddabasesrc-cddabasesrc.obj -MD -MP -MF $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo -c -o libs_cddabasesrc-cddabasesrc.obj `if test -f 'libs/cddabasesrc.c'; then $(CYGPATH_W) 'libs/cddabasesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/cddabasesrc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.obj `if test -f 'libs/cddabasesrc.c'; then $(CYGPATH_W) 'libs/cddabasesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/cddabasesrc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.obj `if test -f 'libs/cddabasesrc.c'; then $(CYGPATH_W) 'libs/cddabasesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/cddabasesrc.c'; fi`
 
 libs_discoverer-discoverer.o: libs/discoverer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs_discoverer-discoverer.o -MD -MP -MF $(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_discoverer-discoverer.Tpo $(DEPDIR)/libs_discoverer-discoverer.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/discoverer.c' object='libs_discoverer-discoverer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/discoverer.c' object='libs_discoverer-discoverer.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
 
 libs_discoverer-discoverer.obj: libs/discoverer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs_discoverer-discoverer.obj -MD -MP -MF $(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_discoverer-discoverer.Tpo $(DEPDIR)/libs_discoverer-discoverer.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/discoverer.c' object='libs_discoverer-discoverer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/discoverer.c' object='libs_discoverer-discoverer.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
 
 libs_fft-fft.o: libs/fft.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs_fft-fft.o -MD -MP -MF $(DEPDIR)/libs_fft-fft.Tpo -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_fft-fft.Tpo $(DEPDIR)/libs_fft-fft.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/fft.c' object='libs_fft-fft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/fft.c' object='libs_fft-fft.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
 
 libs_fft-fft.obj: libs/fft.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs_fft-fft.obj -MD -MP -MF $(DEPDIR)/libs_fft-fft.Tpo -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_fft-fft.Tpo $(DEPDIR)/libs_fft-fft.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/fft.c' object='libs_fft-fft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/fft.c' object='libs_fft-fft.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
 
 libs_libsabi-libsabi.o: libs/libsabi.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs_libsabi-libsabi.o -MD -MP -MF $(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_libsabi-libsabi.Tpo $(DEPDIR)/libs_libsabi-libsabi.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/libsabi.c' object='libs_libsabi-libsabi.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/libsabi.c' object='libs_libsabi-libsabi.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
 
 libs_libsabi-libsabi.obj: libs/libsabi.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs_libsabi-libsabi.obj -MD -MP -MF $(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_libsabi-libsabi.Tpo $(DEPDIR)/libs_libsabi-libsabi.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/libsabi.c' object='libs_libsabi-libsabi.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/libsabi.c' object='libs_libsabi-libsabi.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
 
 libs_mixer-mixer.o: libs/mixer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -MT libs_mixer-mixer.o -MD -MP -MF $(DEPDIR)/libs_mixer-mixer.Tpo -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mixer-mixer.Tpo $(DEPDIR)/libs_mixer-mixer.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/mixer.c' object='libs_mixer-mixer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/mixer.c' object='libs_mixer-mixer.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
 
 libs_mixer-mixer.obj: libs/mixer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -MT libs_mixer-mixer.obj -MD -MP -MF $(DEPDIR)/libs_mixer-mixer.Tpo -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mixer-mixer.Tpo $(DEPDIR)/libs_mixer-mixer.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/mixer.c' object='libs_mixer-mixer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/mixer.c' object='libs_mixer-mixer.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
 
 libs_navigation-navigation.o: libs/navigation.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.o -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/navigation.c' object='libs_navigation-navigation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/navigation.c' object='libs_navigation-navigation.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
 
 libs_navigation-navigation.obj: libs/navigation.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.obj -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/navigation.c' object='libs_navigation-navigation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/navigation.c' object='libs_navigation-navigation.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
 
 libs_netbuffer-netbuffer.o: libs/netbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -MT libs_netbuffer-netbuffer.o -MD -MP -MF $(DEPDIR)/libs_netbuffer-netbuffer.Tpo -c -o libs_netbuffer-netbuffer.o `test -f 'libs/netbuffer.c' || echo '$(srcdir)/'`libs/netbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_netbuffer-netbuffer.Tpo $(DEPDIR)/libs_netbuffer-netbuffer.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.o `test -f 'libs/netbuffer.c' || echo '$(srcdir)/'`libs/netbuffer.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.o `test -f 'libs/netbuffer.c' || echo '$(srcdir)/'`libs/netbuffer.c
 
 libs_netbuffer-netbuffer.obj: libs/netbuffer.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -MT libs_netbuffer-netbuffer.obj -MD -MP -MF $(DEPDIR)/libs_netbuffer-netbuffer.Tpo -c -o libs_netbuffer-netbuffer.obj `if test -f 'libs/netbuffer.c'; then $(CYGPATH_W) 'libs/netbuffer.c'; else $(CYGPATH_W) '$(srcdir)/libs/netbuffer.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_netbuffer-netbuffer.Tpo $(DEPDIR)/libs_netbuffer-netbuffer.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.obj `if test -f 'libs/netbuffer.c'; then $(CYGPATH_W) 'libs/netbuffer.c'; else $(CYGPATH_W) '$(srcdir)/libs/netbuffer.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.obj `if test -f 'libs/netbuffer.c'; then $(CYGPATH_W) 'libs/netbuffer.c'; else $(CYGPATH_W) '$(srcdir)/libs/netbuffer.c'; fi`
 
 libs_pbutils-pbutils.o: libs/pbutils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs_pbutils-pbutils.o -MD -MP -MF $(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_pbutils-pbutils.Tpo $(DEPDIR)/libs_pbutils-pbutils.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/pbutils.c' object='libs_pbutils-pbutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/pbutils.c' object='libs_pbutils-pbutils.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
 
 libs_pbutils-pbutils.obj: libs/pbutils.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs_pbutils-pbutils.obj -MD -MP -MF $(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_pbutils-pbutils.Tpo $(DEPDIR)/libs_pbutils-pbutils.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/pbutils.c' object='libs_pbutils-pbutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/pbutils.c' object='libs_pbutils-pbutils.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
 
 libs_profile-profile.o: libs/profile.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs_profile-profile.o -MD -MP -MF $(DEPDIR)/libs_profile-profile.Tpo -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_profile-profile.Tpo $(DEPDIR)/libs_profile-profile.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/profile.c' object='libs_profile-profile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/profile.c' object='libs_profile-profile.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
 
 libs_profile-profile.obj: libs/profile.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs_profile-profile.obj -MD -MP -MF $(DEPDIR)/libs_profile-profile.Tpo -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_profile-profile.Tpo $(DEPDIR)/libs_profile-profile.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/profile.c' object='libs_profile-profile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/profile.c' object='libs_profile-profile.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
 
 libs_rtp-rtp.o: libs/rtp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs_rtp-rtp.o -MD -MP -MF $(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtp-rtp.Tpo $(DEPDIR)/libs_rtp-rtp.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/rtp.c' object='libs_rtp-rtp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/rtp.c' object='libs_rtp-rtp.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
 
 libs_rtp-rtp.obj: libs/rtp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs_rtp-rtp.obj -MD -MP -MF $(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtp-rtp.Tpo $(DEPDIR)/libs_rtp-rtp.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/rtp.c' object='libs_rtp-rtp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/rtp.c' object='libs_rtp-rtp.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
 
 libs_rtsp-rtsp.o: libs/rtsp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs_rtsp-rtsp.o -MD -MP -MF $(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtsp-rtsp.Tpo $(DEPDIR)/libs_rtsp-rtsp.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/rtsp.c' object='libs_rtsp-rtsp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/rtsp.c' object='libs_rtsp-rtsp.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
 
 libs_rtsp-rtsp.obj: libs/rtsp.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs_rtsp-rtsp.obj -MD -MP -MF $(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtsp-rtsp.Tpo $(DEPDIR)/libs_rtsp-rtsp.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/rtsp.c' object='libs_rtsp-rtsp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/rtsp.c' object='libs_rtsp-rtsp.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
 
 libs_tag-tag.o: libs/tag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -MT libs_tag-tag.o -MD -MP -MF $(DEPDIR)/libs_tag-tag.Tpo -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_tag-tag.Tpo $(DEPDIR)/libs_tag-tag.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/tag.c' object='libs_tag-tag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/tag.c' object='libs_tag-tag.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
 
 libs_tag-tag.obj: libs/tag.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -MT libs_tag-tag.obj -MD -MP -MF $(DEPDIR)/libs_tag-tag.Tpo -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_tag-tag.Tpo $(DEPDIR)/libs_tag-tag.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/tag.c' object='libs_tag-tag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/tag.c' object='libs_tag-tag.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
 
 libs_video-video.o: libs/video.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs_video-video.o -MD -MP -MF $(DEPDIR)/libs_video-video.Tpo -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_video-video.Tpo $(DEPDIR)/libs_video-video.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/video.c' object='libs_video-video.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/video.c' object='libs_video-video.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
 
 libs_video-video.obj: libs/video.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs_video-video.obj -MD -MP -MF $(DEPDIR)/libs_video-video.Tpo -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_video-video.Tpo $(DEPDIR)/libs_video-video.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/video.c' object='libs_video-video.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/video.c' object='libs_video-video.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
 
 libs_xmpwriter-xmpwriter.o: libs/xmpwriter.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs_xmpwriter-xmpwriter.o -MD -MP -MF $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo $(DEPDIR)/libs_xmpwriter-xmpwriter.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
 
 libs_xmpwriter-xmpwriter.obj: libs/xmpwriter.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs_xmpwriter-xmpwriter.obj -MD -MP -MF $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo $(DEPDIR)/libs_xmpwriter-xmpwriter.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
 
 orc_adder-adder.o: orc/adder.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc_adder-adder.o -MD -MP -MF $(DEPDIR)/orc_adder-adder.Tpo -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_adder-adder.Tpo $(DEPDIR)/orc_adder-adder.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/adder.c' object='orc_adder-adder.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/adder.c' object='orc_adder-adder.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
 
 orc_adder-adder.obj: orc/adder.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc_adder-adder.obj -MD -MP -MF $(DEPDIR)/orc_adder-adder.Tpo -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_adder-adder.Tpo $(DEPDIR)/orc_adder-adder.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/adder.c' object='orc_adder-adder.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/adder.c' object='orc_adder-adder.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
 
 orc_audioconvert-audioconvert.o: orc/audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc_audioconvert-audioconvert.o -MD -MP -MF $(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_audioconvert-audioconvert.Tpo $(DEPDIR)/orc_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
 
 orc_audioconvert-audioconvert.obj: orc/audioconvert.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc_audioconvert-audioconvert.obj -MD -MP -MF $(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_audioconvert-audioconvert.Tpo $(DEPDIR)/orc_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
 
 orc_videoscale-videoscale.o: orc/videoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc_videoscale-videoscale.o -MD -MP -MF $(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videoscale-videoscale.Tpo $(DEPDIR)/orc_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/videoscale.c' object='orc_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/videoscale.c' object='orc_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
 
 orc_videoscale-videoscale.obj: orc/videoscale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc_videoscale-videoscale.obj -MD -MP -MF $(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videoscale-videoscale.Tpo $(DEPDIR)/orc_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/videoscale.c' object='orc_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/videoscale.c' object='orc_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
 
 orc_videotestsrc-videotestsrc.o: orc/videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc_videotestsrc-videotestsrc.o -MD -MP -MF $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo $(DEPDIR)/orc_videotestsrc-videotestsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
 
 orc_videotestsrc-videotestsrc.obj: orc/videotestsrc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc_videotestsrc-videotestsrc.obj -MD -MP -MF $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo $(DEPDIR)/orc_videotestsrc-videotestsrc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
 
 orc_volume-volume.o: orc/volume.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc_volume-volume.o -MD -MP -MF $(DEPDIR)/orc_volume-volume.Tpo -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_volume-volume.Tpo $(DEPDIR)/orc_volume-volume.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/volume.c' object='orc_volume-volume.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/volume.c' object='orc_volume-volume.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
 
 orc_volume-volume.obj: orc/volume.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc_volume-volume.obj -MD -MP -MF $(DEPDIR)/orc_volume-volume.Tpo -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/orc_volume-volume.Tpo $(DEPDIR)/orc_volume-volume.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='orc/volume.c' object='orc_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='orc/volume.c' object='orc_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
 
 basetime.o: pipelines/basetime.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basetime.o -MD -MP -MF $(DEPDIR)/basetime.Tpo -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/basetime.Tpo $(DEPDIR)/basetime.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/basetime.c' object='basetime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/basetime.c' object='basetime.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
 
 basetime.obj: pipelines/basetime.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basetime.obj -MD -MP -MF $(DEPDIR)/basetime.Tpo -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/basetime.Tpo $(DEPDIR)/basetime.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/basetime.c' object='basetime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/basetime.c' object='basetime.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
 
 capsfilter-renegotiation.o: pipelines/capsfilter-renegotiation.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter-renegotiation.o -MD -MP -MF $(DEPDIR)/capsfilter-renegotiation.Tpo -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter-renegotiation.Tpo $(DEPDIR)/capsfilter-renegotiation.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
 
 capsfilter-renegotiation.obj: pipelines/capsfilter-renegotiation.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter-renegotiation.obj -MD -MP -MF $(DEPDIR)/capsfilter-renegotiation.Tpo -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter-renegotiation.Tpo $(DEPDIR)/capsfilter-renegotiation.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
 
 pipelines_gio-gio.o: pipelines/gio.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines_gio-gio.o -MD -MP -MF $(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_gio-gio.Tpo $(DEPDIR)/pipelines_gio-gio.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/gio.c' object='pipelines_gio-gio.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/gio.c' object='pipelines_gio-gio.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
 
 pipelines_gio-gio.obj: pipelines/gio.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines_gio-gio.obj -MD -MP -MF $(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_gio-gio.Tpo $(DEPDIR)/pipelines_gio-gio.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/gio.c' object='pipelines_gio-gio.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/gio.c' object='pipelines_gio-gio.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
 
 pipelines_oggmux-oggmux.o: pipelines/oggmux.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines_oggmux-oggmux.o -MD -MP -MF $(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_oggmux-oggmux.Tpo $(DEPDIR)/pipelines_oggmux-oggmux.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
 
 pipelines_oggmux-oggmux.obj: pipelines/oggmux.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines_oggmux-oggmux.obj -MD -MP -MF $(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_oggmux-oggmux.Tpo $(DEPDIR)/pipelines_oggmux-oggmux.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
 
 pipelines_simple_launch_lines-simple-launch-lines.o: pipelines/simple-launch-lines.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines_simple_launch_lines-simple-launch-lines.o -MD -MP -MF $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
 
 pipelines_simple_launch_lines-simple-launch-lines.obj: pipelines/simple-launch-lines.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines_simple_launch_lines-simple-launch-lines.obj -MD -MP -MF $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
 
 streamheader.o: pipelines/streamheader.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT streamheader.o -MD -MP -MF $(DEPDIR)/streamheader.Tpo -c -o streamheader.o `test -f 'pipelines/streamheader.c' || echo '$(srcdir)/'`pipelines/streamheader.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/streamheader.Tpo $(DEPDIR)/streamheader.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/streamheader.c' object='streamheader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/streamheader.c' object='streamheader.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamheader.o `test -f 'pipelines/streamheader.c' || echo '$(srcdir)/'`pipelines/streamheader.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamheader.o `test -f 'pipelines/streamheader.c' || echo '$(srcdir)/'`pipelines/streamheader.c
 
 streamheader.obj: pipelines/streamheader.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT streamheader.obj -MD -MP -MF $(DEPDIR)/streamheader.Tpo -c -o streamheader.obj `if test -f 'pipelines/streamheader.c'; then $(CYGPATH_W) 'pipelines/streamheader.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/streamheader.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/streamheader.Tpo $(DEPDIR)/streamheader.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/streamheader.c' object='streamheader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/streamheader.c' object='streamheader.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamheader.obj `if test -f 'pipelines/streamheader.c'; then $(CYGPATH_W) 'pipelines/streamheader.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/streamheader.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamheader.obj `if test -f 'pipelines/streamheader.c'; then $(CYGPATH_W) 'pipelines/streamheader.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/streamheader.c'; fi`
 
 pipelines_theoraenc-theoraenc.o: pipelines/theoraenc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines_theoraenc-theoraenc.o -MD -MP -MF $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo $(DEPDIR)/pipelines_theoraenc-theoraenc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
 
 pipelines_theoraenc-theoraenc.obj: pipelines/theoraenc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines_theoraenc-theoraenc.obj -MD -MP -MF $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo $(DEPDIR)/pipelines_theoraenc-theoraenc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
 
 pipelines_vorbisdec-vorbisdec.o: pipelines/vorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines_vorbisdec-vorbisdec.o -MD -MP -MF $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
 
 pipelines_vorbisdec-vorbisdec.obj: pipelines/vorbisdec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines_vorbisdec-vorbisdec.obj -MD -MP -MF $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
 
 pipelines_vorbisenc-vorbisenc.o: pipelines/vorbisenc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines_vorbisenc-vorbisenc.o -MD -MP -MF $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
 
 pipelines_vorbisenc-vorbisenc.obj: pipelines/vorbisenc.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines_vorbisenc-vorbisenc.obj -MD -MP -MF $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
 
 .cc.o:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
 
 .cc.obj:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .cc.lo:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
 gstlibscpp.o: libs/gstlibscpp.cc
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.o -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
 
 gstlibscpp.obj: libs/gstlibscpp.cc
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.obj -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -2807,14 +2726,15 @@ check-TESTS: $(TESTS)
          fi; \
          dashes=`echo "$$dashes" | sed s/./=/g`; \
          if test "$$failed" -eq 0; then \
-           echo "$$grn$$dashes"; \
+           col="$$grn"; \
          else \
-           echo "$$red$$dashes"; \
+           col="$$red"; \
          fi; \
-         echo "$$banner"; \
-         test -z "$$skipped" || echo "$$skipped"; \
-         test -z "$$report" || echo "$$report"; \
-         echo "$$dashes$$std"; \
+         echo "$${col}$$dashes$${std}"; \
+         echo "$${col}$$banner$${std}"; \
+         test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
+         test -z "$$report" || echo "$${col}$$report$${std}"; \
+         echo "$${col}$$dashes$${std}"; \
          test "$$failed" -eq 0; \
        else :; fi
 
@@ -2864,10 +2784,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index eadf31d..a6cba90 100644 (file)
@@ -534,7 +534,7 @@ GST_START_TEST (test_live_seeking)
 #if 1
     fail_unless (res == TRUE, NULL);
 #else
-    /* adder is picky, if a single seek fails it totaly fails */
+    /* adder is picky, if a single seek fails it totally fails */
     fail_unless (res == FALSE, NULL);
 #endif
 
@@ -573,7 +573,6 @@ GST_START_TEST (test_add_pad)
   GstElement *bin, *src1, *src2, *adder, *sink;
   GstBus *bus;
   GstPad *srcpad;
-  GstStreamConsistency *consist;
   gboolean res;
 
   GST_INFO ("preparing test");
@@ -600,7 +599,6 @@ GST_START_TEST (test_add_pad)
   fail_unless (res == TRUE, NULL);
 
   srcpad = gst_element_get_static_pad (adder, "src");
-  consist = gst_consistency_checker_new (srcpad);
   gst_object_unref (srcpad);
 
   main_loop = g_main_loop_new (NULL, FALSE);
@@ -656,7 +654,6 @@ GST_START_TEST (test_remove_pad)
   GstBus *bus;
   GstPad *pad, *srcpad;
   gboolean res;
-  GstStreamConsistency *consist;
 
   GST_INFO ("preparing test");
 
@@ -682,7 +679,6 @@ GST_START_TEST (test_remove_pad)
   fail_if (pad == NULL, NULL);
 
   srcpad = gst_element_get_static_pad (adder, "src");
-  consist = gst_consistency_checker_new (srcpad);
   gst_object_unref (srcpad);
 
   main_loop = g_main_loop_new (NULL, FALSE);
index 7845672..4d4edd9 100644 (file)
@@ -62,10 +62,9 @@ test_injector_base_init (gpointer g_class)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template);
 }
 
 static void
@@ -409,7 +408,8 @@ GST_START_TEST (test_large_discont)
   audiorate = gst_check_setup_element ("audiorate");
   caps = gst_caps_new_simple ("audio/x-raw-float",
       "channels", G_TYPE_INT, 1,
-      "rate", G_TYPE_INT, 44100, "width", G_TYPE_INT, 32, NULL);
+      "rate", G_TYPE_INT, 44100, "width", G_TYPE_INT, 32,
+      "endianness", G_TYPE_INT, G_BYTE_ORDER, NULL);
 
   srcpad = gst_check_setup_src_pad (audiorate, &srctemplate, caps);
   sinkpad = gst_check_setup_sink_pad (audiorate, &sinktemplate, caps);
index a8a79a3..3b7432e 100644 (file)
 
 #include <gst/audio/audio.h>
 
+#include <gst/fft/gstfft.h>
+#include <gst/fft/gstffts16.h>
+#include <gst/fft/gstffts32.h>
+#include <gst/fft/gstfftf32.h>
+#include <gst/fft/gstfftf64.h>
+
 /* For ease of programming we use globals to keep refs for our floating
  * src and sink pads we create; otherwise we always have to do get_pad,
  * get_peer, and then remove references in every test function */
@@ -44,8 +50,8 @@ static GstPad *mysrcpad, *mysinkpad;
     "channels = (int) [ 1, MAX ], "     \
     "rate = (int) [ 1,  MAX ], "        \
     "endianness = (int) BYTE_ORDER, "   \
-    "width = (int) 16, "                \
-    "depth = (int) 16, "                \
+    "width = (int) { 16, 32 }, "        \
+    "depth = (int) { 16, 32 }, "        \
     "signed = (bool) TRUE"
 
 #define RESAMPLE_CAPS_TEMPLATE_STRING   \
@@ -772,7 +778,7 @@ fakesink_handoff_cb (GstElement * object, GstBuffer * buffer, GstPad * pad,
     ctx->latency = 1000 - GST_BUFFER_SIZE (buffer) / 8;
   }
 
-  /* Check if we have a perfectly timestampped stream */
+  /* Check if we have a perfectly timestamped stream */
   if (ctx->next_out_ts != GST_CLOCK_TIME_NONE)
     fail_unless (ctx->next_out_ts == GST_BUFFER_TIMESTAMP (buffer),
         "expected timestamp %" GST_TIME_FORMAT " got timestamp %"
@@ -900,6 +906,191 @@ GST_START_TEST (test_timestamp_drift)
 
 } GST_END_TEST;
 
+#define FFT_HELPERS(type,ffttag,ffttag2,scale);                                                 \
+static gdouble magnitude##ffttag (const GstFFT##ffttag##Complex *c)                             \
+{                                                                                               \
+  gdouble mag = (gdouble) c->r * (gdouble) c->r;                                                \
+  mag += (gdouble) c->i * (gdouble) c->i;                                                       \
+  mag /= scale * scale;                                                                         \
+  mag = 10.0 * log10 (mag);                                                                     \
+  return mag;                                                                                   \
+}                                                                                               \
+static gdouble find_main_frequency_spot_##ffttag (const GstFFT##ffttag##Complex *v,             \
+                                                  int elements)                                 \
+{                                                                                               \
+  int i;                                                                                        \
+  gdouble maxmag = -9999;                                                                       \
+  int maxidx = 0;                                                                               \
+  for (i=0; i<elements; ++i) {                                                                  \
+    gdouble mag = magnitude##ffttag (v+i);                                                      \
+    if (mag > maxmag) {                                                                         \
+      maxmag = mag;                                                                             \
+      maxidx = i;                                                                               \
+    }                                                                                           \
+  }                                                                                             \
+  return maxidx / (gdouble) elements;                                                           \
+}                                                                                               \
+static gboolean is_zero_except_##ffttag (const GstFFT##ffttag##Complex *v, int elements,        \
+                                gdouble spot)                                                   \
+{                                                                                               \
+  int i;                                                                                        \
+  for (i=0; i<elements; ++i) {                                                                  \
+    gdouble pos = i / (gdouble) elements;                                                       \
+    gdouble mag = magnitude##ffttag (v+i);                                                      \
+    if (fabs (pos - spot) > 0.01) {                                                             \
+      if (mag > -55.0) {                                                                        \
+        return FALSE;                                                                           \
+      }                                                                                         \
+    }                                                                                           \
+  }                                                                                             \
+  return TRUE;                                                                                  \
+}                                                                                               \
+static void compare_ffts_##ffttag (const GstBuffer *inbuffer, const GstBuffer *outbuffer)       \
+{                                                                                               \
+  int insamples = GST_BUFFER_SIZE (inbuffer) / sizeof(type) & ~1;                               \
+  int outsamples = GST_BUFFER_SIZE (outbuffer) / sizeof(type) & ~1;                             \
+  gdouble inspot, outspot;                                                                      \
+                                                                                                \
+  GstFFT##ffttag *inctx = gst_fft_##ffttag2##_new (insamples, FALSE);                           \
+  GstFFT##ffttag##Complex *in = g_new (GstFFT##ffttag##Complex, insamples / 2 + 1);             \
+  GstFFT##ffttag *outctx = gst_fft_##ffttag2##_new (outsamples, FALSE);                         \
+  GstFFT##ffttag##Complex *out = g_new (GstFFT##ffttag##Complex, outsamples / 2 + 1);           \
+                                                                                                \
+  gst_fft_##ffttag2##_window (inctx, (type*)GST_BUFFER_DATA (inbuffer),                         \
+      GST_FFT_WINDOW_HAMMING);                                                                  \
+  gst_fft_##ffttag2##_fft (inctx, (type*)GST_BUFFER_DATA (inbuffer), in);                       \
+  gst_fft_##ffttag2##_window (outctx, (type*)GST_BUFFER_DATA (outbuffer),                       \
+      GST_FFT_WINDOW_HAMMING);                                                                  \
+  gst_fft_##ffttag2##_fft (outctx, (type*)GST_BUFFER_DATA (outbuffer), out);                    \
+                                                                                                \
+  inspot = find_main_frequency_spot_##ffttag (in, insamples / 2 + 1);                           \
+  outspot = find_main_frequency_spot_##ffttag (out, outsamples / 2 + 1);                        \
+  GST_LOG ("Spots are %.3f and %.3f", inspot, outspot);                                         \
+  fail_unless (fabs (outspot - inspot) < 0.05);                                                 \
+  fail_unless (is_zero_except_##ffttag (in, insamples / 2 + 1, inspot));                        \
+  fail_unless (is_zero_except_##ffttag (out, outsamples / 2 + 1, outspot));                     \
+                                                                                                \
+  gst_fft_##ffttag2##_free (inctx);                                                             \
+  gst_fft_##ffttag2##_free (outctx);                                                            \
+  g_free (in);                                                                                  \
+  g_free (out);                                                                                 \
+}
+FFT_HELPERS (float, F32, f32, 2048.0f);
+FFT_HELPERS (double, F64, f64, 2048.0);
+FFT_HELPERS (gint16, S16, s16, 32767.0);
+FFT_HELPERS (gint32, S32, s32, 2147483647.0);
+
+#define FILL_BUFFER(type, desc, value);                         \
+  static void init_##type##_##desc (GstBuffer *buffer)          \
+  {                                                             \
+    type *ptr = (type *) GST_BUFFER_DATA (buffer);              \
+    int i, nsamples = GST_BUFFER_SIZE (buffer) / sizeof (type); \
+    for (i = 0; i < nsamples; ++i) {                            \
+      *ptr++ = value;                                           \
+    }                                                           \
+  }
+
+FILL_BUFFER (float, silence, 0.0f);
+FILL_BUFFER (double, silence, 0.0);
+FILL_BUFFER (gint16, silence, 0);
+FILL_BUFFER (gint32, silence, 0);
+FILL_BUFFER (float, sine, sinf (i * 0.01f));
+FILL_BUFFER (float, sine2, sinf (i * 1.8f));
+FILL_BUFFER (double, sine, sin (i * 0.01));
+FILL_BUFFER (double, sine2, sin (i * 1.8));
+FILL_BUFFER (gint16, sine, (gint16) (32767 * sinf (i * 0.01f)));
+FILL_BUFFER (gint16, sine2, (gint16) (32767 * sinf (i * 1.8f)));
+FILL_BUFFER (gint32, sine, (gint32) (2147483647 * sinf (i * 0.01f)));
+FILL_BUFFER (gint32, sine2, (gint32) (2147483647 * sinf (i * 1.8f)));
+
+static void
+run_fft_pipeline (int inrate, int outrate, int quality, int width, gboolean fp,
+    void (*init) (GstBuffer *),
+    void (*compare_ffts) (const GstBuffer *, const GstBuffer *))
+{
+  GstElement *audioresample;
+  GstBuffer *inbuffer, *outbuffer;
+  GstCaps *caps;
+  const int nsamples = 2048;
+
+  audioresample = setup_audioresample (1, inrate, outrate, width, fp);
+  fail_unless (audioresample != NULL);
+  g_object_set (audioresample, "quality", quality, NULL);
+  caps = gst_pad_get_negotiated_caps (mysrcpad);
+  fail_unless (gst_caps_is_fixed (caps));
+
+  fail_unless (gst_element_set_state (audioresample,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (nsamples * width / 8);
+  GST_BUFFER_DURATION (inbuffer) = GST_FRAMES_TO_CLOCK_TIME (nsamples, inrate);
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_buffer_ref (inbuffer);
+
+  (*init) (inbuffer);
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being collected on the global buffer list */
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  /* retrieve out buffer */
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+
+  fail_unless (gst_element_set_state (audioresample,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
+
+  (*compare_ffts) (inbuffer, outbuffer);
+
+  /* cleanup */
+  gst_buffer_unref (inbuffer);
+  gst_caps_unref (caps);
+  cleanup_audioresample (audioresample);
+}
+
+GST_START_TEST (test_fft)
+{
+  int quality;
+  size_t f0, f1;
+  static const int frequencies[] =
+      { 8000, 16000, 44100, 48000, 128000, 12345, 54321 };
+
+  /* audioresample uses a mixed float/double code path for floats with quality>8, make sure we test it */
+  for (quality = 0; quality <= 10; quality += 5) {
+    for (f0 = 0; f0 < G_N_ELEMENTS (frequencies); ++f0) {
+      for (f1 = 0; f1 < G_N_ELEMENTS (frequencies); ++f1) {
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, TRUE,
+            &init_float_silence, &compare_ffts_F32);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, TRUE,
+            &init_float_sine, &compare_ffts_F32);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, TRUE,
+            &init_float_sine2, &compare_ffts_F32);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 64, TRUE,
+            &init_double_silence, &compare_ffts_F64);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 64, TRUE,
+            &init_double_sine, &compare_ffts_F64);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 64, TRUE,
+            &init_double_sine2, &compare_ffts_F64);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 16, FALSE,
+            &init_gint16_silence, &compare_ffts_S16);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 16, FALSE,
+            &init_gint16_sine, &compare_ffts_S16);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 16, FALSE,
+            &init_gint16_sine2, &compare_ffts_S16);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, FALSE,
+            &init_gint32_silence, &compare_ffts_S32);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, FALSE,
+            &init_gint32_sine, &compare_ffts_S32);
+        run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, FALSE,
+            &init_gint32_sine2, &compare_ffts_S32);
+      }
+    }
+  }
+}
+
+GST_END_TEST;
+
 static Suite *
 audioresample_suite (void)
 {
@@ -913,6 +1104,7 @@ audioresample_suite (void)
   tcase_add_test (tc_chain, test_shutdown);
   tcase_add_test (tc_chain, test_live_switch);
   tcase_add_test (tc_chain, test_timestamp_drift);
+  tcase_add_test (tc_chain, test_fft);
 
 #ifndef GST_DISABLE_PARSE
   tcase_set_timeout (tc_chain, 360);
index e83dceb..1d40a20 100644 (file)
@@ -89,6 +89,7 @@ GST_START_TEST (test_all_waves)
 
   while (values[j].value_name) {
     GST_DEBUG_OBJECT (audiotestsrc, "testing wave %s", values[j].value_name);
+    g_object_set (audiotestsrc, "wave", values[j].value, NULL);
 
     fail_unless (gst_element_set_state (audiotestsrc,
             GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
index eb6f38a..b32a776 100644 (file)
@@ -1,6 +1,7 @@
 /* GStreamer unit tests for decodebin
  *
  * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2011 Hewlett-Packard Development Company, L.P.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,6 +24,7 @@
 #endif
 
 #include <gst/check/gstcheck.h>
+#include <gst/base/gstbaseparse.h>
 #include <unistd.h>
 
 static const gchar dummytext[] =
@@ -184,6 +186,176 @@ GST_START_TEST (test_reuse_without_decoders)
 
 GST_END_TEST;
 
+/* Fake mp3 parser for test */
+typedef GstBaseParse TestMpegAudioParse;
+typedef GstBaseParseClass TestMpegAudioParseClass;
+
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, layer=[1,3], parsed=(b)true")
+    );
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, parsed=(bool) { false, true }")
+    );
+
+static GType test_mpeg_audio_parse_get_type (void);
+static gboolean test_mpeg_audio_parse_start (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_stop (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame, guint * size, gint * skipsize);
+static GstFlowReturn test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame);
+
+GST_BOILERPLATE (TestMpegAudioParse, test_mpeg_audio_parse, GstBaseParse,
+    GST_TYPE_BASE_PARSE);
+
+static void
+test_mpeg_audio_parse_base_init (gpointer klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+
+  gst_element_class_set_details_simple (element_class, "MPEG1 Audio Parser",
+      "Codec/Parser/Audio", "Pretends to parse mpeg1 audio stream",
+      "Foo Bar <foo@bar.com>");
+}
+
+static void
+test_mpeg_audio_parse_class_init (TestMpegAudioParseClass * klass)
+{
+  GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass);
+
+  parse_class->start = test_mpeg_audio_parse_start;
+  parse_class->stop = test_mpeg_audio_parse_stop;
+  parse_class->check_valid_frame = test_mpeg_audio_parse_check_valid_frame;
+  parse_class->parse_frame = test_mpeg_audio_parse_parse_frame;
+}
+
+static gint num_parse_instances = 0;
+
+static void
+test_mpeg_audio_parse_init (TestMpegAudioParse * mp3parse,
+    TestMpegAudioParseClass * klass)
+{
+  /* catch decodebin plugging parsers in a loop early */
+  fail_unless (++num_parse_instances < 10);
+}
+
+static gboolean
+test_mpeg_audio_parse_start (GstBaseParse * parse)
+{
+  gst_base_parse_set_min_frame_size (parse, 6);
+  return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_stop (GstBaseParse * parse)
+{
+  return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame, guint * framesize, gint * skipsize)
+{
+  const guint8 *data = GST_BUFFER_DATA (frame->buffer);
+
+  if ((GST_READ_UINT16_BE (data) & 0xffe0) == 0xffe0) {
+    /* this framesize is hard-coded for ../test.mp3 */
+    *framesize = 1045;
+    return TRUE;
+  } else {
+    *skipsize = 1;
+    return FALSE;
+  }
+}
+
+static GstFlowReturn
+test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame)
+{
+  if (GST_BUFFER_OFFSET (frame->buffer) == 0) {
+    GstCaps *caps;
+
+    caps = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 1,
+        "mpegaudioversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3,
+        "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 2, NULL);
+    gst_buffer_set_caps (frame->buffer, caps);
+    gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps);
+    gst_caps_unref (caps);
+  }
+  return GST_FLOW_OK;
+}
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "testmpegaudioparse", GST_RANK_NONE,
+      test_mpeg_audio_parse_get_type ());
+}
+
+GST_START_TEST (test_mp3_parser_loop)
+{
+  GstStateChangeReturn sret;
+  GstPluginFeature *feature;
+  GstMessage *msg;
+  GstElement *pipe, *src, *dec;
+  gchar *path;
+
+  num_parse_instances = 0;
+
+  gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR,
+      "fakemp3parse", "fakemp3parse", plugin_init, VERSION, "LGPL",
+      "gst-plugins-base", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
+
+  feature = gst_default_registry_find_feature ("testmpegaudioparse",
+      GST_TYPE_ELEMENT_FACTORY);
+
+  gst_plugin_feature_set_rank (feature, GST_RANK_PRIMARY + 100);
+
+  pipe = gst_pipeline_new (NULL);
+
+  src = gst_element_factory_make ("filesrc", NULL);
+  fail_unless (src != NULL);
+
+  path = g_build_filename (GST_TEST_FILES_PATH, "test.mp3", NULL);
+  g_object_set (src, "location", path, NULL);
+  g_free (path);
+
+  dec = gst_element_factory_make ("decodebin", NULL);
+  fail_unless (dec != NULL);
+
+  gst_bin_add_many (GST_BIN (pipe), src, dec, NULL);
+  gst_element_link_many (src, dec, NULL);
+
+  sret = gst_element_set_state (pipe, GST_STATE_PLAYING);
+  fail_unless_equals_int (sret, GST_STATE_CHANGE_ASYNC);
+
+  /* wait for unlinked error */
+  msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe),
+      GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR);
+  gst_message_unref (msg);
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+
+  /* make sure out parser got plugged at all though */
+  fail_unless_equals_int (num_parse_instances, 1);
+
+  /* don't want to interfere with any other of the other tests */
+  gst_plugin_feature_set_rank (feature, GST_RANK_NONE);
+  gst_object_unref (feature);
+}
+
+GST_END_TEST;
+
 static Suite *
 decodebin_suite (void)
 {
@@ -193,6 +365,7 @@ decodebin_suite (void)
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_text_plain_streams);
   tcase_add_test (tc_chain, test_reuse_without_decoders);
+  tcase_add_test (tc_chain, test_mp3_parser_loop);
 
   return s;
 }
index 84cf405..27ed982 100644 (file)
@@ -1,6 +1,9 @@
 /* GStreamer unit tests for decodebin2
  *
  * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2011 Hewlett-Packard Development Company, L.P.
+ *   Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>, Collabora Ltd.
+ *           Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,6 +26,7 @@
 #endif
 
 #include <gst/check/gstcheck.h>
+#include <gst/base/gstbaseparse.h>
 #include <unistd.h>
 
 static const gchar dummytext[] =
@@ -187,6 +191,434 @@ GST_START_TEST (test_reuse_without_decoders)
 
 GST_END_TEST;
 
+/* Fake mp3 parser for test */
+typedef GstBaseParse TestMpegAudioParse;
+typedef GstBaseParseClass TestMpegAudioParseClass;
+
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, layer=[1,3], parsed=(b)true")
+    );
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, parsed=(bool) { false, true }")
+    );
+
+static GType test_mpeg_audio_parse_get_type (void);
+static gboolean test_mpeg_audio_parse_start (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_stop (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame, guint * size, gint * skipsize);
+static GstFlowReturn test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame);
+
+GST_BOILERPLATE (TestMpegAudioParse, test_mpeg_audio_parse, GstBaseParse,
+    GST_TYPE_BASE_PARSE);
+
+static void
+test_mpeg_audio_parse_base_init (gpointer klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
+
+  gst_element_class_set_details_simple (element_class, "MPEG1 Audio Parser",
+      "Codec/Parser/Audio", "Pretends to parse mpeg1 audio stream",
+      "Foo Bar <foo@bar.com>");
+}
+
+static void
+test_mpeg_audio_parse_class_init (TestMpegAudioParseClass * klass)
+{
+  GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass);
+
+  parse_class->start = test_mpeg_audio_parse_start;
+  parse_class->stop = test_mpeg_audio_parse_stop;
+  parse_class->check_valid_frame = test_mpeg_audio_parse_check_valid_frame;
+  parse_class->parse_frame = test_mpeg_audio_parse_parse_frame;
+}
+
+static gint num_parse_instances = 0;
+
+static void
+test_mpeg_audio_parse_init (TestMpegAudioParse * mp3parse,
+    TestMpegAudioParseClass * klass)
+{
+  /* catch decodebin plugging parsers in a loop early */
+  fail_unless (++num_parse_instances < 10);
+}
+
+static gboolean
+test_mpeg_audio_parse_start (GstBaseParse * parse)
+{
+  gst_base_parse_set_min_frame_size (parse, 6);
+  return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_stop (GstBaseParse * parse)
+{
+  return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame, guint * framesize, gint * skipsize)
+{
+  const guint8 *data = GST_BUFFER_DATA (frame->buffer);
+
+  if ((GST_READ_UINT16_BE (data) & 0xffe0) == 0xffe0) {
+    /* this framesize is hard-coded for ../test.mp3 */
+    *framesize = 1045;
+    return TRUE;
+  } else {
+    *skipsize = 1;
+    return FALSE;
+  }
+}
+
+static GstFlowReturn
+test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame)
+{
+  if (GST_BUFFER_OFFSET (frame->buffer) == 0) {
+    GstCaps *caps;
+
+    caps = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 1,
+        "mpegaudioversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3,
+        "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 2, NULL);
+    gst_buffer_set_caps (frame->buffer, caps);
+    gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps);
+    gst_caps_unref (caps);
+  }
+  return GST_FLOW_OK;
+}
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "testmpegaudioparse", GST_RANK_NONE,
+      test_mpeg_audio_parse_get_type ());
+}
+
+GST_START_TEST (test_mp3_parser_loop)
+{
+  GstStateChangeReturn sret;
+  GstPluginFeature *feature;
+  GstMessage *msg;
+  GstElement *pipe, *src, *dec;
+  gchar *path;
+
+  num_parse_instances = 0;
+
+  gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR,
+      "fakemp3parse", "fakemp3parse", plugin_init, VERSION, "LGPL",
+      "gst-plugins-base", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
+
+  feature = gst_default_registry_find_feature ("testmpegaudioparse",
+      GST_TYPE_ELEMENT_FACTORY);
+
+  gst_plugin_feature_set_rank (feature, GST_RANK_PRIMARY + 100);
+
+  pipe = gst_pipeline_new (NULL);
+
+  src = gst_element_factory_make ("filesrc", NULL);
+  fail_unless (src != NULL);
+
+  path = g_build_filename (GST_TEST_FILES_PATH, "test.mp3", NULL);
+  g_object_set (src, "location", path, NULL);
+  g_free (path);
+
+  dec = gst_element_factory_make ("decodebin2", NULL);
+  fail_unless (dec != NULL);
+
+  gst_bin_add_many (GST_BIN (pipe), src, dec, NULL);
+  gst_element_link_many (src, dec, NULL);
+
+  sret = gst_element_set_state (pipe, GST_STATE_PLAYING);
+  fail_unless_equals_int (sret, GST_STATE_CHANGE_ASYNC);
+
+  /* wait for unlinked error */
+  msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe),
+      GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR);
+  gst_message_unref (msg);
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+
+  /* make sure out parser got plugged at all though */
+  fail_unless_equals_int (num_parse_instances, 1);
+
+  /* don't want to interfere with any other of the other tests */
+  gst_plugin_feature_set_rank (feature, GST_RANK_NONE);
+  gst_object_unref (feature);
+}
+
+GST_END_TEST;
+
+/* Fake parser/decoder for parser_negotiation test */
+static GType gst_fake_h264_parser_get_type (void);
+static GType gst_fake_h264_decoder_get_type (void);
+
+#undef parent_class
+#define parent_class fake_h264_parser_parent_class
+typedef struct _GstFakeH264Parser GstFakeH264Parser;
+typedef GstElementClass GstFakeH264ParserClass;
+
+struct _GstFakeH264Parser
+{
+  GstElement parent;
+};
+
+GST_BOILERPLATE (GstFakeH264Parser, gst_fake_h264_parser, GstElement,
+    GST_TYPE_ELEMENT);
+
+static void
+gst_fake_h264_parser_base_init (gpointer klass)
+{
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-h264"));
+  static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-h264, "
+          "stream-format=(string) { avc, byte-stream }"));
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
+  gst_element_class_set_details_simple (element_class,
+      "FakeH264Parser", "Codec/Parser/Converter/Video", "yep", "me");
+}
+
+static void
+gst_fake_h264_parser_class_init (GstFakeH264ParserClass * klass)
+{
+}
+
+static gboolean
+gst_fake_h264_parser_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+  GstPad *otherpad = gst_element_get_static_pad (self, "src");
+  GstCaps *accepted_caps;
+  GstStructure *s;
+  const gchar *stream_format;
+
+  accepted_caps = gst_pad_get_allowed_caps (otherpad);
+  accepted_caps = gst_caps_make_writable (accepted_caps);
+  gst_caps_truncate (accepted_caps);
+
+  s = gst_caps_get_structure (accepted_caps, 0);
+  stream_format = gst_structure_get_string (s, "stream-format");
+  if (!stream_format)
+    gst_structure_set (s, "stream-format", G_TYPE_STRING, "avc", NULL);
+
+  gst_pad_set_caps (otherpad, accepted_caps);
+  gst_caps_unref (accepted_caps);
+
+  gst_object_unref (otherpad);
+  gst_object_unref (self);
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_fake_h264_parser_sink_chain (GstPad * pad, GstBuffer * buf)
+{
+  GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+  GstPad *otherpad = gst_element_get_static_pad (self, "src");
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  buf = gst_buffer_make_metadata_writable (buf);
+  gst_buffer_set_caps (buf, GST_PAD_CAPS (otherpad));
+
+  ret = gst_pad_push (otherpad, buf);
+
+  gst_object_unref (otherpad);
+  gst_object_unref (self);
+
+  return ret;
+}
+
+static void
+gst_fake_h264_parser_init (GstFakeH264Parser * self,
+    GstFakeH264ParserClass * klass)
+{
+  GstPad *pad;
+
+  pad =
+      gst_pad_new_from_template (gst_element_class_get_pad_template
+      (GST_ELEMENT_GET_CLASS (self), "sink"), "sink");
+  gst_pad_set_setcaps_function (pad, gst_fake_h264_parser_sink_setcaps);
+  gst_pad_set_chain_function (pad, gst_fake_h264_parser_sink_chain);
+  gst_element_add_pad (GST_ELEMENT (self), pad);
+
+  pad =
+      gst_pad_new_from_template (gst_element_class_get_pad_template
+      (GST_ELEMENT_GET_CLASS (self), "src"), "src");
+  gst_element_add_pad (GST_ELEMENT (self), pad);
+}
+
+#undef parent_class
+#define parent_class fake_h264_decoder_parent_class
+typedef struct _GstFakeH264Decoder GstFakeH264Decoder;
+typedef GstElementClass GstFakeH264DecoderClass;
+
+struct _GstFakeH264Decoder
+{
+  GstElement parent;
+};
+
+GST_BOILERPLATE (GstFakeH264Decoder, gst_fake_h264_decoder, GstElement,
+    GST_TYPE_ELEMENT);
+
+static void
+gst_fake_h264_decoder_base_init (gpointer klass)
+{
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-h264, " "stream-format=(string) byte-stream"));
+  static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-raw-yuv"));
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
+  gst_element_class_set_details_simple (element_class,
+      "FakeH264Decoder", "Codec/Decoder/Video", "yep", "me");
+}
+
+static void
+gst_fake_h264_decoder_class_init (GstFakeH264DecoderClass * klass)
+{
+}
+
+static gboolean
+gst_fake_h264_decoder_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+  GstPad *otherpad = gst_element_get_static_pad (self, "src");
+
+  caps = gst_caps_new_simple ("video/x-raw-yuv", NULL);
+  gst_pad_set_caps (otherpad, caps);
+  gst_caps_unref (caps);
+
+  gst_object_unref (otherpad);
+  gst_object_unref (self);
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_fake_h264_decoder_sink_chain (GstPad * pad, GstBuffer * buf)
+{
+  GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+  GstPad *otherpad = gst_element_get_static_pad (self, "src");
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  buf = gst_buffer_make_metadata_writable (buf);
+  gst_buffer_set_caps (buf, GST_PAD_CAPS (otherpad));
+
+  ret = gst_pad_push (otherpad, buf);
+
+  gst_object_unref (otherpad);
+  gst_object_unref (self);
+
+  return ret;
+}
+
+static void
+gst_fake_h264_decoder_init (GstFakeH264Decoder * self,
+    GstFakeH264DecoderClass * klass)
+{
+  GstPad *pad;
+
+  pad =
+      gst_pad_new_from_template (gst_element_class_get_pad_template
+      (GST_ELEMENT_GET_CLASS (self), "sink"), "sink");
+  gst_pad_set_setcaps_function (pad, gst_fake_h264_decoder_sink_setcaps);
+  gst_pad_set_chain_function (pad, gst_fake_h264_decoder_sink_chain);
+  gst_element_add_pad (GST_ELEMENT (self), pad);
+
+  pad =
+      gst_pad_new_from_template (gst_element_class_get_pad_template
+      (GST_ELEMENT_GET_CLASS (self), "src"), "src");
+  gst_element_add_pad (GST_ELEMENT (self), pad);
+}
+
+static void
+parser_negotiation_pad_added_cb (GstElement * dec, GstPad * pad,
+    gpointer user_data)
+{
+  GstBin *pipe = user_data;
+  GstElement *sink;
+  GstPad *sinkpad;
+
+  sink = gst_element_factory_make ("fakesink", NULL);
+  gst_bin_add (pipe, sink);
+  gst_element_sync_state_with_parent (sink);
+  sinkpad = gst_element_get_static_pad (sink, "sink");
+  gst_pad_link (pad, sinkpad);
+  gst_object_unref (sinkpad);
+}
+
+GST_START_TEST (test_parser_negotiation)
+{
+  GstStateChangeReturn sret;
+  GstMessage *msg;
+  GstCaps *caps;
+  GstElement *pipe, *src, *filter, *dec;
+
+  gst_element_register (NULL, "fakeh264parse", GST_RANK_PRIMARY + 101,
+      gst_fake_h264_parser_get_type ());
+  gst_element_register (NULL, "fakeh264dec", GST_RANK_PRIMARY + 100,
+      gst_fake_h264_decoder_get_type ());
+
+  pipe = gst_pipeline_new (NULL);
+
+  src = gst_element_factory_make ("fakesrc", NULL);
+  fail_unless (src != NULL);
+  g_object_set (G_OBJECT (src), "num-buffers", 5, "sizetype", 2, "filltype", 2,
+      "can-activate-pull", FALSE, NULL);
+
+  filter = gst_element_factory_make ("capsfilter", NULL);
+  fail_unless (filter != NULL);
+  caps = gst_caps_from_string ("video/x-h264");
+  g_object_set (G_OBJECT (filter), "caps", caps, NULL);
+  gst_caps_unref (caps);
+
+  dec = gst_element_factory_make ("decodebin2", NULL);
+  fail_unless (dec != NULL);
+
+  g_signal_connect (dec, "pad-added",
+      G_CALLBACK (parser_negotiation_pad_added_cb), pipe);
+
+  gst_bin_add_many (GST_BIN (pipe), src, filter, dec, NULL);
+  gst_element_link_many (src, filter, dec, NULL);
+
+  sret = gst_element_set_state (pipe, GST_STATE_PLAYING);
+  fail_unless_equals_int (sret, GST_STATE_CHANGE_ASYNC);
+
+  /* wait for EOS or error */
+  msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe),
+      GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
+  fail_unless (msg != NULL);
+  fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
+  gst_message_unref (msg);
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
 static Suite *
 decodebin2_suite (void)
 {
@@ -196,6 +628,8 @@ decodebin2_suite (void)
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_text_plain_streams);
   tcase_add_test (tc_chain, test_reuse_without_decoders);
+  tcase_add_test (tc_chain, test_mp3_parser_loop);
+  tcase_add_test (tc_chain, test_parser_negotiation);
 
   return s;
 }
index 60179c6..8721a8c 100644 (file)
@@ -174,7 +174,7 @@ check_rgb_buf (const guint8 * pixels, guint32 r_mask, guint32 g_mask,
     guint32 b_mask, guint32 a_mask, guint8 r_expected, guint8 g_expected,
     guint8 b_expected, guint endianness, guint bpp, guint depth)
 {
-  guint32 pixel, red, green, blue, alpha;
+  guint32 pixel, red, green, blue;
 
   switch (bpp) {
     case 32:{
@@ -210,7 +210,7 @@ check_rgb_buf (const guint8 * pixels, guint32 r_mask, guint32 g_mask,
   red = right_shift_colour (r_mask, pixel);
   green = right_shift_colour (g_mask, pixel);
   blue = right_shift_colour (b_mask, pixel);
-  alpha = right_shift_colour (a_mask, pixel);
+  /* alpha = right_shift_colour (a_mask, pixel); */
 
   /* can't enable this by default, valgrind will complain about accessing
    * uninitialised memory for the depth=24,bpp=32 formats ... */
index f0cf64d..b69e0c6 100644 (file)
@@ -164,7 +164,7 @@ GST_START_TEST (test_seeking)
           gst_event_new_new_segment (TRUE, 1.0, GST_FORMAT_BYTES, 8800, -1,
               0))) {
     GST_LOG ("seek ok");
-    /* make sure that that new position is reported immediately */
+    /* make sure that new position is reported immediately */
     CHECK_QUERY_POSITION (gnomevfssink, GST_FORMAT_BYTES, 8800);
     PUSH_BYTES (1);
     CHECK_QUERY_POSITION (gnomevfssink, GST_FORMAT_BYTES, 8801);
index 08aace6..c550571 100644 (file)
@@ -459,8 +459,7 @@ gst_red_video_src_base_init (gpointer klass)
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_details_simple (element_class,
       "Red Video Src", "Source/Video", "yep", "me");
 }
@@ -571,8 +570,7 @@ gst_codec_src_base_init (gpointer klass)
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_details_simple (element_class,
       "Codec Src", "Source/Video", "yep", "me");
 }
diff --git a/tests/check/elements/playbin2-compressed.c b/tests/check/elements/playbin2-compressed.c
new file mode 100644 (file)
index 0000000..03ab020
--- /dev/null
@@ -0,0 +1,2526 @@
+/* GStreamer unit tests for playbin2 compressed stream support
+ *
+ * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <gst/check/gstcheck.h>
+#include <gst/base/gstpushsrc.h>
+#include <gst/base/gstbasesink.h>
+#include <gst/interfaces/streamvolume.h>
+
+#ifndef GST_DISABLE_REGISTRY
+
+#define NBUFFERS 100
+
+static GType gst_caps_src_get_type (void);
+static GType gst_codec_demuxer_get_type (void);
+static GType gst_codec_sink_get_type (void);
+static GType gst_audio_codec_sink_get_type (void);
+static GType gst_video_codec_sink_get_type (void);
+
+#undef parent_class
+#define parent_class caps_src_parent_class
+typedef struct _GstCapsSrc GstCapsSrc;
+typedef GstPushSrcClass GstCapsSrcClass;
+
+struct _GstCapsSrc
+{
+  GstPushSrc parent;
+
+  GstCaps *caps;
+  gchar *uri;
+  gint nbuffers;
+};
+
+static GstURIType
+gst_caps_src_uri_get_type (void)
+{
+  return GST_URI_SRC;
+}
+
+static gchar **
+gst_caps_src_uri_get_protocols (void)
+{
+  static gchar *protocols[] = { (char *) "caps", NULL };
+
+  return protocols;
+}
+
+static const gchar *
+gst_caps_src_uri_get_uri (GstURIHandler * handler)
+{
+  GstCapsSrc *src = (GstCapsSrc *) handler;
+
+  return src->uri;
+}
+
+static gboolean
+gst_caps_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+{
+  GstCapsSrc *src = (GstCapsSrc *) handler;
+
+  if (uri == NULL || !g_str_has_prefix (uri, "caps:"))
+    return FALSE;
+
+  g_free (src->uri);
+  src->uri = g_strdup (uri);
+
+  if (src->caps)
+    gst_caps_unref (src->caps);
+  src->caps = NULL;
+
+  return TRUE;
+}
+
+static void
+gst_caps_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
+{
+  GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface;
+
+  iface->get_type = gst_caps_src_uri_get_type;
+  iface->get_protocols = gst_caps_src_uri_get_protocols;
+  iface->get_uri = gst_caps_src_uri_get_uri;
+  iface->set_uri = gst_caps_src_uri_set_uri;
+}
+
+static void
+gst_caps_src_init_type (GType type)
+{
+  static const GInterfaceInfo uri_hdlr_info = {
+    gst_caps_src_uri_handler_init, NULL, NULL
+  };
+
+  g_type_add_interface_static (type, GST_TYPE_URI_HANDLER, &uri_hdlr_info);
+}
+
+GST_BOILERPLATE_FULL (GstCapsSrc, gst_caps_src, GstPushSrc,
+    GST_TYPE_PUSH_SRC, gst_caps_src_init_type);
+
+static void
+gst_caps_src_base_init (gpointer klass)
+{
+  static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS_ANY);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
+  gst_element_class_set_details_simple (element_class,
+      "CapsSource", "Source/Generic", "yep", "me");
+}
+
+static void
+gst_caps_src_finalize (GObject * object)
+{
+  GstCapsSrc *src = (GstCapsSrc *) object;
+
+  if (src->caps)
+    gst_caps_unref (src->caps);
+  src->caps = NULL;
+  g_free (src->uri);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GstFlowReturn
+gst_caps_src_create (GstPushSrc * psrc, GstBuffer ** p_buf)
+{
+  GstCapsSrc *src = (GstCapsSrc *) psrc;
+  GstBuffer *buf;
+
+  if (src->nbuffers >= NBUFFERS) {
+    return GST_FLOW_UNEXPECTED;
+  }
+
+  if (!src->caps) {
+    if (!src->uri) {
+      return GST_FLOW_ERROR;
+    }
+
+    src->caps = gst_caps_from_string (src->uri + sizeof ("caps"));
+    if (!src->caps) {
+      return GST_FLOW_ERROR;
+    }
+  }
+
+  buf = gst_buffer_new ();
+  gst_buffer_set_caps (buf, src->caps);
+  GST_BUFFER_TIMESTAMP (buf) =
+      gst_util_uint64_scale (src->nbuffers, GST_SECOND, 25);
+  src->nbuffers++;
+
+  *p_buf = buf;
+  return GST_FLOW_OK;
+}
+
+static void
+gst_caps_src_class_init (GstCapsSrcClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+  GstPushSrcClass *pushsrc_class = (GstPushSrcClass *) klass;
+
+  gobject_class->finalize = gst_caps_src_finalize;
+  pushsrc_class->create = gst_caps_src_create;
+}
+
+static void
+gst_caps_src_init (GstCapsSrc * src, GstCapsSrcClass * klass)
+{
+  gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
+}
+
+#undef parent_class
+#define parent_class codec_sink_parent_class
+
+typedef struct _GstCodecSink GstCodecSink;
+typedef GstBaseSinkClass GstCodecSinkClass;
+
+struct _GstCodecSink
+{
+  GstBaseSink parent;
+
+  gboolean audio;
+  gboolean raw;
+  gint n_raw, n_compressed;
+};
+
+GST_BOILERPLATE (GstCodecSink, gst_codec_sink, GstBaseSink, GST_TYPE_BASE_SINK);
+
+static void
+gst_codec_sink_base_init (gpointer klass)
+{
+}
+
+static gboolean
+gst_codec_sink_start (GstBaseSink * bsink)
+{
+  GstCodecSink *sink = (GstCodecSink *) bsink;
+
+  sink->n_raw = 0;
+  sink->n_compressed = 0;
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_codec_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
+{
+  GstCodecSink *sink = (GstCodecSink *) bsink;
+
+  if (sink->raw)
+    sink->n_raw++;
+  else
+    sink->n_compressed++;
+
+  return GST_FLOW_OK;
+}
+
+static void
+gst_codec_sink_class_init (GstCodecSinkClass * klass)
+{
+  GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+  basesink_class->start = gst_codec_sink_start;
+  basesink_class->render = gst_codec_sink_render;
+}
+
+static void
+gst_codec_sink_init (GstCodecSink * sink, GstCodecSinkClass * klass)
+{
+}
+
+#undef parent_class
+#define parent_class audio_codec_sink_parent_class
+
+typedef GstCodecSink GstAudioCodecSink;
+typedef GstCodecSinkClass GstAudioCodecSinkClass;
+
+static void
+gst_audio_codec_sink_init_type (GType type)
+{
+  static const GInterfaceInfo svol_iface_info = {
+    NULL, NULL, NULL
+  };
+
+  g_type_add_interface_static (type, GST_TYPE_STREAM_VOLUME, &svol_iface_info);
+}
+
+GST_BOILERPLATE_FULL (GstAudioCodecSink, gst_audio_codec_sink, GstBaseSink,
+    gst_codec_sink_get_type (), gst_audio_codec_sink_init_type);
+
+static void
+gst_audio_codec_sink_base_init (gpointer klass)
+{
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw-int; audio/x-compressed")
+      );
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_set_details_simple (element_class,
+      "AudioCodecSink", "Sink/Audio", "yep", "me");
+}
+
+static void
+gst_audio_codec_sink_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  switch (prop_id) {
+    case 1:
+    case 2:
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_audio_codec_sink_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+
+  switch (prop_id) {
+    case 1:
+      g_value_set_double (value, 1.0);
+      break;
+    case 2:
+      g_value_set_boolean (value, FALSE);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_audio_codec_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+  GstAudioCodecSink *sink = (GstAudioCodecSink *) bsink;
+  GstStructure *s;
+
+  s = gst_caps_get_structure (caps, 0);
+
+  if (gst_structure_has_name (s, "audio/x-raw-int")) {
+    sink->raw = TRUE;
+  } else if (gst_structure_has_name (s, "audio/x-compressed")) {
+    sink->raw = FALSE;
+  } else {
+    fail_unless (gst_structure_has_name (s, "audio/x-raw-int")
+        || gst_structure_has_name (s, "audio/x-compressed"));
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+static void
+gst_audio_codec_sink_class_init (GstAudioCodecSinkClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+  GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+  gobject_class->set_property = gst_audio_codec_sink_set_property;
+  gobject_class->get_property = gst_audio_codec_sink_get_property;
+
+  g_object_class_install_property (gobject_class,
+      1,
+      g_param_spec_double ("volume", "Volume",
+          "Linear volume of this stream, 1.0=100%", 0.0, 10.0,
+          1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class,
+      2,
+      g_param_spec_boolean ("mute", "Mute",
+          "Mute", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  basesink_class->set_caps = gst_audio_codec_sink_set_caps;
+}
+
+static void
+gst_audio_codec_sink_init (GstAudioCodecSink * sink,
+    GstAudioCodecSinkClass * klass)
+{
+  sink->audio = TRUE;
+}
+
+#undef parent_class
+#define parent_class video_codec_sink_parent_class
+
+typedef GstCodecSink GstVideoCodecSink;
+typedef GstCodecSinkClass GstVideoCodecSinkClass;
+
+GST_BOILERPLATE (GstVideoCodecSink, gst_video_codec_sink, GstBaseSink,
+    gst_codec_sink_get_type ());
+
+static void
+gst_video_codec_sink_base_init (gpointer klass)
+{
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-raw-yuv; video/x-compressed")
+      );
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_set_details_simple (element_class,
+      "VideoCodecSink", "Sink/Video", "yep", "me");
+}
+
+static gboolean
+gst_video_codec_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+  GstVideoCodecSink *sink = (GstVideoCodecSink *) bsink;
+  GstStructure *s;
+
+  s = gst_caps_get_structure (caps, 0);
+
+  if (gst_structure_has_name (s, "video/x-raw-yuv")) {
+    sink->raw = TRUE;
+  } else if (gst_structure_has_name (s, "video/x-compressed")) {
+    sink->raw = FALSE;
+  } else {
+    fail_unless (gst_structure_has_name (s, "video/x-raw-yuv")
+        || gst_structure_has_name (s, "video/x-compressed"));
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+static void
+gst_video_codec_sink_class_init (GstVideoCodecSinkClass * klass)
+{
+  GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+  basesink_class->set_caps = gst_video_codec_sink_set_caps;
+}
+
+static void
+gst_video_codec_sink_init (GstVideoCodecSink * sink,
+    GstVideoCodecSinkClass * klass)
+{
+  sink->audio = FALSE;
+}
+
+#undef parent_class
+#define parent_class codec_demuxer_parent_class
+typedef struct _GstCodecDemuxer GstCodecDemuxer;
+typedef GstElementClass GstCodecDemuxerClass;
+
+struct _GstCodecDemuxer
+{
+  GstElement parent;
+
+  GstPad *sinkpad;
+  GstPad *srcpad0, *srcpad1;
+
+  GstEvent *newseg_event;
+};
+
+GST_BOILERPLATE (GstCodecDemuxer, gst_codec_demuxer, GstElement,
+    GST_TYPE_ELEMENT);
+
+#define STREAM_TYPES "{ " \
+    "none, " \
+    "raw-audio, " \
+    "compressed-audio, " \
+    "raw-video, " \
+    "compressed-video " \
+    "}"
+
+static void
+gst_codec_demuxer_base_init (gpointer klass)
+{
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("application/x-container,"
+          " stream0 = (string)" STREAM_TYPES " ,"
+          " stream1 = (string)" STREAM_TYPES)
+      );
+  static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src_%d",
+      GST_PAD_SRC, GST_PAD_SOMETIMES,
+      GST_STATIC_CAPS ("audio/x-raw-int; audio/x-compressed; "
+          "video/x-raw-yuv; video/x-compressed")
+      );
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
+  gst_element_class_set_details_simple (element_class,
+      "CodecDemuxer", "Codec/Demuxer", "yep", "me");
+}
+
+static void
+gst_codec_demuxer_finalize (GObject * object)
+{
+  GstCodecDemuxer *demux = (GstCodecDemuxer *) object;
+
+  if (demux->newseg_event)
+    gst_event_unref (demux->newseg_event);
+  demux->newseg_event = NULL;
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_codec_demuxer_class_init (GstCodecDemuxerClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+
+  gobject_class->finalize = gst_codec_demuxer_finalize;
+}
+
+static GstFlowReturn
+gst_codec_demuxer_chain (GstPad * pad, GstBuffer * buf)
+{
+  GstCodecDemuxer *demux = (GstCodecDemuxer *) GST_PAD_PARENT (pad);
+  GstFlowReturn ret0 = GST_FLOW_OK, ret1 = GST_FLOW_OK;
+
+  if (demux->srcpad0) {
+    GstBuffer *outbuf = gst_buffer_new ();
+
+    GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
+    gst_buffer_set_caps (outbuf, GST_PAD_CAPS (demux->srcpad0));
+    ret0 = gst_pad_push (demux->srcpad0, outbuf);
+  }
+  if (demux->srcpad1) {
+    GstBuffer *outbuf = gst_buffer_new ();
+
+    GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
+    gst_buffer_set_caps (outbuf, GST_PAD_CAPS (demux->srcpad1));
+    ret1 = gst_pad_push (demux->srcpad1, outbuf);
+  }
+  gst_buffer_unref (buf);
+
+  if (ret0 == GST_FLOW_NOT_LINKED && ret1 == GST_FLOW_NOT_LINKED)
+    return GST_FLOW_NOT_LINKED;
+  if (ret0 == GST_FLOW_OK && ret1 == GST_FLOW_OK)
+    return GST_FLOW_OK;
+
+  return MIN (ret0, ret1);
+}
+
+static gboolean
+gst_codec_demuxer_event (GstPad * pad, GstEvent * event)
+{
+  GstCodecDemuxer *demux = (GstCodecDemuxer *) gst_pad_get_parent (pad);
+  gboolean ret = TRUE;
+
+  /* The single newsegment event is pushed when the pads are created */
+  if (GST_EVENT_TYPE (event) != GST_EVENT_NEWSEGMENT) {
+    if (demux->srcpad0)
+      ret = ret && gst_pad_push_event (demux->srcpad0, gst_event_ref (event));
+    if (demux->srcpad1)
+      ret = ret && gst_pad_push_event (demux->srcpad1, gst_event_ref (event));
+  } else {
+    gst_event_replace (&demux->newseg_event, event);
+  }
+
+  gst_event_unref (event);
+
+  gst_object_unref (demux);
+  return ret;
+}
+
+static void
+gst_codec_demuxer_setup_pad (GstCodecDemuxer * demux, GstPad ** pad,
+    const gchar * streaminfo)
+{
+  if (g_str_equal (streaminfo, "none")) {
+    if (*pad) {
+      gst_pad_set_active (*pad, FALSE);
+      gst_element_remove_pad (GST_ELEMENT (demux), *pad);
+      *pad = NULL;
+    }
+  } else {
+    GstCaps *caps;
+
+    if (!*pad) {
+      GstPadTemplate *templ;
+
+      templ =
+          gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (demux),
+          "src_%d");
+      if (pad == &demux->srcpad0)
+        *pad = gst_pad_new_from_template (templ, "src_0");
+      else
+        *pad = gst_pad_new_from_template (templ, "src_1");
+      gst_pad_set_active (*pad, TRUE);
+      gst_pad_use_fixed_caps (*pad);
+      gst_element_add_pad (GST_ELEMENT (demux), *pad);
+    }
+
+    if (g_str_equal (streaminfo, "raw-video")) {
+      caps = gst_caps_new_simple ("video/x-raw-yuv",
+          "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'),
+          "width", G_TYPE_INT, 320,
+          "height", G_TYPE_INT, 240,
+          "framerate", GST_TYPE_FRACTION, 25, 1,
+          "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
+    } else if (g_str_equal (streaminfo, "compressed-video")) {
+      caps = gst_caps_new_simple ("video/x-compressed", NULL);
+    } else if (g_str_equal (streaminfo, "raw-audio")) {
+      caps = gst_caps_new_simple ("audio/x-raw-int",
+          "rate", G_TYPE_INT, 48000,
+          "channels", G_TYPE_INT, 2,
+          "endianness", G_TYPE_INT, G_LITTLE_ENDIAN,
+          "width", G_TYPE_INT, 16,
+          "depth", G_TYPE_INT, 16, "signed", G_TYPE_BOOLEAN, TRUE, NULL);
+    } else {
+      caps = gst_caps_new_simple ("audio/x-compressed", NULL);
+    }
+    gst_pad_set_caps (*pad, caps);
+    gst_caps_unref (caps);
+
+    if (demux->newseg_event)
+      gst_pad_push_event (*pad, gst_event_ref (demux->newseg_event));
+  }
+}
+
+static gboolean
+gst_codec_demuxer_setcaps (GstPad * pad, GstCaps * caps)
+{
+  GstCodecDemuxer *demux = (GstCodecDemuxer *) gst_pad_get_parent (pad);
+  GstStructure *s;
+  const gchar *streaminfo;
+
+  s = gst_caps_get_structure (caps, 0);
+
+  streaminfo = gst_structure_get_string (s, "stream0");
+  gst_codec_demuxer_setup_pad (demux, &demux->srcpad0, streaminfo);
+
+  streaminfo = gst_structure_get_string (s, "stream1");
+  gst_codec_demuxer_setup_pad (demux, &demux->srcpad1, streaminfo);
+
+  gst_object_unref (demux);
+  return TRUE;
+}
+
+static void
+gst_codec_demuxer_init (GstCodecDemuxer * demux, GstCodecDemuxerClass * klass)
+{
+  GstPadTemplate *templ;
+
+  templ = gst_element_class_get_pad_template (klass, "sink");
+  demux->sinkpad = gst_pad_new_from_template (templ, "sink");
+  gst_pad_set_setcaps_function (demux->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_codec_demuxer_setcaps));
+  gst_pad_set_chain_function (demux->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_codec_demuxer_chain));
+  gst_pad_set_event_function (demux->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_codec_demuxer_event));
+  gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad);
+}
+
+/****
+ * Start of the tests
+ ***/
+
+static GstElement *
+create_playbin (const gchar * uri, gboolean set_sink)
+{
+  GstElement *playbin, *sink;
+
+  playbin = gst_element_factory_make ("playbin2", "playbin2");
+  fail_unless (playbin != NULL, "Failed to create playbin element");
+
+  if (set_sink) {
+    sink = gst_element_factory_make ("videocodecsink", NULL);
+    fail_unless (sink != NULL, "Failed to create videocodecsink element");
+
+    /* Set sync to FALSE to prevent buffers from being dropped because
+     * they're too late */
+    g_object_set (sink, "sync", FALSE, NULL);
+
+    g_object_set (playbin, "video-sink", sink, NULL);
+
+    sink = gst_element_factory_make ("audiocodecsink", NULL);
+    fail_unless (sink != NULL, "Failed to create audiocodecsink");
+
+    /* Set sync to FALSE to prevent buffers from being dropped because
+     * they're too late */
+    g_object_set (sink, "sync", FALSE, NULL);
+
+    g_object_set (playbin, "audio-sink", sink, NULL);
+  }
+
+  g_object_set (playbin, "uri", uri, NULL);
+
+  return playbin;
+}
+
+GST_START_TEST (test_raw_single_video_stream_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin =
+      create_playbin
+      ("caps:video/x-raw-yuv, "
+      "format=(fourcc)I420, "
+      "width=(int)320, "
+      "height=(int)240, "
+      "framerate=(fraction)0/1, " "pixel-aspect-ratio=(fraction)1/1", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_video_stream_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:video/x-compressed", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_single_video_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-video, " "stream1=(string)none", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_video_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-video, " "stream1=(string)none", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_single_audio_stream_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin =
+      create_playbin
+      ("caps:audio/x-raw-int,"
+      " rate=(int)48000, "
+      " channels=(int)2, "
+      " endianness=(int)LITTLE_ENDIAN, "
+      " width=(int)16, " " depth=(int)16, " " signed=(bool)TRUE", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_audio_stream_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:audio/x-compressed", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_single_audio_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-audio, " "stream1=(string)none", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_audio_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-audio, " "stream1=(string)none", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_audio_video_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-audio, " "stream1=(string)raw-video", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_audio_video_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-audio, " "stream1=(string)compressed-video",
+      TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->raw == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_compressed_video_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-video, " "stream1=(string)compressed-video", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw + csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_compressed_audio_stream_demuxer_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-audio, " "stream1=(string)compressed-audio", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw + csink->n_compressed, NBUFFERS);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+#if 0
+typedef struct
+{
+  GstElement *playbin;
+  GstElement *sink;
+} SwitchBufferProbeCtx;
+
+static gboolean
+switch_video_buffer_probe (GstPad * pad, GstBuffer * buffer,
+    SwitchBufferProbeCtx * ctx)
+{
+  GstElement *playbin = ctx->playbin;
+  GstVideoCodecSink *sink = (GstVideoCodecSink *) ctx->sink;
+
+  if (sink->n_raw + sink->n_compressed == NBUFFERS / 2) {
+    gint cur_video;
+
+    g_object_get (G_OBJECT (playbin), "current-video", &cur_video, NULL);
+    cur_video = (cur_video == 0) ? 1 : 0;
+    g_object_set (G_OBJECT (playbin), "current-video", cur_video, NULL);
+  }
+
+  return TRUE;
+}
+
+GST_START_TEST (test_raw_compressed_video_stream_demuxer_switch_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-video, " "stream1=(string)compressed-video", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->n_raw > 0);
+    fail_unless (csink->n_compressed > 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_raw_video_stream_demuxer_switch_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-video, " "stream1=(string)raw-video", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->n_raw > 0);
+    fail_unless (csink->n_compressed > 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_raw_video_stream_demuxer_switch_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-video, " "stream1=(string)raw-video", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless (csink->n_raw > 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST
+    (test_compressed_compressed_video_stream_demuxer_switch_manual_sink) {
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-video, " "stream1=(string)compressed-video",
+      TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless (csink->n_compressed > 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+static gboolean
+switch_audio_buffer_probe (GstPad * pad, GstBuffer * buffer,
+    SwitchBufferProbeCtx * ctx)
+{
+  GstElement *playbin = ctx->playbin;
+  GstAudioCodecSink *sink = (GstAudioCodecSink *) ctx->sink;
+
+  if (sink->n_raw + sink->n_compressed == NBUFFERS / 3) {
+    gint cur_audio;
+
+    g_object_get (G_OBJECT (playbin), "current-audio", &cur_audio, NULL);
+    cur_audio = (cur_audio == 0) ? 1 : 0;
+    g_object_set (G_OBJECT (playbin), "current-audio", cur_audio, NULL);
+  }
+
+  return TRUE;
+}
+
+GST_START_TEST (test_raw_compressed_audio_stream_demuxer_switch_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-audio, " "stream1=(string)compressed-audio", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->n_raw > 0);
+    fail_unless (csink->n_compressed > 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_raw_audio_stream_demuxer_switch_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-audio, " "stream1=(string)raw-audio", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->n_raw > 0);
+    fail_unless (csink->n_compressed > 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_raw_audio_stream_demuxer_switch_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-audio, " "stream1=(string)raw-audio", TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless (csink->n_raw > 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST
+    (test_compressed_compressed_audio_stream_demuxer_switch_manual_sink) {
+  GstMessage *msg;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean done = FALSE;
+  GstPad *pad;
+  SwitchBufferProbeCtx switch_ctx;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)compressed-audio, " "stream1=(string)compressed-audio",
+      TRUE);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  pad = gst_element_get_static_pad (sink, "sink");
+  fail_unless (pad != NULL);
+  switch_ctx.playbin = playbin;
+  switch_ctx.sink = sink;
+  gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+      &switch_ctx);
+  gst_object_unref (pad);
+  gst_object_unref (sink);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_WARNING:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+        break;
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless (csink->n_compressed > 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+#endif
+#endif
+
+static Suite *
+playbin2_compressed_suite (void)
+{
+  Suite *s = suite_create ("playbin2-compressed");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+
+#ifndef GST_DISABLE_REGISTRY
+  tcase_add_test (tc_chain, test_raw_single_video_stream_manual_sink);
+  tcase_add_test (tc_chain, test_raw_single_audio_stream_manual_sink);
+  tcase_add_test (tc_chain, test_compressed_single_video_stream_manual_sink);
+  tcase_add_test (tc_chain, test_compressed_single_audio_stream_manual_sink);
+
+  tcase_add_test (tc_chain, test_raw_single_video_stream_demuxer_manual_sink);
+  tcase_add_test (tc_chain, test_raw_single_audio_stream_demuxer_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_single_video_stream_demuxer_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_single_audio_stream_demuxer_manual_sink);
+
+  tcase_add_test (tc_chain, test_raw_audio_video_stream_demuxer_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_audio_video_stream_demuxer_manual_sink);
+
+  tcase_add_test (tc_chain,
+      test_raw_compressed_audio_stream_demuxer_manual_sink);
+  tcase_add_test (tc_chain,
+      test_raw_compressed_video_stream_demuxer_manual_sink);
+
+  /* These tests need something like the stream-activate event
+   * and are racy otherwise */
+#if 0
+  tcase_add_test (tc_chain,
+      test_raw_raw_audio_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_raw_compressed_audio_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_raw_audio_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_compressed_audio_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_raw_raw_video_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_raw_compressed_video_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_raw_video_stream_demuxer_switch_manual_sink);
+  tcase_add_test (tc_chain,
+      test_compressed_compressed_video_stream_demuxer_switch_manual_sink);
+#endif
+#endif
+
+  return s;
+}
+
+GST_CHECK_MAIN (playbin2_compressed);
index aef9272..1049367 100644 (file)
@@ -571,8 +571,7 @@ gst_red_video_src_base_init (gpointer klass)
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_details_simple (element_class,
       "Red Video Src", "Source/Video", "yep", "me");
 }
@@ -683,8 +682,7 @@ gst_codec_src_base_init (gpointer klass)
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_details_simple (element_class,
       "Codec Src", "Source/Video", "yep", "me");
 }
index 3c970b2..34c2f55 100644 (file)
@@ -354,7 +354,7 @@ GST_START_TEST (test_video_passthrough)
   /* pushing gives away one of the two references we have ... */
   fail_unless (gst_pad_push (myvideosrcpad, inbuffer) == GST_FLOW_OK);
 
-  /* should have been discareded as out-of-segment since it has no timestamp */
+  /* should have been discarded as out-of-segment since it has no timestamp */
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   fail_unless_equals_int (g_list_length (buffers), 0);
 
index 69eb3c6..db6793c 100644 (file)
@@ -774,6 +774,276 @@ GST_START_TEST (test_selected_caps)
 
 GST_END_TEST;
 
+
+/* Caps negotiation tests */
+typedef struct
+{
+  const gchar *caps;
+  gboolean drop_only;
+  int max_rate;
+  /* Result of the videomaxrate caps after transforming */
+  const gchar *expected_sink_caps;
+  const gchar *expected_src_caps;
+} TestInfo;
+
+static TestInfo caps_negotiation_tests[] = {
+  {
+        .caps = "video/x-raw-yuv",
+        .drop_only = FALSE,
+        .expected_sink_caps = "video/x-raw-yuv",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+  {
+        .caps = "video/x-raw-yuv",
+        .drop_only = FALSE,
+        .max_rate = 15,
+        .expected_sink_caps = "video/x-raw-yuv",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+  {
+        .caps = "video/x-raw-yuv",
+        .drop_only = TRUE,
+        .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+  {
+        .caps = "video/x-raw-yuv",
+        .drop_only = TRUE,
+        .max_rate = 15,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 15];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+
+
+  {
+        .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+        .drop_only = FALSE,
+        .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+        .drop_only = FALSE,
+        .max_rate = 15,
+        .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+        .drop_only = TRUE,
+        .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+        .drop_only = TRUE,
+        .max_rate = 15,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 15];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=15/1",
+        .drop_only = FALSE,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=15/1",
+        .drop_only = FALSE,
+        .max_rate = 20,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=15/1",
+        .drop_only = TRUE,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+        "video/x-raw-yuv, framerate=(fraction)0/1",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 15/1]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=15/1",
+        .drop_only = TRUE,
+        .max_rate = 20,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+        "video/x-raw-yuv, framerate=(fraction)0/1",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 15/1];"},
+  {
+        .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+        .drop_only = FALSE,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];"},
+  {
+        .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+        .drop_only = FALSE,
+        .max_rate = 20,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 20/1];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1];"},
+  {
+        .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+        .drop_only = TRUE,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+        "video/x-raw-yuv, framerate=(fraction)0/1",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 30/1]"},
+  {
+        .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+        .drop_only = TRUE,
+        .max_rate = 20,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 20/1];"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+        "video/x-raw-yuv, framerate=(fraction)0/1",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)[15/1, 20/1];"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1]"},
+  {
+        .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+        .drop_only = FALSE,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+  {
+        .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+        .drop_only = FALSE,
+        .max_rate = 20,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1];"},
+  {
+        .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+        .drop_only = TRUE,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+        "video/x-raw-yuv, framerate=(fraction)0/1",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 30/1];"},
+  {
+        .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+        .drop_only = TRUE,
+        .max_rate = 20,
+        .expected_sink_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+        "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+        "video/x-raw-yuv, framerate=(fraction)0/1",
+      .expected_src_caps =
+        "video/x-raw-yuv, framerate=(fraction)15/1;"
+        "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1]"},
+};
+
+static GstCaps *
+_getcaps_function (GstPad * pad)
+{
+  GstCaps *caps = g_object_get_data (G_OBJECT (pad), "caps");
+
+  fail_unless (caps != NULL);
+
+  return gst_caps_copy (caps);
+}
+
+static void
+check_caps_identical (GstCaps * a, GstCaps * b, const char *name)
+{
+  int i;
+
+  if (gst_caps_get_size (a) != gst_caps_get_size (b))
+    goto fail;
+
+  for (i = 0; i < gst_caps_get_size (a); i++) {
+    GstStructure *sa, *sb;
+
+    sa = gst_caps_get_structure (a, i);
+    sb = gst_caps_get_structure (b, i);
+
+    if (!gst_structure_is_equal (sa, sb))
+      goto fail;
+  }
+
+  return;
+
+fail:
+  fail ("%s caps (%s) is not equal to caps (%s)",
+      name, gst_caps_to_string (a), gst_caps_to_string (b));
+}
+
+static void
+check_peer_caps (GstPad * pad, const char *expected, const char *name)
+{
+  GstCaps *caps;
+  GstCaps *expected_caps;
+
+  caps = gst_pad_peer_get_caps (pad);
+  fail_unless (caps != NULL);
+
+  expected_caps = gst_caps_from_string (expected);
+  fail_unless (expected_caps != NULL);
+
+  check_caps_identical (caps, expected_caps, name);
+
+  gst_caps_unref (caps);
+  gst_caps_unref (expected_caps);
+}
+
+GST_START_TEST (test_caps_negotiation)
+{
+  GstElement *videorate;
+  GstCaps *caps;
+  TestInfo *test = &caps_negotiation_tests[__i__];
+
+  videorate = setup_videorate_full (&srctemplate, &sinktemplate);
+
+  caps = gst_caps_from_string (test->caps);
+  g_object_set_data_full (G_OBJECT (mysrcpad), "caps",
+      gst_caps_ref (caps), (GDestroyNotify) gst_caps_unref);
+  g_object_set_data_full (G_OBJECT (mysinkpad), "caps",
+      gst_caps_ref (caps), (GDestroyNotify) gst_caps_unref);
+  gst_caps_unref (caps);
+
+  g_object_set (videorate, "drop-only", test->drop_only, NULL);
+  if (test->max_rate != 0)
+    g_object_set (videorate, "max-rate", test->max_rate, NULL);
+
+  gst_pad_set_getcaps_function (mysrcpad, _getcaps_function);
+  gst_pad_set_getcaps_function (mysinkpad, _getcaps_function);
+
+  check_peer_caps (mysrcpad, test->expected_sink_caps, "sink");
+  check_peer_caps (mysinkpad, test->expected_src_caps, "src");
+
+  gst_object_unref (videorate);
+}
+
+GST_END_TEST;
+
 static Suite *
 videorate_suite (void)
 {
@@ -790,6 +1060,8 @@ videorate_suite (void)
   tcase_add_test (tc_chain, test_non_ok_flow);
   tcase_add_test (tc_chain, test_upstream_caps_nego);
   tcase_add_test (tc_chain, test_selected_caps);
+  tcase_add_loop_test (tc_chain, test_caps_negotiation,
+      0, G_N_ELEMENTS (caps_negotiation_tests));
 
   return s;
 }
index 276261f..f297efc 100644 (file)
@@ -642,8 +642,8 @@ gst_test_reverse_negotiation_sink_base_init (gpointer g_class)
       "Test Reverse Negotiation Sink",
       "Sink",
       "Some test sink", "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sinktemplate);
 }
 
 static void
index d59a96f..3d2e146 100644 (file)
@@ -309,6 +309,53 @@ GST_START_TEST (test_double_s8)
 
 GST_END_TEST;
 
+GST_START_TEST (test_ten_s8)
+{
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstBuffer *outbuffer;
+  GstCaps *caps;
+  gint8 in[2] = { 64, -10 };
+  gint8 out[2] = { 127, -100 }; /* notice the clamped sample */
+  gint8 *res;
+
+  volume = setup_volume ();
+  g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (2);
+  memcpy (GST_BUFFER_DATA (inbuffer), in, 2);
+  fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 2) == 0);
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_caps_unref (caps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  /* FIXME: reffing the inbuffer should make the transformation not be
+   * inplace
+   gst_buffer_ref (inbuffer);
+   */
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being modified inplace and
+   * collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+  res = (gint8 *) GST_BUFFER_DATA (outbuffer);
+  GST_INFO ("expected %+5d %+5d  real %+5d %+5d", out[0], out[1], res[0],
+      res[1]);
+  fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, 2) == 0);
+
+  /* cleanup */
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_mute_s8)
 {
   GstElement *volume;
@@ -487,6 +534,53 @@ GST_START_TEST (test_double_s16)
 
 GST_END_TEST;
 
+GST_START_TEST (test_ten_s16)
+{
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstBuffer *outbuffer;
+  GstCaps *caps;
+  gint16 in[2] = { 16384, -10 };
+  gint16 out[2] = { 32767, -100 };      /* notice the clamped sample */
+  gint16 *res;
+
+  volume = setup_volume ();
+  g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (4);
+  memcpy (GST_BUFFER_DATA (inbuffer), in, 4);
+  fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 4) == 0);
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_caps_unref (caps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  /* FIXME: reffing the inbuffer should make the transformation not be
+   * inplace
+   gst_buffer_ref (inbuffer);
+   */
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being modified inplace and
+   * collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+  res = (gint16 *) GST_BUFFER_DATA (outbuffer);
+  GST_INFO ("expected %+5d %+5d  real %+5d %+5d", out[0], out[1], res[0],
+      res[1]);
+  fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, 4) == 0);
+
+  /* cleanup */
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
 
 GST_START_TEST (test_mute_s16)
 {
@@ -703,6 +797,61 @@ GST_START_TEST (test_double_s24)
 
 GST_END_TEST;
 
+GST_START_TEST (test_ten_s24)
+{
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstBuffer *outbuffer;
+  GstCaps *caps;
+  gint32 in_32[2] = { 4194304, -10 };
+  guint8 in[6];
+  guint8 *res;
+  gint32 res_32[2];
+  gint32 out_32[2] = { 8388607, -100 }; /* notice the clamped sample */
+
+  write_unaligned_u24 (in, in_32[0]);
+  write_unaligned_u24 (in + 3, in_32[1]);
+
+  volume = setup_volume ();
+  g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (6);
+  memcpy (GST_BUFFER_DATA (inbuffer), in, 6);
+  fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 6) == 0);
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_caps_unref (caps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  /* FIXME: reffing the inbuffer should make the transformation not be
+   * inplace
+   gst_buffer_ref (inbuffer);
+   */
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being modified inplace and
+   * collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+  res = GST_BUFFER_DATA (outbuffer);
+
+  res_32[0] = get_unaligned_i24 (res);
+  res_32[1] = get_unaligned_i24 ((res + 3));
+
+  GST_INFO ("expected %+5d %+5d  real %+5d %+5d", out_32[0], out_32[1],
+      res_32[0], res_32[1]);
+  fail_unless (memcmp (res_32, out_32, 8) == 0);
+
+  /* cleanup */
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
 
 GST_START_TEST (test_mute_s24)
 {
@@ -892,6 +1041,52 @@ GST_START_TEST (test_double_s32)
 
 GST_END_TEST;
 
+GST_START_TEST (test_ten_s32)
+{
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstBuffer *outbuffer;
+  GstCaps *caps;
+  gint32 in[2] = { 1073741824, -10 };
+  gint32 out[2] = { 2147483647, -100 }; /* notice the clamped sample */
+  gint32 *res;
+
+  volume = setup_volume ();
+  g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (8);
+  memcpy (GST_BUFFER_DATA (inbuffer), in, 8);
+  fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 8) == 0);
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_caps_unref (caps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  /* FIXME: reffing the inbuffer should make the transformation not be
+   * inplace
+   gst_buffer_ref (inbuffer);
+   */
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being modified inplace and
+   * collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+  res = (gint32 *) GST_BUFFER_DATA (outbuffer);
+  GST_INFO ("expected %+5d %+5d  real %+5d %+5d", out[0], out[1], res[0],
+      res[1]);
+  fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, 8) == 0);
+
+  /* cleanup */
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
 
 GST_START_TEST (test_mute_s32)
 {
@@ -1075,6 +1270,54 @@ GST_START_TEST (test_double_f32)
 
 GST_END_TEST;
 
+GST_START_TEST (test_ten_f32)
+{
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstBuffer *outbuffer;
+  GstCaps *caps;
+  gfloat in[2] = { 0.75, -0.25 };
+  gfloat out[2] = { 7.5, -2.5 };        /* nothing is clamped */
+  gfloat *res;
+
+  volume = setup_volume ();
+  g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (8);
+  memcpy (GST_BUFFER_DATA (inbuffer), in, 8);
+  fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 8) == 0);
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_caps_unref (caps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  /* FIXME: reffing the inbuffer should make the transformation not be
+   * inplace
+   gst_buffer_ref (inbuffer);
+   */
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being modified inplace and
+   * collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+  res = (gfloat *) GST_BUFFER_DATA (outbuffer);
+  GST_INFO ("expected %+1.4f %+1.4f  real %+1.4f %+1.4f", out[0], out[1],
+      res[0], res[1]);
+  fail_unless_equals_float (res[0], out[0]);
+  fail_unless_equals_float (res[1], out[1]);
+
+  /* cleanup */
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
 
 GST_START_TEST (test_mute_f32)
 {
@@ -1259,6 +1502,54 @@ GST_START_TEST (test_double_f64)
 
 GST_END_TEST;
 
+GST_START_TEST (test_ten_f64)
+{
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstBuffer *outbuffer;
+  GstCaps *caps;
+  gdouble in[2] = { 0.75, -0.25 };
+  gdouble out[2] = { 7.5, -2.5 };       /* nothing is clamped */
+  gdouble *res;
+
+  volume = setup_volume ();
+  g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  inbuffer = gst_buffer_new_and_alloc (16);
+  memcpy (GST_BUFFER_DATA (inbuffer), in, 16);
+  fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 16) == 0);
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
+  gst_buffer_set_caps (inbuffer, caps);
+  gst_caps_unref (caps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  /* FIXME: reffing the inbuffer should make the transformation not be
+   * inplace
+   gst_buffer_ref (inbuffer);
+   */
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  /* ... but it ends up being modified inplace and
+   * collected on the global buffer list */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+  res = (gdouble *) GST_BUFFER_DATA (outbuffer);
+  GST_INFO ("expected %+1.4f %+1.4f  real %+1.4f %+1.4f", out[0], out[1],
+      res[0], res[1]);
+  fail_unless_equals_float (res[0], out[0]);
+  fail_unless_equals_float (res[1], out[1]);
+
+  /* cleanup */
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
 
 GST_START_TEST (test_mute_f64)
 {
@@ -1493,26 +1784,32 @@ volume_suite (void)
   tcase_add_test (tc_chain, test_unity_s8);
   tcase_add_test (tc_chain, test_half_s8);
   tcase_add_test (tc_chain, test_double_s8);
+  tcase_add_test (tc_chain, test_ten_s8);
   tcase_add_test (tc_chain, test_mute_s8);
   tcase_add_test (tc_chain, test_unity_s16);
   tcase_add_test (tc_chain, test_half_s16);
   tcase_add_test (tc_chain, test_double_s16);
+  tcase_add_test (tc_chain, test_ten_s16);
   tcase_add_test (tc_chain, test_mute_s16);
   tcase_add_test (tc_chain, test_unity_s24);
   tcase_add_test (tc_chain, test_half_s24);
   tcase_add_test (tc_chain, test_double_s24);
+  tcase_add_test (tc_chain, test_ten_s24);
   tcase_add_test (tc_chain, test_mute_s24);
   tcase_add_test (tc_chain, test_unity_s32);
   tcase_add_test (tc_chain, test_half_s32);
   tcase_add_test (tc_chain, test_double_s32);
+  tcase_add_test (tc_chain, test_ten_s32);
   tcase_add_test (tc_chain, test_mute_s32);
   tcase_add_test (tc_chain, test_unity_f32);
   tcase_add_test (tc_chain, test_half_f32);
   tcase_add_test (tc_chain, test_double_f32);
+  tcase_add_test (tc_chain, test_ten_f32);
   tcase_add_test (tc_chain, test_mute_f32);
   tcase_add_test (tc_chain, test_unity_f64);
   tcase_add_test (tc_chain, test_half_f64);
   tcase_add_test (tc_chain, test_double_f64);
+  tcase_add_test (tc_chain, test_ten_f64);
   tcase_add_test (tc_chain, test_mute_f64);
   tcase_add_test (tc_chain, test_wrong_caps);
   tcase_add_test (tc_chain, test_passthrough);
index 29e3cd5..8a9281a 100644 (file)
@@ -94,42 +94,6 @@ cleanup_vorbisdec (GstElement * vorbisdec)
   gst_check_teardown_element (vorbisdec);
 }
 
-GST_START_TEST (test_empty_identification_header)
-{
-  GstElement *vorbisdec;
-  GstBuffer *inbuffer;
-  GstBus *bus;
-  GstMessage *message;
-
-  vorbisdec = setup_vorbisdec ();
-  bus = gst_bus_new ();
-
-  fail_unless (gst_element_set_state (vorbisdec,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
-
-  inbuffer = gst_buffer_new_and_alloc (0);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
-  /* set a bus here so we avoid getting state change messages */
-  gst_element_set_bus (vorbisdec, bus);
-
-  fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), GST_FLOW_ERROR);
-  /* ... but it ends up being collected on the global buffer list */
-  fail_unless_equals_int (g_list_length (buffers), 0);
-
-  fail_if ((message = gst_bus_pop (bus)) == NULL);
-  fail_unless_message_error (message, STREAM, DECODE);
-  gst_message_unref (message);
-  gst_element_set_bus (vorbisdec, NULL);
-
-  /* cleanup */
-  gst_object_unref (GST_OBJECT (bus));
-  cleanup_vorbisdec (vorbisdec);
-}
-
-GST_END_TEST;
-
 /* FIXME: also tests comment header */
 GST_START_TEST (test_identification_header)
 {
@@ -329,7 +293,6 @@ vorbisdec_suite (void)
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
-  tcase_add_test (tc_chain, test_empty_identification_header);
   tcase_add_test (tc_chain, test_identification_header);
   tcase_add_test (tc_chain, test_empty_vorbis_packet);
 
index 4b20d6d..bb05236 100644 (file)
@@ -192,7 +192,7 @@ _create_audio_buffer (void)
 {
   GstBuffer *buffer;
   ogg_packet packet;
-  float **vorbis_buffer;
+  float **vorbis_buffer G_GNUC_UNUSED;
 
   vorbis_buffer = vorbis_analysis_buffer (&vd, 0);
   vorbis_analysis_wrote (&vd, 0);
index 0d0705d..718b63d 100644 (file)
    obj:/usr/lib/libfontconfig.so.*
    fun:FcFontRenderPrepare
 }
+# ALSA leaks which are fixed by calling snd_config_update_free_global
+{
+   <ALSA cached config data>
+   Memcheck:Leak
+   fun:malloc
+   fun:strdup
+   obj:/usr/lib/libasound.so.2.0.0
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:gst_alsa_get_device_list
+   fun:gst_alsa_device_property_probe_get_values
+   fun:gst_property_probe_get_values
+   fun:gst_property_probe_probe_and_get_values
+   fun:gst_property_probe_probe_and_get_values_name
+   fun:test_device_property_probe
+   fun:srunner_run_all
+   fun:gst_check_run_suite
+   fun:main
+}
+{
+   <ALSA cached config data>
+   Memcheck:Leak
+   fun:malloc
+   obj:/usr/lib/libasound.so.2.0.0
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:gst_alsa_get_device_list
+   fun:gst_alsa_device_property_probe_get_values
+   fun:gst_property_probe_get_values
+   fun:gst_property_probe_probe_and_get_values
+   fun:gst_property_probe_probe_and_get_values_name
+   fun:test_device_property_probe
+   fun:srunner_run_all
+   fun:gst_check_run_suite
+   fun:main
+}
+{
+   <ALSA cached config data>
+   Memcheck:Leak
+   fun:malloc
+   fun:_dl_close_worker
+   fun:_dl_close
+   fun:_dl_catch_error
+   fun:_dlerror_run
+   fun:dlclose
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_config_searcha_hooks
+   fun:snd_config_searchva_hooks
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_config_search_definition
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:gst_alsa_get_device_list
+   fun:gst_alsa_device_property_probe_get_values
+   fun:gst_property_probe_get_values
+   fun:gst_property_probe_probe_and_get_values
+   fun:gst_property_probe_probe_and_get_values_name
+   fun:test_device_property_probe
+   fun:srunner_run_all
+   fun:gst_check_run_suite
+}
+{
+   <ALSA cached config data>
+   Memcheck:Leak
+   fun:malloc
+   fun:strdup
+   obj:/usr/lib/libasound.so.2.0.0
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_hctl_open
+   fun:snd_mixer_attach
+   fun:gst_alsa_mixer_open
+   fun:gst_alsa_mixer_new
+   fun:gst_alsa_mixer_element_change_state
+   fun:gst_element_change_state
+   fun:gst_element_set_state_func
+   fun:test_alsa_mixer_track
+   fun:srunner_run_all
+   fun:gst_check_run_suite
+   fun:main
+}
+{
+   <ALSA cached config data>
+   Memcheck:Leak
+   fun:malloc
+   fun:strdup
+   obj:/usr/lib/libasound.so.2.0.0
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_hctl_open
+   fun:snd_mixer_attach
+   fun:gst_alsa_mixer_open
+   fun:gst_alsa_mixer_new
+   fun:gst_alsa_mixer_element_change_state
+   fun:gst_element_change_state
+   fun:gst_element_set_state_func
+   fun:test_alsa_mixer_track
+   fun:srunner_run_all
+   fun:gst_check_run_suite
+   fun:main
+}
+{
+   <ALSA cached config data>
+   Memcheck:Leak
+   fun:malloc
+   fun:_dl_close_worker
+   fun:_dl_close
+   fun:_dl_catch_error
+   fun:_dlerror_run
+   fun:dlclose
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_config_searcha_hooks
+   fun:snd_config_searchva_hooks
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_config_search_definition
+   obj:/usr/lib/libasound.so.2.0.0
+   fun:snd_hctl_open
+   fun:snd_mixer_attach
+   fun:gst_alsa_mixer_open
+   fun:gst_alsa_mixer_new
+   fun:gst_alsa_mixer_element_change_state
+   fun:gst_element_change_state
+   fun:gst_element_set_state_func
+   fun:test_alsa_mixer_track
+}
index e2111ba..2bce3a1 100644 (file)
 #include "struct_x86_64.h"
 #define HAVE_ABI_SIZES TRUE
 #else
+#ifdef HAVE_CPU_ARM
+#include "struct_arm.h"
+#define HAVE_ABI_SIZES TRUE
+#else
 /* in case someone wants to generate a new arch */
 #include "struct_i386.h"
 #define HAVE_ABI_SIZES FALSE
 #endif
 #endif
+#endif
 
 GST_START_TEST (test_ABI)
 {
index e3928d1..1f143a3 100644 (file)
@@ -54,7 +54,6 @@ struct TestElementClass
 GType test_element_get_type (void);
 
 static void init_interface (GType type);
-static void gst_implements_interface_init (GstImplementsInterfaceClass * klass);
 static void nav_send_event (GstNavigation * navigation,
     GstStructure * structure);
 
@@ -75,14 +74,7 @@ init_interface (GType type)
     NULL,
     NULL,
   };
-  static const GInterfaceInfo implements_iface_info = {
-    (GInterfaceInitFunc) gst_implements_interface_init,
-    NULL,
-    NULL,
-  };
 
-  g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE,
-      &implements_iface_info);
   g_type_add_interface_static (type, GST_TYPE_NAVIGATION,
       &navigation_iface_info);
 }
@@ -97,22 +89,6 @@ test_element_class_init (TestElementClass * klass)
 {
 }
 
-static gboolean
-test_element_interface_supported (GstImplementsInterface * ifacE,
-    GType interface_type)
-{
-  if (interface_type == GST_TYPE_NAVIGATION)
-    return TRUE;
-
-  return FALSE;
-}
-
-static void
-gst_implements_interface_init (GstImplementsInterfaceClass * klass)
-{
-  klass->supported = test_element_interface_supported;
-}
-
 static void
 test_element_init (TestElement * this, TestElementClass * klass)
 {
index 285a58e..c000208 100644 (file)
@@ -137,6 +137,8 @@ GST_START_TEST (test_target_naming)
 {
   GstEncodingTarget *target;
 
+  gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
   /* NULL values */
   ASSERT_CRITICAL (target = gst_encoding_target_new (NULL, NULL, NULL, NULL));
   fail_if (target != NULL);
@@ -398,6 +400,8 @@ GST_START_TEST (test_loading_profile)
   GValue strvalue = { 0, };
   GValue miniobjectvalue = { 0, };
 
+  gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
   /* Test loading using short method and all arguments */
   target = gst_encoding_target_load ("myponytarget", "herding", NULL);
   fail_unless (target != NULL);
index defd6b6..68c4535 100644 (file)
@@ -635,12 +635,10 @@ GST_START_TEST (test_rtcp_buffer)
 {
   GstBuffer *buf;
   GstRTCPPacket packet;
-  guint8 *data;
 
   buf = gst_rtcp_buffer_new (1400);
   fail_unless (buf != NULL);
   fail_unless_equals_int (GST_BUFFER_SIZE (buf), 1400);
-  data = GST_BUFFER_DATA (buf);
 
   fail_unless (gst_rtcp_buffer_get_first_packet (buf, &packet) == FALSE);
   fail_unless (gst_rtcp_buffer_get_packet_count (buf) == 0);
diff --git a/tests/check/libs/struct_arm.h b/tests/check/libs/struct_arm.h
new file mode 100644 (file)
index 0000000..1d90bdc
--- /dev/null
@@ -0,0 +1,100 @@
+
+GstCheckABIStruct list[] = {
+  {"GstAppBufferClass", sizeof (GstAppBufferClass), 16},
+  {"GstAppBuffer", sizeof (GstAppBuffer), 96},
+  {"GstAppSinkCallbacks", sizeof (GstAppSinkCallbacks), 28},
+  {"GstAppSinkClass", sizeof (GstAppSinkClass), 404},
+  {"GstAppSink", sizeof (GstAppSink), 432},
+  {"GstAppSrcCallbacks", sizeof (GstAppSrcCallbacks), 28},
+  {"GstAppSrcClass", sizeof (GstAppSrcClass), 412},
+  {"GstAppSrc", sizeof (GstAppSrc), 416},
+  {"GstAudioClockClass", sizeof (GstAudioClockClass), 192},
+  {"GstAudioClock", sizeof (GstAudioClock), 232},
+  {"GstAudioFilterClass", sizeof (GstAudioFilterClass), 396},
+  {"GstAudioFilter", sizeof (GstAudioFilter), 504},
+  {"GstAudioSinkClass", sizeof (GstAudioSinkClass), 432},
+  {"GstAudioSink", sizeof (GstAudioSink), 488},
+  {"GstAudioSrcClass", sizeof (GstAudioSrcClass), 460},
+  {"GstAudioSrc", sizeof (GstAudioSrc), 488},
+  {"GstBaseAudioSinkClass", sizeof (GstBaseAudioSinkClass), 388},
+  {"GstBaseAudioSink", sizeof (GstBaseAudioSink), 464},
+  {"GstBaseAudioSrcClass", sizeof (GstBaseAudioSrcClass), 416},
+  {"GstBaseAudioSrc", sizeof (GstBaseAudioSrc), 464},
+  {"GstBaseRTPAudioPayloadClass", sizeof (GstBaseRTPAudioPayloadClass), 288},
+  {"GstBaseRTPAudioPayload", sizeof (GstBaseRTPAudioPayload), 384},
+  {"GstBaseRTPDepayloadClass", sizeof (GstBaseRTPDepayloadClass), 280},
+  {"GstBaseRTPDepayload", sizeof (GstBaseRTPDepayload), 328},
+  {"GstBaseRTPPayloadClass", sizeof (GstBaseRTPPayloadClass), 272},
+  {"GstBaseRTPPayload", sizeof (GstBaseRTPPayload), 336},
+  {"GstCddaBaseSrcClass", sizeof (GstCddaBaseSrcClass), 432},
+  {"GstCddaBaseSrc", sizeof (GstCddaBaseSrc), 528},
+  {"GstCddaBaseSrcTrack", sizeof (GstCddaBaseSrcTrack), 36},
+  {"GstColorBalanceChannelClass", sizeof (GstColorBalanceChannelClass), 88},
+  {"GstColorBalanceChannel", sizeof (GstColorBalanceChannel), 24},
+  {"GstColorBalanceClass", sizeof (GstColorBalanceClass), 44},
+  {"GstDiscovererClass", sizeof (GstDiscovererClass), 96},
+  {"GstDiscoverer", sizeof (GstDiscoverer), 32},
+  {"GstFFTF32Complex", sizeof (GstFFTF32Complex), 8},
+  {"GstFFTF32", sizeof (GstFFTF32), 28},
+  {"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
+  {"GstFFTF64", sizeof (GstFFTF64), 28},
+  {"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
+  {"GstFFTS16", sizeof (GstFFTS16), 28},
+  {"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
+  {"GstFFTS32", sizeof (GstFFTS32), 28},
+  {"GstMixerClass", sizeof (GstMixerClass), 72},
+  {"GstMixerOptionsClass", sizeof (GstMixerOptionsClass), 100},
+  {"GstMixerOptions", sizeof (GstMixerOptions), 52},
+  {"GstMixerTrackClass", sizeof (GstMixerTrackClass), 84},
+  {"GstMixerTrack", sizeof (GstMixerTrack), 32},
+  {"GstNavigationInterface", sizeof (GstNavigationInterface), 28},
+  {"GstNetAddress", sizeof (GstNetAddress), 40},
+  {"GstNetBufferClass", sizeof (GstNetBufferClass), 32},
+  {"GstNetBuffer", sizeof (GstNetBuffer), 184},
+  {"GstPropertyProbeInterface", sizeof (GstPropertyProbeInterface), 44},
+  {"gst_riff_acid", sizeof (gst_riff_acid), 24},
+  {"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
+  {"gst_riff_index_entry", sizeof (gst_riff_index_entry), 16},
+  {"gst_riff_strf_auds", sizeof (gst_riff_strf_auds), 16},
+  {"gst_riff_strf_iavs", sizeof (gst_riff_strf_iavs), 32},
+  {"gst_riff_strf_vids", sizeof (gst_riff_strf_vids), 40},
+  {"gst_riff_strh", sizeof (gst_riff_strh), 48},
+  {"GstRingBufferClass", sizeof (GstRingBufferClass), 172},
+  {"GstRingBuffer", sizeof (GstRingBuffer), 232},
+  {"GstRingBufferSpec", sizeof (GstRingBufferSpec), 120},
+  {"GstRTCPPacket", sizeof (GstRTCPPacket), 36},
+  {"GstRTPPayloadInfo", sizeof (GstRTPPayloadInfo), 24},
+  {"GstRTSPExtensionInterface", sizeof (GstRTSPExtensionInterface), 60},
+  {"GstRTSPMessage", sizeof (GstRTSPMessage), 28},
+  {"GstRTSPRange", sizeof (GstRTSPRange), 8},
+  {"GstRTSPTime", sizeof (GstRTSPTime), 16},
+  {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 40},
+  {"GstRTSPTransport", sizeof (GstRTSPTransport), 76},
+  {"GstRTSPUrl", sizeof (GstRTSPUrl), 32},
+  {"GstRTSPWatchFuncs", sizeof (GstRTSPWatchFuncs), 40},
+  {"GstSDPAttribute", sizeof (GstSDPAttribute), 8},
+  {"GstSDPBandwidth", sizeof (GstSDPBandwidth), 8},
+  {"GstSDPConnection", sizeof (GstSDPConnection), 20},
+  {"GstSDPKey", sizeof (GstSDPKey), 8},
+  {"GstSDPMedia", sizeof (GstSDPMedia), 44},
+  {"GstSDPMessage", sizeof (GstSDPMessage), 96},
+  {"GstSDPOrigin", sizeof (GstSDPOrigin), 24},
+  {"GstSDPTime", sizeof (GstSDPTime), 12},
+  {"GstSDPZone", sizeof (GstSDPZone), 8},
+  {"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 24},
+  {"GstTagDemuxClass", sizeof (GstTagDemuxClass), 284},
+  {"GstTagDemux", sizeof (GstTagDemux), 160},
+  {"GstTunerChannelClass", sizeof (GstTunerChannelClass), 92},
+  {"GstTunerChannel", sizeof (GstTunerChannel), 40},
+  {"GstTunerClass", sizeof (GstTunerClass), 76},
+  {"GstTunerNormClass", sizeof (GstTunerNormClass), 84},
+  {"GstTunerNorm", sizeof (GstTunerNorm), 40},
+  {"GstVideoFilterClass", sizeof (GstVideoFilterClass), 376},
+  {"GstVideoFilter", sizeof (GstVideoFilter), 376},
+  {"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 56},
+  {"GstVideoRectangle", sizeof (GstVideoRectangle), 16},
+  {"GstVideoSinkClass", sizeof (GstVideoSinkClass), 384},
+  {"GstVideoSink", sizeof (GstVideoSink), 432},
+  {"GstXOverlayClass", sizeof (GstXOverlayClass), 32},
+  {NULL, 0, 0}
+};
index c963ce5..634cc3f 100644 (file)
@@ -2,7 +2,7 @@
  *
  * unit tests for the tag support library
  *
- * Copyright (C) 2006-2009 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2006-2011 Tim-Philipp Müller <tim centricular net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -29,6 +29,7 @@
 #include <gst/tag/tag.h>
 #include <gst/base/gstbytewriter.h>
 #include <string.h>
+#include <locale.h>
 
 GST_START_TEST (test_parse_extended_comment)
 {
@@ -577,6 +578,7 @@ GST_START_TEST (test_id3_tags)
     const gchar *genre;
 
     genre = gst_tag_id3_genre_get (i);
+    GST_LOG ("genre: %s", genre);
     fail_unless (genre != NULL);
   }
 
@@ -750,6 +752,192 @@ GST_START_TEST (test_language_utils)
 
 GST_END_TEST;
 
+#define SPECIFIC_L "http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/"
+#define GENERIC_L "http://creativecommons.org/licenses/by/1.0/"
+#define DERIVED_L "http://creativecommons.org/licenses/sampling+/1.0/tw/"
+
+GST_START_TEST (test_license_utils)
+{
+  GHashTable *ht;
+  GError *err = NULL;
+  gchar **liblicense_refs, **r;
+  gchar **lrefs, **l;
+  gchar *path, *data = NULL;
+  gsize data_len;
+
+  gst_debug_set_threshold_for_name ("tag-licenses", GST_LEVEL_NONE);
+
+  /* test jurisdiction-specific license */
+  fail_unless_equals_int (gst_tag_get_license_flags (SPECIFIC_L), 0x01010703);
+  fail_unless_equals_string (gst_tag_get_license_nick (SPECIFIC_L),
+      "CC BY-NC-SA 2.5 SCOTLAND");
+  fail_unless_equals_string (gst_tag_get_license_version (SPECIFIC_L), "2.5");
+  fail_unless_equals_string (gst_tag_get_license_jurisdiction (SPECIFIC_L),
+      "scotland");
+
+  g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "C", TRUE);
+  fail_unless_equals_string (gst_tag_get_license_title (SPECIFIC_L),
+      "Attribution-NonCommercial-ShareAlike");
+  fail_unless (gst_tag_get_license_description (SPECIFIC_L) == NULL);
+
+  /* test generic license */
+  fail_unless_equals_int (gst_tag_get_license_flags (GENERIC_L), 0x01000307);
+  fail_unless_equals_string (gst_tag_get_license_nick (GENERIC_L), "CC BY 1.0");
+  fail_unless_equals_string (gst_tag_get_license_version (GENERIC_L), "1.0");
+  fail_unless (gst_tag_get_license_jurisdiction (GENERIC_L) == NULL);
+
+  g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "C", TRUE);
+  fail_unless_equals_string (gst_tag_get_license_title (GENERIC_L),
+      "Attribution");
+  fail_unless_equals_string (gst_tag_get_license_description (GENERIC_L),
+      "You must attribute the work in the manner specified by the author or licensor.");
+
+#ifdef ENABLE_NLS
+  g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "fr", TRUE);
+  fail_unless_equals_string (gst_tag_get_license_title (GENERIC_L),
+      "Paternité");
+  fail_unless_equals_string (gst_tag_get_license_description (GENERIC_L),
+      "L'offrant autorise les autres à reproduire, distribuer et communiquer cette création au public. En échange, les personnes qui acceptent ce contrat doivent citer le nom de l'auteur original.");
+#endif
+
+  /* test derived (for a certain jurisdiction) license */
+  fail_unless_equals_int (gst_tag_get_license_flags (DERIVED_L), 0x0100030d);
+  fail_unless_equals_string (gst_tag_get_license_nick (DERIVED_L),
+      "CC SAMPLING+ 1.0 TW");
+  fail_unless_equals_string (gst_tag_get_license_version (DERIVED_L), "1.0");
+  fail_unless_equals_string (gst_tag_get_license_jurisdiction (DERIVED_L),
+      "tw");
+
+  g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "C", TRUE);
+  fail_unless_equals_string (gst_tag_get_license_title (DERIVED_L),
+      "Sampling Plus");
+  fail_unless_equals_string (gst_tag_get_license_description (GENERIC_L),
+      "You must attribute the work in the manner specified by the author or licensor.");
+
+  /* test all we know about */
+  lrefs = gst_tag_get_licenses ();
+  fail_unless (lrefs != NULL);
+  fail_unless (*lrefs != NULL);
+
+  GST_INFO ("%d licenses", g_strv_length (lrefs));
+  fail_unless (g_strv_length (lrefs) >= 376);
+
+  ht = g_hash_table_new (g_str_hash, g_str_equal);
+
+  for (l = lrefs; l != NULL && *l != NULL; ++l) {
+    const gchar *ref, *nick, *title, *desc G_GNUC_UNUSED;
+
+    ref = (const gchar *) *l;
+    nick = gst_tag_get_license_nick (ref);
+    title = gst_tag_get_license_title (ref);
+    desc = gst_tag_get_license_description (ref);
+    fail_unless (nick != NULL, "no nick for license '%s'", ref);
+    fail_unless (title != NULL, "no title for license '%s'", ref);
+    GST_LOG ("ref: %s [nick %s]", ref, (nick) ? nick : "none");
+    GST_TRACE ("    %s : %s", title, (desc) ? desc : "(no description)");
+
+    /* make sure the list contains no duplicates */
+    fail_if (g_hash_table_lookup (ht, (gpointer) ref) != NULL);
+    g_hash_table_insert (ht, (gpointer) ref, (gpointer) "meep");
+  }
+  g_hash_table_destroy (ht);
+
+  /* trailing slash shouldn't make a difference */
+  fail_unless_equals_int (gst_tag_get_license_flags
+      ("http://creativecommons.org/licenses/by-nd/1.0/"),
+      gst_tag_get_license_flags
+      ("http://creativecommons.org/licenses/by-nd/1.0"));
+  fail_unless_equals_string (gst_tag_get_license_nick
+      ("http://creativecommons.org/licenses/by-nd/1.0/"),
+      gst_tag_get_license_nick
+      ("http://creativecommons.org/licenses/by-nd/1.0"));
+  fail_unless_equals_int (gst_tag_get_license_flags
+      ("http://creativecommons.org/licenses/by-nd/2.5/ca/"),
+      gst_tag_get_license_flags
+      ("http://creativecommons.org/licenses/by-nd/2.5/ca"));
+  fail_unless_equals_string (gst_tag_get_license_nick
+      ("http://creativecommons.org/licenses/by-nd/2.5/ca/"),
+      gst_tag_get_license_nick
+      ("http://creativecommons.org/licenses/by-nd/2.5/ca"));
+
+  /* unknown licenses */
+  fail_unless (gst_tag_get_license_nick
+      ("http://creativecommons.org/licenses/by-nd/25/ca/") == NULL);
+  fail_unless (gst_tag_get_license_flags
+      ("http://creativecommons.org/licenses/by-nd/25/ca") == 0);
+  fail_unless (gst_tag_get_license_jurisdiction
+      ("http://creativecommons.org/licenses/by-nd/25/ca/") == NULL);
+  fail_unless (gst_tag_get_license_jurisdiction
+      ("http://creativecommons.org/licenses/by-nd/25/ca") == NULL);
+  fail_unless (gst_tag_get_license_title
+      ("http://creativecommons.org/licenses/by-nd/25/ca") == NULL);
+  fail_unless (gst_tag_get_license_jurisdiction
+      ("http://creativecommons.org/licenses/by-nd/25/ca") == NULL);
+
+  /* unknown prefixes even */
+  fail_unless (gst_tag_get_license_nick
+      ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+  fail_unless (gst_tag_get_license_flags
+      ("http://copycats.org/licenses/by-nd/2.5/ca") == 0);
+  fail_unless (gst_tag_get_license_jurisdiction
+      ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+  fail_unless (gst_tag_get_license_title
+      ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+  fail_unless (gst_tag_get_license_description
+      ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+
+  /* read list of liblicense refs from file */
+  path = g_build_filename (GST_TEST_FILES_PATH, "license-uris", NULL);
+  GST_LOG ("reading file '%s'", path);
+  if (!g_file_get_contents (path, &data, &data_len, &err)) {
+    g_error ("error loading test file: %s", err->message);
+  }
+
+  while (data_len > 0 && data[data_len - 1] == '\n') {
+    data[--data_len] = '\0';
+  }
+
+  liblicense_refs = g_strsplit (data, "\n", -1);
+  g_free (data);
+  g_free (path);
+
+  fail_unless (g_strv_length (lrefs) >= g_strv_length (liblicense_refs));
+
+  for (r = liblicense_refs; r != NULL && *r != NULL; ++r) {
+    GstTagLicenseFlags flags;
+    const gchar *version, *nick, *jur;
+    const gchar *ref = *r;
+
+    GST_LOG ("liblicense ref: %s", ref);
+
+    version = gst_tag_get_license_version (ref);
+    if (strstr (ref, "publicdomain") != NULL)
+      fail_unless (version == NULL);
+    else
+      fail_unless (version != NULL, "expected version for license %s", ref);
+
+    flags = gst_tag_get_license_flags (ref);
+    fail_unless (flags != 0, "expected non-zero flags for license %s", ref);
+
+    nick = gst_tag_get_license_nick (ref);
+    fail_unless (nick != NULL, "expected nick for license %s", ref);
+
+    jur = gst_tag_get_license_jurisdiction (ref);
+    if (g_str_has_suffix (ref, "de/")) {
+      fail_unless_equals_string (jur, "de");
+    } else if (g_str_has_suffix (ref, "scotland")) {
+      fail_unless_equals_string (jur, "scotland");
+    } else if (g_str_has_suffix (ref, ".0") || g_str_has_suffix (ref, ".1")) {
+      fail_unless (jur == NULL);
+    }
+  }
+
+  g_strfreev (liblicense_refs);
+  g_strfreev (lrefs);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_xmp_formatting)
 {
   GstTagList *list;
@@ -787,14 +975,21 @@ GST_START_TEST (test_xmp_parsing)
 {
   GstTagList *list;
   GstBuffer *buf;
-  guint i, result_size;
+  guint i, j, result_size;
   gchar *text;
   const gchar *xmp_header =
       "<?xpacket begin=\"\xEF\xBB\xBF\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>"
       "<x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"GStreamer\">"
       "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">";
-  const gchar *xmp_footer =
-      "</rdf:RDF>" "</x:xmpmeta>" "<?xpacket end=\"r\"?>\n";
+
+  /* We used to write an extra trailing \n after the footer, keep compatibility
+   * with our old generated media by checking that it still can be parsed */
+  const gchar *xmp_footers[] = {
+    "</rdf:RDF>" "</x:xmpmeta>" "<?xpacket end=\"r\"?>",
+    "</rdf:RDF>" "</x:xmpmeta>" "<?xpacket end=\"r\"?>\n",
+    NULL
+  };
+
   struct
   {
     const gchar *xmp_data;
@@ -816,36 +1011,40 @@ GST_START_TEST (test_xmp_parsing)
   /* test data */
   buf = gst_buffer_new ();
 
+  j = 0;
   i = 0;
-  while (test_data[i].xmp_data) {
-    GST_DEBUG ("trying test-data %u", i);
-
-    text = g_strconcat (xmp_header, test_data[i].xmp_data, xmp_footer, NULL);
-    GST_BUFFER_DATA (buf) = (guint8 *) text;
-    GST_BUFFER_SIZE (buf) = strlen (text) + 1;
-
-
-    list = gst_tag_list_from_xmp_buffer (buf);
-    if (test_data[i].result_size >= 0) {
-      fail_unless (list != NULL);
-
-      result_size = gst_structure_n_fields ((GstStructure *) list);
-      fail_unless (result_size == test_data[i].result_size);
-
-      /* check the taglist content */
-      switch (test_data[i].result_test) {
-        case 0:
-          ASSERT_TAG_LIST_HAS_STRING (list, "description", "test");
-          break;
-        default:
-          break;
+  while (xmp_footers[j]) {
+    while (test_data[i].xmp_data) {
+      GST_DEBUG ("trying test-data %u", i);
+
+      text =
+          g_strconcat (xmp_header, test_data[i].xmp_data, xmp_footers[j], NULL);
+      GST_BUFFER_DATA (buf) = (guint8 *) text;
+      GST_BUFFER_SIZE (buf) = strlen (text) + 1;
+
+      list = gst_tag_list_from_xmp_buffer (buf);
+      if (test_data[i].result_size >= 0) {
+        fail_unless (list != NULL);
+
+        result_size = gst_structure_n_fields ((GstStructure *) list);
+        fail_unless (result_size == test_data[i].result_size);
+
+        /* check the taglist content */
+        switch (test_data[i].result_test) {
+          case 0:
+            ASSERT_TAG_LIST_HAS_STRING (list, "description", "test");
+            break;
+          default:
+            break;
+        }
       }
-    }
-    if (list)
-      gst_tag_list_free (list);
+      if (list)
+        gst_tag_list_free (list);
 
-    g_free (text);
-    i++;
+      g_free (text);
+      i++;
+    }
+    j++;
   }
 
   gst_buffer_unref (buf);
@@ -913,12 +1112,13 @@ tag_list_equals (GstTagList * taglist, GstTagList * taglist2)
 }
 
 static void
-do_xmp_tag_serialization_deserialization (GstTagList * taglist)
+do_xmp_tag_serialization_deserialization (GstTagList * taglist,
+    const gchar ** schemas)
 {
   GstTagList *taglist2;
   GstBuffer *buf;
 
-  buf = gst_tag_list_to_xmp_buffer (taglist, TRUE);
+  buf = gst_tag_list_to_xmp_buffer_full (taglist, TRUE, schemas);
   taglist2 = gst_tag_list_from_xmp_buffer (buf);
 
   tag_list_equals (taglist, taglist2);
@@ -935,7 +1135,7 @@ do_simple_xmp_tag_serialization_deserialization (const gchar * gsttag,
 
   gst_tag_list_add_value (taglist, GST_TAG_MERGE_REPLACE, gsttag, value);
 
-  do_xmp_tag_serialization_deserialization (taglist);
+  do_xmp_tag_serialization_deserialization (taglist, NULL);
   gst_tag_list_free (taglist);
 }
 
@@ -1122,13 +1322,19 @@ GST_END_TEST;
 
 GST_START_TEST (test_xmp_compound_tags)
 {
+  const gchar *schemas[] = { "Iptc4xmpExt", NULL };
   GstTagList *taglist = gst_tag_list_new ();
 
   gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_KEYWORDS, "k1",
       GST_TAG_KEYWORDS, "k2", GST_TAG_TITLE, "title", GST_TAG_KEYWORDS, "k3",
       NULL);
+  do_xmp_tag_serialization_deserialization (taglist, NULL);
+  gst_tag_list_free (taglist);
 
-  do_xmp_tag_serialization_deserialization (taglist);
+  taglist = gst_tag_list_new ();
+  gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_GEO_LOCATION_COUNTRY,
+      "Brazil", GST_TAG_GEO_LOCATION_CITY, "Campina Grande", NULL);
+  do_xmp_tag_serialization_deserialization (taglist, schemas);
   gst_tag_list_free (taglist);
 }
 
@@ -1186,6 +1392,7 @@ do_exif_tag_serialization_deserialization (GstTagList * taglist)
 
   /* LE */
   buf = gst_tag_list_to_exif_buffer (taglist, G_LITTLE_ENDIAN, 0);
+  GST_MEMDUMP ("Exif tag", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf));
   taglist2 = gst_tag_list_from_exif_buffer (buf, G_LITTLE_ENDIAN, 0);
   gst_buffer_unref (buf);
 
@@ -1194,6 +1401,7 @@ do_exif_tag_serialization_deserialization (GstTagList * taglist)
 
   /* BE */
   buf = gst_tag_list_to_exif_buffer (taglist, G_BIG_ENDIAN, 0);
+  GST_MEMDUMP ("Exif tag", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf));
   taglist2 = gst_tag_list_from_exif_buffer (buf, G_BIG_ENDIAN, 0);
   gst_buffer_unref (buf);
 
@@ -1216,7 +1424,6 @@ do_simple_exif_tag_serialization_deserialization (const gchar * gsttag,
   GstTagList *taglist = gst_tag_list_new ();
 
   gst_tag_list_add_value (taglist, GST_TAG_MERGE_REPLACE, gsttag, value);
-
   do_exif_tag_serialization_deserialization (taglist);
 
   gst_tag_list_free (taglist);
@@ -1275,6 +1482,12 @@ GST_START_TEST (test_exif_tags_serialization_deserialization)
   do_simple_exif_tag_serialization_deserialization (GST_TAG_APPLICATION_NAME,
       &value);
 
+  /* non ascii chars */
+  g_value_set_static_string (&value, "AaÄäEeËëIiÏïOoÖöUuÜü");
+  do_simple_exif_tag_serialization_deserialization (GST_TAG_ARTIST, &value);
+  g_value_set_static_string (&value, "Äë");
+  do_simple_exif_tag_serialization_deserialization (GST_TAG_ARTIST, &value);
+
   /* image orientation tests */
   g_value_set_static_string (&value, "rotate-0");
   do_simple_exif_tag_serialization_deserialization (GST_TAG_IMAGE_ORIENTATION,
@@ -1628,6 +1841,7 @@ tag_suite (void)
   tcase_add_test (tc_chain, test_id3_tags);
   tcase_add_test (tc_chain, test_id3v1_utf8_tag);
   tcase_add_test (tc_chain, test_language_utils);
+  tcase_add_test (tc_chain, test_license_utils);
   tcase_add_test (tc_chain, test_xmp_formatting);
   tcase_add_test (tc_chain, test_xmp_parsing);
   tcase_add_test (tc_chain, test_xmp_tags_serialization_deserialization);
index 05b840c..fd3178d 100644 (file)
@@ -2,7 +2,7 @@
  *
  * Copyright (C) <2003> David A. Schleef <ds@schleef.org>
  * Copyright (C) <2006> Jan Schmidt <thaytan@mad.scientist.com>
- * Copyright (C) <2008> Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) <2008,2011> Tim-Philipp Müller <tim centricular net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -29,6 +29,7 @@
 #include <gst/check/gstcheck.h>
 
 #include <gst/video/video.h>
+#include <gst/video/video-overlay-composition.h>
 #include <string.h>
 
 /* These are from the current/old videotestsrc; we check our new public API
@@ -627,6 +628,8 @@ GST_START_TEST (test_convert_frame)
   gint i;
   guint8 *data;
 
+  gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
   from_buffer = gst_buffer_new_and_alloc (640 * 480 * 4);
   data = GST_BUFFER_DATA (from_buffer);
 
@@ -696,6 +699,8 @@ GST_START_TEST (test_convert_frame_async)
   GMainLoop *loop;
   ConvertFrameContext cf_data = { NULL, NULL, NULL };
 
+  gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
   from_buffer = gst_buffer_new_and_alloc (640 * 480 * 4);
   data = GST_BUFFER_DATA (from_buffer);
 
@@ -748,6 +753,173 @@ GST_START_TEST (test_convert_frame_async)
 
 GST_END_TEST;
 
+GST_START_TEST (test_video_size_from_caps)
+{
+  gint size;
+  guint32 fourcc = GST_MAKE_FOURCC ('Y', 'V', '1', '2');
+  GstCaps *caps = gst_caps_new_simple ("video/x-raw-yuv",
+      "format", GST_TYPE_FOURCC, fourcc,
+      "width", G_TYPE_INT, 640,
+      "height", G_TYPE_INT, 480,
+      "framerate", GST_TYPE_FRACTION, 25, 1,
+      NULL);
+
+  fail_unless (gst_video_get_size_from_caps (caps, &size));
+  fail_unless (size ==
+      gst_video_format_get_size (gst_video_format_from_fourcc (fourcc), 640,
+          480));
+  fail_unless (size == (640 * 480 * 12 / 8));
+
+  gst_caps_unref (caps);
+}
+
+GST_END_TEST;
+
+#undef ASSERT_CRITICAL
+#define ASSERT_CRITICAL(code) while(0){}        /* nothing */
+
+GST_START_TEST (test_overlay_composition)
+{
+  GstVideoOverlayComposition *comp1, *comp2;
+  GstVideoOverlayRectangle *rect1, *rect2;
+  GstBuffer *pix1, *pix2, *buf;
+  guint seq1, seq2;
+  guint w, h, stride;
+  gint x, y;
+
+  pix1 = gst_buffer_new_and_alloc (200 * sizeof (guint32) * 50);
+  memset (GST_BUFFER_DATA (pix1), 0, GST_BUFFER_SIZE (pix1));
+
+  rect1 = gst_video_overlay_rectangle_new_argb (pix1, 200, 50, 200 * 4,
+      600, 50, 300, 50, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+
+  gst_buffer_unref (pix1);
+  pix1 = NULL;
+
+  comp1 = gst_video_overlay_composition_new (rect1);
+  fail_unless (gst_video_overlay_composition_n_rectangles (comp1) == 1);
+  fail_unless (gst_video_overlay_composition_get_rectangle (comp1, 0) == rect1);
+  fail_unless (gst_video_overlay_composition_get_rectangle (comp1, 1) == NULL);
+
+  /* rectangle was created first, sequence number should be smaller */
+  seq1 = gst_video_overlay_rectangle_get_seqnum (rect1);
+  seq2 = gst_video_overlay_composition_get_seqnum (comp1);
+  fail_unless (seq1 < seq2);
+
+  /* composition took own ref, so refcount is 2 now, so this should fail */
+  ASSERT_CRITICAL (gst_video_overlay_rectangle_set_render_rectangle (rect1, 50,
+          600, 300, 50));
+
+  /* drop our ref, so refcount is 1 (we know it will continue to be valid) */
+  gst_video_overlay_rectangle_unref (rect1);
+  gst_video_overlay_rectangle_set_render_rectangle (rect1, 50, 600, 300, 50);
+
+  comp2 = gst_video_overlay_composition_new (rect1);
+  fail_unless (gst_video_overlay_composition_n_rectangles (comp2) == 1);
+  fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 0) == rect1);
+  fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 1) == NULL);
+
+  fail_unless (seq1 < gst_video_overlay_composition_get_seqnum (comp2));
+  fail_unless (seq2 < gst_video_overlay_composition_get_seqnum (comp2));
+
+  /* now refcount is 2 again because comp2 has also taken a ref, so must fail */
+  ASSERT_CRITICAL (gst_video_overlay_rectangle_set_render_rectangle (rect1, 0,
+          0, 1, 1));
+
+  /* this should make a copy of the rectangles so drop the original
+   * second ref on rect1 */
+  comp2 = gst_video_overlay_composition_make_writable (comp2);
+  gst_video_overlay_rectangle_set_render_rectangle (rect1, 51, 601, 301, 51);
+
+  rect2 = gst_video_overlay_composition_get_rectangle (comp2, 0);
+  fail_unless (gst_video_overlay_composition_n_rectangles (comp2) == 1);
+  fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 0) == rect2);
+  fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 1) == NULL);
+  fail_unless (rect1 != rect2);
+
+  gst_video_overlay_composition_add_rectangle (comp1, rect2);
+  gst_video_overlay_composition_ref (comp1);
+  ASSERT_CRITICAL (gst_video_overlay_composition_add_rectangle (comp1, rect2));
+  gst_video_overlay_composition_unref (comp1);
+
+  /* make sure the copy really worked */
+  gst_video_overlay_rectangle_get_render_rectangle (rect1, &x, &y, &w, &h);
+  fail_unless_equals_int (x, 51);
+  fail_unless_equals_int (y, 601);
+  fail_unless_equals_int (w, 301);
+  fail_unless_equals_int (h, 51);
+
+  /* get scaled pixbuf and touch last byte */
+  pix1 = gst_video_overlay_rectangle_get_pixels_argb (rect1, &stride,
+      GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+  fail_unless (GST_BUFFER_SIZE (pix1) > ((h - 1) * stride + (w * 4) - 1),
+      "size %u vs. last pixel offset %u", GST_BUFFER_SIZE (pix1),
+      ((h - 1) * stride + (w * 4) - 1));
+  fail_unless_equals_int (*(GST_BUFFER_DATA (pix1) + ((h - 1) * stride +
+              (w * 4) - 1)), 0);
+
+  gst_video_overlay_rectangle_get_render_rectangle (rect2, &x, &y, &w, &h);
+  fail_unless_equals_int (x, 50);
+  fail_unless_equals_int (y, 600);
+  fail_unless_equals_int (w, 300);
+  fail_unless_equals_int (h, 50);
+
+  /* get scaled pixbuf and touch last byte */
+  pix2 = gst_video_overlay_rectangle_get_pixels_argb (rect2, &stride,
+      GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+  fail_unless (GST_BUFFER_SIZE (pix2) > ((h - 1) * stride + (w * 4) - 1),
+      "size %u vs. last pixel offset %u", GST_BUFFER_SIZE (pix1),
+      ((h - 1) * stride + (w * 4) - 1));
+  fail_unless_equals_int (*(GST_BUFFER_DATA (pix2) + ((h - 1) * stride +
+              (w * 4) - 1)), 0);
+
+  /* get scaled pixbuf again, should be the same buffer as before (caching) */
+  pix1 = gst_video_overlay_rectangle_get_pixels_argb (rect2, &stride,
+      GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+  fail_unless (pix1 == pix2);
+
+  /* now compare the original unscaled ones */
+  pix1 = gst_video_overlay_rectangle_get_pixels_unscaled_argb (rect1, &w, &h,
+      &stride, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+  pix2 = gst_video_overlay_rectangle_get_pixels_unscaled_argb (rect2, &w, &h,
+      &stride, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+
+  /* the original pixel buffers should be identical */
+  fail_unless (pix1 == pix2);
+  fail_unless_equals_int (w, 200);
+  fail_unless_equals_int (h, 50);
+
+  /* touch last byte */
+  fail_unless (GST_BUFFER_SIZE (pix1) > ((h - 1) * stride + (w * 4) - 1),
+      "size %u vs. last pixel offset %u", GST_BUFFER_SIZE (pix1),
+      ((h - 1) * stride + (w * 4) - 1));
+  fail_unless_equals_int (*(GST_BUFFER_DATA (pix1) + ((h - 1) * stride +
+              (w * 4) - 1)), 0);
+
+  /* test attaching and retrieving of compositions to/from buffers */
+  buf = gst_buffer_new ();
+  fail_unless (gst_video_buffer_get_overlay_composition (buf) == NULL);
+
+  gst_buffer_ref (buf);
+  ASSERT_CRITICAL (gst_video_buffer_set_overlay_composition (buf, comp1));
+  gst_buffer_unref (buf);
+  gst_video_buffer_set_overlay_composition (buf, comp1);
+  fail_unless (gst_video_buffer_get_overlay_composition (buf) == comp1);
+  gst_video_buffer_set_overlay_composition (buf, comp2);
+  fail_unless (gst_video_buffer_get_overlay_composition (buf) == comp2);
+  gst_video_buffer_set_overlay_composition (buf, NULL);
+  fail_unless (gst_video_buffer_get_overlay_composition (buf) == NULL);
+
+  /* make sure the buffer cleans up its composition ref when unreffed */
+  gst_video_buffer_set_overlay_composition (buf, comp2);
+  gst_buffer_unref (buf);
+
+  gst_video_overlay_composition_unref (comp2);
+  gst_video_overlay_composition_unref (comp1);
+}
+
+GST_END_TEST;
+
 static Suite *
 video_suite (void)
 {
@@ -763,6 +935,8 @@ video_suite (void)
   tcase_add_test (tc_chain, test_events);
   tcase_add_test (tc_chain, test_convert_frame);
   tcase_add_test (tc_chain, test_convert_frame_async);
+  tcase_add_test (tc_chain, test_video_size_from_caps);
+  tcase_add_test (tc_chain, test_overlay_composition);
 
   return s;
 }
index 2b84f9d..b943a68 100644 (file)
@@ -44,11 +44,15 @@ break_mainloop (gpointer data)
 static gboolean
 buffer_probe_cb (GstPad * pad, GstBuffer * buffer)
 {
+  GstClockTime new_ts = GST_BUFFER_TIMESTAMP (buffer);
+
+  GST_LOG ("ts = %" GST_TIME_FORMAT, GST_TIME_ARGS (new_ts));
   if (old_ts != GST_CLOCK_TIME_NONE) {
-    fail_unless (GST_BUFFER_TIMESTAMP (buffer) != old_ts,
-        "Two buffers had same timestamp");
+    fail_unless (new_ts != old_ts,
+        "Two buffers had same timestamp: %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (old_ts));
   }
-  old_ts = GST_BUFFER_TIMESTAMP (buffer);
+  old_ts = new_ts;
 
   return TRUE;
 }
@@ -60,11 +64,6 @@ GST_START_TEST (test_basetime_calculation)
   GstPad *pad;
   GMainLoop *loop;
 
-  /* Don't run with osxaudiosrc . This is because libcheck runs the actual
-   * test in a forked process and causes havoc with osx's API. */
-  if (G_UNLIKELY (!g_ascii_strcasecmp (DEFAULT_AUDIOSRC, "osxaudiosrc")))
-    return;
-
   loop = g_main_loop_new (NULL, FALSE);
 
   /* The "main" pipeline */
@@ -72,10 +71,9 @@ GST_START_TEST (test_basetime_calculation)
   fail_if (p1 == NULL);
 
   /* Create a sub-bin that is activated only in "certain situations" */
-  asrc = gst_element_factory_make (DEFAULT_AUDIOSRC, NULL);
+  asrc = gst_element_factory_make ("audiotestsrc", NULL);
   if (asrc == NULL) {
-    GST_WARNING ("Cannot run test. test audio source %s not available",
-        DEFAULT_AUDIOSRC);
+    GST_WARNING ("Cannot run test. 'audiotestsrc' not available");
     gst_element_set_state (p1, GST_STATE_NULL);
     gst_object_unref (p1);
     return;
@@ -117,6 +115,8 @@ GST_START_TEST (test_basetime_calculation)
   gst_object_unref (pad);
   gst_element_set_state (p1, GST_STATE_NULL);
   gst_object_unref (p1);
+
+  g_main_loop_unref (loop);
 }
 
 GST_END_TEST;
index ddc37d6..3b101d0 100644 (file)
@@ -272,7 +272,6 @@ GST_START_TEST (test_continuity)
 
   {
     GstClockTime next_timestamp;
-    gint64 last_granulepos;
 
     /* first buffer should have timestamp of TIMESTAMP_OFFSET, granulepos to
      * match the timestamp of the end of the last sample in the output buffer.
@@ -281,7 +280,6 @@ GST_START_TEST (test_continuity)
      * take care to timestamp correctly based on the offset of the input data
      * however, so it does do sub-granulepos timestamping. */
     buffer = gst_buffer_straw_get_buffer (bin, pad);
-    last_granulepos = GST_BUFFER_OFFSET_END (buffer);
     check_buffer_timestamp (buffer, 0);
     /* plain division because I know the answer is exact */
     check_buffer_duration (buffer, GST_SECOND / 10);
index 751e79a..8434d60 100644 (file)
@@ -54,8 +54,11 @@ GST_START_TEST (test_timestamps)
   GstBus *bus;
   GError *error = NULL;
 
+  /* allowing some tolerance permits audiodecoder to come up with
+   * perfect timestamps rather than sticking to upstream ts */
   pipe_str = g_strdup_printf ("audiotestsrc num-buffers=100"
-      " ! audio/x-raw-int,rate=44100 ! audioconvert ! vorbisenc ! vorbisdec"
+      " ! audio/x-raw-int,rate=44100 ! audioconvert ! vorbisenc "
+      " ! vorbisdec tolerance=10000000 "
       " ! identity check-imperfect-timestamp=TRUE ! fakesink");
 
   pipeline = gst_parse_launch (pipe_str, &error);
index b207dff..4b15a10 100644 (file)
@@ -264,7 +264,7 @@ GST_END_TEST;
 static gboolean
 drop_second_data_buffer (GstPad * droppad, GstBuffer * buffer, gpointer unused)
 {
-  return !(GST_BUFFER_OFFSET (buffer) == 1024);
+  return !(GST_BUFFER_OFFSET (buffer) == 4096);
 }
 
 GST_START_TEST (test_discontinuity)
@@ -276,8 +276,10 @@ GST_START_TEST (test_discontinuity)
   GError *error = NULL;
   guint drop_id;
 
+  /* make audioencoder act sufficiently pedantic */
   pipe_str = g_strdup_printf ("audiotestsrc samplesperbuffer=1024"
-      " ! audio/x-raw-int,rate=44100" " ! audioconvert ! vorbisenc ! fakesink");
+      " ! audio/x-raw-int,rate=44100" " ! audioconvert "
+      " ! vorbisenc tolerance=10000000 ! fakesink");
 
   bin = gst_parse_launch (pipe_str, &error);
   fail_unless (bin != NULL, "Error parsing pipeline: %s",
@@ -330,38 +332,27 @@ GST_START_TEST (test_discontinuity)
   check_buffer_granulepos (buffer, 0);
   gst_buffer_unref (buffer);
 
-  /* two phases: continuous granulepos values up to 1024, then a first
-     discontinuous granulepos whose granulepos corresponds to a gap ending at
-     2048. */
   {
     GstClockTime next_timestamp = 0;
-    gint64 last_granulepos = 0;
+    gint64 last_granulepos = 0, granulepos;
+    gint i;
 
-    while (last_granulepos < 1024) {
+    for (i = 0; i < 10; i++) {
       buffer = gst_buffer_straw_get_buffer (bin, pad);
-      last_granulepos = GST_BUFFER_OFFSET_END (buffer);
+      granulepos = GST_BUFFER_OFFSET_END (buffer);
+      /* discont is either at start, or following gap */
+      if (GST_BUFFER_IS_DISCONT (buffer)) {
+        if (next_timestamp) {
+          fail_unless (granulepos - last_granulepos > 1024,
+              "expected discont of at least 1024 samples");
+          next_timestamp = GST_BUFFER_TIMESTAMP (buffer);
+        }
+      }
       check_buffer_timestamp (buffer, next_timestamp);
-      fail_if (GST_BUFFER_IS_DISCONT (buffer), "expected continuous buffer");
       next_timestamp += GST_BUFFER_DURATION (buffer);
+      last_granulepos = granulepos;
       gst_buffer_unref (buffer);
     }
-
-    fail_unless (last_granulepos == 1024,
-        "unexpected granulepos: %" G_GUINT64_FORMAT, last_granulepos);
-  }
-
-  {
-    buffer = gst_buffer_straw_get_buffer (bin, pad);
-    /* The first buffer after the discontinuity will produce zero output
-     * samples (because of the overlap/add), so it won't increment the 
-     * granulepos, which should be 2048 after the discontinuity.
-     */
-    fail_unless (GST_BUFFER_OFFSET_END (buffer) == 2048,
-        "expected granulepos after gap: %" G_GUINT64_FORMAT,
-        GST_BUFFER_OFFSET_END (buffer));
-    fail_unless (GST_BUFFER_IS_DISCONT (buffer),
-        "expected discontinuous buffer");
-    gst_buffer_unref (buffer);
   }
 
   gst_buffer_straw_stop_pipeline (bin, pad);
index 48c38a5..d765419 100644 (file)
@@ -8,8 +8,9 @@ if USE_GIO
 GIO_SUBDIRS = gio
 endif
 
-SUBDIRS = app  dynamic $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec volume v4l encoding
+SUBDIRS = app audio dynamic fft $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec v4l encoding
 
-DIST_SUBDIRS = app dynamic gio overlay seek snapshot playrec volume v4l encoding
+DIST_SUBDIRS = app audio dynamic fft gio overlay seek snapshot playrec v4l encoding
 
 include $(top_srcdir)/common/parallel-subdirs.mak
+
index ba333f8..7076434 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -60,6 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -84,11 +85,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -192,6 +193,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -252,6 +254,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -261,9 +264,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -286,6 +292,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -358,10 +365,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -395,7 +405,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -419,8 +428,8 @@ top_srcdir = @top_srcdir@
 @HAVE_FT2_FALSE@FT2_SUBDIRS = 
 @HAVE_FT2_TRUE@FT2_SUBDIRS = seek snapshot
 @USE_GIO_TRUE@GIO_SUBDIRS = gio
-SUBDIRS = app  dynamic $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec volume v4l encoding
-DIST_SUBDIRS = app dynamic gio overlay seek snapshot playrec volume v4l encoding
+SUBDIRS = app audio dynamic fft $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec v4l encoding
+DIST_SUBDIRS = app audio dynamic fft gio overlay seek snapshot playrec v4l encoding
 all: all-recursive
 
 .SUFFIXES:
@@ -445,6 +454,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(top_srcdir)/common/parallel-subdirs.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -669,10 +679,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c5d278e..5d1300c 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -88,8 +89,8 @@ appsink_src_OBJECTS = $(am_appsink_src_OBJECTS)
 am__DEPENDENCIES_1 =
 appsink_src_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 appsink_src_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(appsink_src_CFLAGS) \
@@ -141,21 +142,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(appsink_src_SOURCES) $(appsrc_ra_SOURCES) \
        $(appsrc_seekable_SOURCES) $(appsrc_stream_SOURCES) \
@@ -226,6 +227,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -286,6 +288,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -295,9 +298,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -320,6 +326,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -392,10 +399,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -429,7 +439,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -517,22 +526,22 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-appsink-src$(EXEEXT): $(appsink_src_OBJECTS) $(appsink_src_DEPENDENCIES) 
+appsink-src$(EXEEXT): $(appsink_src_OBJECTS) $(appsink_src_DEPENDENCIES) $(EXTRA_appsink_src_DEPENDENCIES) 
        @rm -f appsink-src$(EXEEXT)
        $(AM_V_CCLD)$(appsink_src_LINK) $(appsink_src_OBJECTS) $(appsink_src_LDADD) $(LIBS)
-appsrc-ra$(EXEEXT): $(appsrc_ra_OBJECTS) $(appsrc_ra_DEPENDENCIES) 
+appsrc-ra$(EXEEXT): $(appsrc_ra_OBJECTS) $(appsrc_ra_DEPENDENCIES) $(EXTRA_appsrc_ra_DEPENDENCIES) 
        @rm -f appsrc-ra$(EXEEXT)
        $(AM_V_CCLD)$(appsrc_ra_LINK) $(appsrc_ra_OBJECTS) $(appsrc_ra_LDADD) $(LIBS)
-appsrc-seekable$(EXEEXT): $(appsrc_seekable_OBJECTS) $(appsrc_seekable_DEPENDENCIES) 
+appsrc-seekable$(EXEEXT): $(appsrc_seekable_OBJECTS) $(appsrc_seekable_DEPENDENCIES) $(EXTRA_appsrc_seekable_DEPENDENCIES) 
        @rm -f appsrc-seekable$(EXEEXT)
        $(AM_V_CCLD)$(appsrc_seekable_LINK) $(appsrc_seekable_OBJECTS) $(appsrc_seekable_LDADD) $(LIBS)
-appsrc-stream$(EXEEXT): $(appsrc_stream_OBJECTS) $(appsrc_stream_DEPENDENCIES) 
+appsrc-stream$(EXEEXT): $(appsrc_stream_OBJECTS) $(appsrc_stream_DEPENDENCIES) $(EXTRA_appsrc_stream_DEPENDENCIES) 
        @rm -f appsrc-stream$(EXEEXT)
        $(AM_V_CCLD)$(appsrc_stream_LINK) $(appsrc_stream_OBJECTS) $(appsrc_stream_LDADD) $(LIBS)
-appsrc-stream2$(EXEEXT): $(appsrc_stream2_OBJECTS) $(appsrc_stream2_DEPENDENCIES) 
+appsrc-stream2$(EXEEXT): $(appsrc_stream2_OBJECTS) $(appsrc_stream2_DEPENDENCIES) $(EXTRA_appsrc_stream2_DEPENDENCIES) 
        @rm -f appsrc-stream2$(EXEEXT)
        $(AM_V_CCLD)$(appsrc_stream2_LINK) $(appsrc_stream2_OBJECTS) $(appsrc_stream2_LDADD) $(LIBS)
-appsrc_ex$(EXEEXT): $(appsrc_ex_OBJECTS) $(appsrc_ex_DEPENDENCIES) 
+appsrc_ex$(EXEEXT): $(appsrc_ex_OBJECTS) $(appsrc_ex_DEPENDENCIES) $(EXTRA_appsrc_ex_DEPENDENCIES) 
        @rm -f appsrc_ex$(EXEEXT)
        $(AM_V_CCLD)$(appsrc_ex_LINK) $(appsrc_ex_OBJECTS) $(appsrc_ex_LDADD) $(LIBS)
 
@@ -552,122 +561,107 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 appsink_src-appsink-src.o: appsink-src.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -MT appsink_src-appsink-src.o -MD -MP -MF $(DEPDIR)/appsink_src-appsink-src.Tpo -c -o appsink_src-appsink-src.o `test -f 'appsink-src.c' || echo '$(srcdir)/'`appsink-src.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsink_src-appsink-src.Tpo $(DEPDIR)/appsink_src-appsink-src.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsink-src.c' object='appsink_src-appsink-src.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsink-src.c' object='appsink_src-appsink-src.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.o `test -f 'appsink-src.c' || echo '$(srcdir)/'`appsink-src.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.o `test -f 'appsink-src.c' || echo '$(srcdir)/'`appsink-src.c
 
 appsink_src-appsink-src.obj: appsink-src.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -MT appsink_src-appsink-src.obj -MD -MP -MF $(DEPDIR)/appsink_src-appsink-src.Tpo -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsink_src-appsink-src.Tpo $(DEPDIR)/appsink_src-appsink-src.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsink-src.c' object='appsink_src-appsink-src.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsink-src.c' object='appsink_src-appsink-src.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
 
 appsrc_ra-appsrc-ra.o: appsrc-ra.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -MT appsrc_ra-appsrc-ra.o -MD -MP -MF $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo $(DEPDIR)/appsrc_ra-appsrc-ra.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
 
 appsrc_ra-appsrc-ra.obj: appsrc-ra.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -MT appsrc_ra-appsrc-ra.obj -MD -MP -MF $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo -c -o appsrc_ra-appsrc-ra.obj `if test -f 'appsrc-ra.c'; then $(CYGPATH_W) 'appsrc-ra.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-ra.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo $(DEPDIR)/appsrc_ra-appsrc-ra.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.obj `if test -f 'appsrc-ra.c'; then $(CYGPATH_W) 'appsrc-ra.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-ra.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.obj `if test -f 'appsrc-ra.c'; then $(CYGPATH_W) 'appsrc-ra.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-ra.c'; fi`
 
 appsrc_seekable-appsrc-seekable.o: appsrc-seekable.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -MT appsrc_seekable-appsrc-seekable.o -MD -MP -MF $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo -c -o appsrc_seekable-appsrc-seekable.o `test -f 'appsrc-seekable.c' || echo '$(srcdir)/'`appsrc-seekable.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo $(DEPDIR)/appsrc_seekable-appsrc-seekable.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.o `test -f 'appsrc-seekable.c' || echo '$(srcdir)/'`appsrc-seekable.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.o `test -f 'appsrc-seekable.c' || echo '$(srcdir)/'`appsrc-seekable.c
 
 appsrc_seekable-appsrc-seekable.obj: appsrc-seekable.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -MT appsrc_seekable-appsrc-seekable.obj -MD -MP -MF $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo -c -o appsrc_seekable-appsrc-seekable.obj `if test -f 'appsrc-seekable.c'; then $(CYGPATH_W) 'appsrc-seekable.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-seekable.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo $(DEPDIR)/appsrc_seekable-appsrc-seekable.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.obj `if test -f 'appsrc-seekable.c'; then $(CYGPATH_W) 'appsrc-seekable.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-seekable.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.obj `if test -f 'appsrc-seekable.c'; then $(CYGPATH_W) 'appsrc-seekable.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-seekable.c'; fi`
 
 appsrc_stream-appsrc-stream.o: appsrc-stream.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -MT appsrc_stream-appsrc-stream.o -MD -MP -MF $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo -c -o appsrc_stream-appsrc-stream.o `test -f 'appsrc-stream.c' || echo '$(srcdir)/'`appsrc-stream.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo $(DEPDIR)/appsrc_stream-appsrc-stream.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.o `test -f 'appsrc-stream.c' || echo '$(srcdir)/'`appsrc-stream.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.o `test -f 'appsrc-stream.c' || echo '$(srcdir)/'`appsrc-stream.c
 
 appsrc_stream-appsrc-stream.obj: appsrc-stream.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -MT appsrc_stream-appsrc-stream.obj -MD -MP -MF $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo -c -o appsrc_stream-appsrc-stream.obj `if test -f 'appsrc-stream.c'; then $(CYGPATH_W) 'appsrc-stream.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo $(DEPDIR)/appsrc_stream-appsrc-stream.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.obj `if test -f 'appsrc-stream.c'; then $(CYGPATH_W) 'appsrc-stream.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.obj `if test -f 'appsrc-stream.c'; then $(CYGPATH_W) 'appsrc-stream.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream.c'; fi`
 
 appsrc_stream2-appsrc-stream2.o: appsrc-stream2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -MT appsrc_stream2-appsrc-stream2.o -MD -MP -MF $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo -c -o appsrc_stream2-appsrc-stream2.o `test -f 'appsrc-stream2.c' || echo '$(srcdir)/'`appsrc-stream2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo $(DEPDIR)/appsrc_stream2-appsrc-stream2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.o `test -f 'appsrc-stream2.c' || echo '$(srcdir)/'`appsrc-stream2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.o `test -f 'appsrc-stream2.c' || echo '$(srcdir)/'`appsrc-stream2.c
 
 appsrc_stream2-appsrc-stream2.obj: appsrc-stream2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -MT appsrc_stream2-appsrc-stream2.obj -MD -MP -MF $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo -c -o appsrc_stream2-appsrc-stream2.obj `if test -f 'appsrc-stream2.c'; then $(CYGPATH_W) 'appsrc-stream2.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream2.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo $(DEPDIR)/appsrc_stream2-appsrc-stream2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.obj `if test -f 'appsrc-stream2.c'; then $(CYGPATH_W) 'appsrc-stream2.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream2.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.obj `if test -f 'appsrc-stream2.c'; then $(CYGPATH_W) 'appsrc-stream2.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream2.c'; fi`
 
 appsrc_ex-appsrc_ex.o: appsrc_ex.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -MT appsrc_ex-appsrc_ex.o -MD -MP -MF $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo -c -o appsrc_ex-appsrc_ex.o `test -f 'appsrc_ex.c' || echo '$(srcdir)/'`appsrc_ex.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo $(DEPDIR)/appsrc_ex-appsrc_ex.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.o `test -f 'appsrc_ex.c' || echo '$(srcdir)/'`appsrc_ex.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.o `test -f 'appsrc_ex.c' || echo '$(srcdir)/'`appsrc_ex.c
 
 appsrc_ex-appsrc_ex.obj: appsrc_ex.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -MT appsrc_ex-appsrc_ex.obj -MD -MP -MF $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo -c -o appsrc_ex-appsrc_ex.obj `if test -f 'appsrc_ex.c'; then $(CYGPATH_W) 'appsrc_ex.c'; else $(CYGPATH_W) '$(srcdir)/appsrc_ex.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo $(DEPDIR)/appsrc_ex-appsrc_ex.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.obj `if test -f 'appsrc_ex.c'; then $(CYGPATH_W) 'appsrc_ex.c'; else $(CYGPATH_W) '$(srcdir)/appsrc_ex.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.obj `if test -f 'appsrc_ex.c'; then $(CYGPATH_W) 'appsrc_ex.c'; else $(CYGPATH_W) '$(srcdir)/appsrc_ex.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -771,10 +765,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/audio/Makefile.am b/tests/examples/audio/Makefile.am
new file mode 100644 (file)
index 0000000..d849234
--- /dev/null
@@ -0,0 +1,22 @@
+if HAVE_GTK
+GTK_EXAMPLES = audiomix volume
+else
+GTK_EXAMPLES =
+endif
+
+noinst_PROGRAMS = testchannels $(GTK_EXAMPLES)
+
+testchannels_SOURCES = testchannels.c
+testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+testchannels_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_MAJORMINOR).la \
+                     $(GST_LIBS)
+
+if HAVE_GTK
+audiomix_SOURCES = audiomix.c
+audiomix_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+audiomix_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+
+volume_SOURCES = volume.c
+volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+endif
diff --git a/tests/examples/audio/Makefile.in b/tests/examples/audio/Makefile.in
new file mode 100644 (file)
index 0000000..c2bccda
--- /dev/null
@@ -0,0 +1,788 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = testchannels$(EXEEXT) $(am__EXEEXT_1)
+subdir = tests/examples/audio
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
+       $(top_srcdir)/common/m4/as-auto-alt.m4 \
+       $(top_srcdir)/common/m4/as-compiler-flag.m4 \
+       $(top_srcdir)/common/m4/as-libtool.m4 \
+       $(top_srcdir)/common/m4/as-python.m4 \
+       $(top_srcdir)/common/m4/as-scrub-include.m4 \
+       $(top_srcdir)/common/m4/as-version.m4 \
+       $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/common/m4/gst-arch.m4 \
+       $(top_srcdir)/common/m4/gst-args.m4 \
+       $(top_srcdir)/common/m4/gst-check.m4 \
+       $(top_srcdir)/common/m4/gst-default.m4 \
+       $(top_srcdir)/common/m4/gst-error.m4 \
+       $(top_srcdir)/common/m4/gst-feature.m4 \
+       $(top_srcdir)/common/m4/gst-function.m4 \
+       $(top_srcdir)/common/m4/gst-gettext.m4 \
+       $(top_srcdir)/common/m4/gst-glib2.m4 \
+       $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
+       $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
+       $(top_srcdir)/common/m4/gst-plugindir.m4 \
+       $(top_srcdir)/common/m4/gst-x11.m4 \
+       $(top_srcdir)/common/m4/gst.m4 \
+       $(top_srcdir)/common/m4/gtk-doc.m4 \
+       $(top_srcdir)/common/m4/introspection.m4 \
+       $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
+       $(top_srcdir)/m4/freetype2.m4 $(top_srcdir)/m4/gettext.m4 \
+       $(top_srcdir)/m4/gst-alsa.m4 $(top_srcdir)/m4/gst-fionread.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lrint.m4 $(top_srcdir)/m4/lrintf.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/ogg.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/vorbis.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+@HAVE_GTK_TRUE@am__EXEEXT_1 = audiomix$(EXEEXT) volume$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+am__audiomix_SOURCES_DIST = audiomix.c
+@HAVE_GTK_TRUE@am_audiomix_OBJECTS = audiomix-audiomix.$(OBJEXT)
+audiomix_OBJECTS = $(am_audiomix_OBJECTS)
+am__DEPENDENCIES_1 =
+@HAVE_GTK_TRUE@audiomix_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@HAVE_GTK_TRUE@        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+audiomix_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(audiomix_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testchannels_OBJECTS = testchannels-testchannels.$(OBJEXT)
+testchannels_OBJECTS = $(am_testchannels_OBJECTS)
+testchannels_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_MAJORMINOR).la \
+       $(am__DEPENDENCIES_1)
+testchannels_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testchannels_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__volume_SOURCES_DIST = volume.c
+@HAVE_GTK_TRUE@am_volume_OBJECTS = volume-volume.$(OBJEXT)
+volume_OBJECTS = $(am_volume_OBJECTS)
+@HAVE_GTK_TRUE@volume_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@HAVE_GTK_TRUE@        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+volume_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(volume_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC    " $@;
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(audiomix_SOURCES) $(testchannels_SOURCES) \
+       $(volume_SOURCES)
+DIST_SOURCES = $(am__audiomix_SOURCES_DIST) $(testchannels_SOURCES) \
+       $(am__volume_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUDIORESAMPLE_FORMAT_AUTO = @AUDIORESAMPLE_FORMAT_AUTO@
+AUDIORESAMPLE_FORMAT_FLOAT = @AUDIORESAMPLE_FORMAT_FLOAT@
+AUDIORESAMPLE_FORMAT_INT = @AUDIORESAMPLE_FORMAT_INT@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CDPARANOIA_CFLAGS = @CDPARANOIA_CFLAGS@
+CDPARANOIA_LIBS = @CDPARANOIA_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
+DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
+DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
+DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
+DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
+EXEEXT = @EXEEXT@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+FT2_CFLAGS = @FT2_CFLAGS@
+FT2_CONFIG = @FT2_CONFIG@
+FT2_LIBS = @FT2_LIBS@
+GCOV = @GCOV@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LIBS = @GCOV_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GLIB_REQ = @GLIB_REQ@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
+GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
+GREP = @GREP@
+GST_AGE = @GST_AGE@
+GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
+GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
+GST_BASE_LIBS = @GST_BASE_LIBS@
+GST_CFLAGS = @GST_CFLAGS@
+GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
+GST_CHECK_LIBS = @GST_CHECK_LIBS@
+GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
+GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
+GST_CURRENT = @GST_CURRENT@
+GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_DISABLE_ALLOC_TRACE = @GST_DISABLE_ALLOC_TRACE@
+GST_DISABLE_GST_DEBUG = @GST_DISABLE_GST_DEBUG@
+GST_DISABLE_LOADSAVE = @GST_DISABLE_LOADSAVE@
+GST_DISABLE_PARSE = @GST_DISABLE_PARSE@
+GST_DISABLE_PLUGIN = @GST_DISABLE_PLUGIN@
+GST_DISABLE_REGISTRY = @GST_DISABLE_REGISTRY@
+GST_DISABLE_TRACE = @GST_DISABLE_TRACE@
+GST_DISABLE_XML = @GST_DISABLE_XML@
+GST_GDP_CFLAGS = @GST_GDP_CFLAGS@
+GST_GDP_LIBS = @GST_GDP_LIBS@
+GST_INSTALL_PLUGINS_HELPER = @GST_INSTALL_PLUGINS_HELPER@
+GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
+GST_LIBS = @GST_LIBS@
+GST_LIBVERSION = @GST_LIBVERSION@
+GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
+GST_LICENSE = @GST_LICENSE@
+GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_MAJORMINOR = @GST_MAJORMINOR@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
+GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
+GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
+GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
+GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
+GTK_X11_LIBS = @GTK_X11_LIBS@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
+HAVE_X = @HAVE_X@
+HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
+HSTRERROR_LIBS = @HSTRERROR_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
+IVORBIS_LIBS = @IVORBIS_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVISUAL_CFLAGS = @LIBVISUAL_CFLAGS@
+LIBVISUAL_LIBS = @LIBVISUAL_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALEDIR = @LOCALEDIR@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+ORCC = @ORCC@
+ORCC_FLAGS = @ORCC_FLAGS@
+ORC_CFLAGS = @ORC_CFLAGS@
+ORC_LIBS = @ORC_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
+PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
+PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
+PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
+PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
+PANGO_CFLAGS = @PANGO_CFLAGS@
+PANGO_LIBS = @PANGO_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POSUB = @POSUB@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QT4_MOC = @QT4_MOC@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+THEORA_CFLAGS = @THEORA_CFLAGS@
+THEORA_LIBS = @THEORA_LIBS@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VORBISENC_LIBS = @VORBISENC_LIBS@
+VORBISFILE_LIBS = @VORBISFILE_LIBS@
+VORBIS_CFLAGS = @VORBIS_CFLAGS@
+VORBIS_LIBS = @VORBIS_LIBS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+WIN32_LIBS = @WIN32_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMKMF = @XMKMF@
+XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_LIBS = @XVIDEO_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@HAVE_GTK_FALSE@GTK_EXAMPLES = 
+@HAVE_GTK_TRUE@GTK_EXAMPLES = audiomix volume
+testchannels_SOURCES = testchannels.c
+testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+testchannels_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_MAJORMINOR).la \
+                     $(GST_LIBS)
+
+@HAVE_GTK_TRUE@audiomix_SOURCES = audiomix.c
+@HAVE_GTK_TRUE@audiomix_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+@HAVE_GTK_TRUE@audiomix_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+@HAVE_GTK_TRUE@volume_SOURCES = volume.c
+@HAVE_GTK_TRUE@volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+@HAVE_GTK_TRUE@volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/audio/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu tests/examples/audio/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+       @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+audiomix$(EXEEXT): $(audiomix_OBJECTS) $(audiomix_DEPENDENCIES) $(EXTRA_audiomix_DEPENDENCIES) 
+       @rm -f audiomix$(EXEEXT)
+       $(AM_V_CCLD)$(audiomix_LINK) $(audiomix_OBJECTS) $(audiomix_LDADD) $(LIBS)
+testchannels$(EXEEXT): $(testchannels_OBJECTS) $(testchannels_DEPENDENCIES) $(EXTRA_testchannels_DEPENDENCIES) 
+       @rm -f testchannels$(EXEEXT)
+       $(AM_V_CCLD)$(testchannels_LINK) $(testchannels_OBJECTS) $(testchannels_LDADD) $(LIBS)
+volume$(EXEEXT): $(volume_OBJECTS) $(volume_DEPENDENCIES) $(EXTRA_volume_DEPENDENCIES) 
+       @rm -f volume$(EXEEXT)
+       $(AM_V_CCLD)$(volume_LINK) $(volume_OBJECTS) $(volume_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audiomix-audiomix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchannels-testchannels.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volume-volume.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+audiomix-audiomix.o: audiomix.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audiomix_CFLAGS) $(CFLAGS) -MT audiomix-audiomix.o -MD -MP -MF $(DEPDIR)/audiomix-audiomix.Tpo -c -o audiomix-audiomix.o `test -f 'audiomix.c' || echo '$(srcdir)/'`audiomix.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/audiomix-audiomix.Tpo $(DEPDIR)/audiomix-audiomix.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audiomix.c' object='audiomix-audiomix.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audiomix_CFLAGS) $(CFLAGS) -c -o audiomix-audiomix.o `test -f 'audiomix.c' || echo '$(srcdir)/'`audiomix.c
+
+audiomix-audiomix.obj: audiomix.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audiomix_CFLAGS) $(CFLAGS) -MT audiomix-audiomix.obj -MD -MP -MF $(DEPDIR)/audiomix-audiomix.Tpo -c -o audiomix-audiomix.obj `if test -f 'audiomix.c'; then $(CYGPATH_W) 'audiomix.c'; else $(CYGPATH_W) '$(srcdir)/audiomix.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/audiomix-audiomix.Tpo $(DEPDIR)/audiomix-audiomix.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audiomix.c' object='audiomix-audiomix.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audiomix_CFLAGS) $(CFLAGS) -c -o audiomix-audiomix.obj `if test -f 'audiomix.c'; then $(CYGPATH_W) 'audiomix.c'; else $(CYGPATH_W) '$(srcdir)/audiomix.c'; fi`
+
+testchannels-testchannels.o: testchannels.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.o -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='testchannels.c' object='testchannels-testchannels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
+
+testchannels-testchannels.obj: testchannels.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.obj -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='testchannels.c' object='testchannels-testchannels.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
+
+volume-volume.o: volume.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.o -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='volume.c' object='volume-volume.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
+
+volume-volume.obj: volume.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.obj -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='volume.c' object='volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool clean-noinstPROGRAMS ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/examples/audio/audiomix.c b/tests/examples/audio/audiomix.c
new file mode 100644 (file)
index 0000000..937f4db
--- /dev/null
@@ -0,0 +1,210 @@
+/* GStreamer
+ *
+ * audiomix.c: sample audio mixing application
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <gst/gst.h>
+#include <gtk/gtk.h>
+
+/* global items for the interaction */
+static GtkWidget *scale;
+static GObject *volumes[2];
+static gint num_vol = 0;
+
+
+static void
+value_changed_callback (GtkWidget * widget, gpointer * user_data)
+{
+  gdouble value = gtk_range_get_value (GTK_RANGE (widget));
+  g_object_set (volumes[0], "volume", 1.0 - value, NULL);
+  g_object_set (volumes[1], "volume", value, NULL);
+}
+
+static void
+setup_gui (GstElement * volume, gchar * file_name1, gchar * file_name2)
+{
+  GtkWidget *window, *layout, *label;
+  gchar *name, *ext;
+
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_title (GTK_WINDOW (window), "audiomix");
+  g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+
+  layout = gtk_table_new (2, 3, FALSE);
+  gtk_table_set_col_spacings (GTK_TABLE (layout), 6);
+  gtk_container_add (GTK_CONTAINER (window), layout);
+
+  /* channel labels */
+  name = g_path_get_basename (file_name1);
+  if ((ext = strrchr (name, '.')))
+    *ext = '\0';
+  label = gtk_label_new (name);
+  g_free (name);
+  gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+  gtk_table_attach_defaults (GTK_TABLE (layout), label, 0, 1, 0, 1);
+
+  gtk_table_attach_defaults (GTK_TABLE (layout), gtk_label_new ("|"), 1, 2, 0,
+      1);
+
+  name = g_path_get_basename (file_name2);
+  if ((ext = strrchr (name, '.')))
+    *ext = '\0';
+  label = gtk_label_new (name);
+  g_free (name);
+  gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
+  gtk_table_attach_defaults (GTK_TABLE (layout), label, 2, 3, 0, 1);
+
+  /* mix slider */
+  scale = gtk_hscale_new_with_range (0.0, 1.0, 1.0 / 200.0);
+  gtk_range_set_value (GTK_RANGE (scale), 0.0);
+  gtk_widget_set_size_request (scale, 200, -1);
+  gtk_table_attach_defaults (GTK_TABLE (layout), scale, 0, 3, 1, 2);
+  g_signal_connect (scale, "value-changed",
+      G_CALLBACK (value_changed_callback), volume);
+
+  gtk_widget_show_all (GTK_WIDGET (window));
+}
+
+static void
+message_received (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
+{
+  const GstStructure *s;
+
+  s = gst_message_get_structure (message);
+  g_print ("message from \"%s\" (%s): ",
+      GST_STR_NULL (GST_ELEMENT_NAME (GST_MESSAGE_SRC (message))),
+      gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
+  if (s) {
+    gchar *sstr;
+
+    sstr = gst_structure_to_string (s);
+    g_print ("%s\n", sstr);
+    g_free (sstr);
+  } else {
+    g_print ("no message details\n");
+  }
+}
+
+static void
+eos_message_received (GstBus * bus, GstMessage * message,
+    GstPipeline * pipeline)
+{
+  message_received (bus, message, pipeline);
+  gtk_main_quit ();
+}
+
+static void
+dynamic_link (GstPadTemplate * templ, GstPad * newpad, gpointer user_data)
+{
+  GstPad *target = GST_PAD (user_data);
+
+  gst_pad_link (newpad, target);
+  gst_object_unref (target);
+}
+
+static void
+make_mixer_channel (GstElement * pipeline, GstElement * mix, gchar * file_name)
+{
+  GstElement *filesrc, *decodebin, *volume, *convert, *format;
+  GstCaps *caps;
+
+  /* prepare mixer channel */
+  filesrc = gst_element_factory_make ("filesrc", NULL);
+  decodebin = gst_element_factory_make ("decodebin2", NULL);
+  volume = gst_element_factory_make ("volume", NULL);
+  convert = gst_element_factory_make ("audioconvert", NULL);
+  format = gst_element_factory_make ("capsfilter", NULL);
+  gst_bin_add_many (GST_BIN (pipeline), filesrc, decodebin, volume, convert,
+      format, NULL);
+  gst_element_link (filesrc, decodebin);
+  gst_element_link_many (volume, convert, format, mix, NULL);
+
+  /* configure elements */
+  g_object_set (filesrc, "location", file_name, NULL);
+  g_object_set (volume, "volume", (num_vol == 0) ? 1.0 : 0.0, NULL);
+
+  caps = gst_caps_from_string ("audio/x-raw-int, "
+      "channels = (int) 2, "
+      "endianness = (int) BYTE_ORDER, "
+      "width = (int) 16, " "depth = (int) 16, " "signed = (boolean) true");
+  g_object_set (format, "caps", caps, NULL);
+  gst_caps_unref (caps);
+
+  /* remember volume element */
+  volumes[num_vol++] = (GObject *) volume;
+
+  /* handle dynamic pads */
+  g_signal_connect (G_OBJECT (decodebin), "pad-added",
+      G_CALLBACK (dynamic_link), gst_element_get_static_pad (volume, "sink"));
+}
+
+int
+main (int argc, char *argv[])
+{
+  GstElement *pipeline = NULL;
+  GstElement *mix, *convert, *sink;
+  GstBus *bus;
+
+  if (argc < 3) {
+    g_print ("Usage: audiomix <file1> <file2>\n");
+    return 1;
+  }
+
+  gst_init (&argc, &argv);
+  gtk_init (&argc, &argv);
+
+  /* prepare tail of pipeline */
+  pipeline = gst_pipeline_new ("audiomix");
+  mix = gst_element_factory_make ("adder", NULL);
+  convert = gst_element_factory_make ("audioconvert", NULL);
+  sink = gst_element_factory_make ("autoaudiosink", NULL);
+  gst_bin_add_many (GST_BIN (pipeline), mix, convert, sink, NULL);
+  gst_element_link_many (mix, convert, sink, NULL);
+
+  /* prepare mixer channel strips */
+  make_mixer_channel (pipeline, mix, argv[1]);
+  make_mixer_channel (pipeline, mix, argv[2]);
+
+  /* setup message handling */
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+  g_signal_connect (bus, "message::error", (GCallback) message_received,
+      pipeline);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received,
+      pipeline);
+  g_signal_connect (bus, "message::eos", (GCallback) eos_message_received,
+      pipeline);
+
+  /* setup GUI */
+  setup_gui (pipeline, argv[1], argv[2]);
+
+  /* go to main loop */
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  gtk_main ();
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+
+  return 0;
+}
similarity index 95%
rename from gst-libs/gst/audio/testchannels.c
rename to tests/examples/audio/testchannels.c
index 53ca51d..691bb58 100644 (file)
@@ -17,8 +17,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include "multichannel.c"
-#include "audio-enumtypes.c"
+#include <gst/audio/multichannel.h>
+#include <gst/audio/audio-enumtypes.h>
 
 gint
 main (gint argc, gchar * argv[])
similarity index 98%
rename from tests/examples/volume/volume.c
rename to tests/examples/audio/volume.c
index 59e4981..d5bf9ed 100644 (file)
@@ -30,8 +30,8 @@
 #include <gtk/gtk.h>
 
 /* global pointer for the scale widget */
-GtkWidget *elapsed;
-GtkWidget *scale;
+static GtkWidget *elapsed;
+static GtkWidget *scale;
 
 #ifndef M_LN10
 #define M_LN10 (log(10.0))
index 35aaf2b..5f28d34 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -86,8 +87,8 @@ am_addstream_OBJECTS = addstream-addstream.$(OBJEXT)
 addstream_OBJECTS = $(am_addstream_OBJECTS)
 am__DEPENDENCIES_1 =
 addstream_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 addstream_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(addstream_CFLAGS) \
@@ -126,21 +127,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(addstream_SOURCES) $(codec_select_SOURCES) \
        $(sprinkle_SOURCES) $(sprinkle2_SOURCES) $(sprinkle3_SOURCES)
@@ -209,6 +210,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -269,6 +271,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -278,9 +281,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -303,6 +309,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -375,10 +382,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -412,7 +422,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -491,19 +500,19 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-addstream$(EXEEXT): $(addstream_OBJECTS) $(addstream_DEPENDENCIES) 
+addstream$(EXEEXT): $(addstream_OBJECTS) $(addstream_DEPENDENCIES) $(EXTRA_addstream_DEPENDENCIES) 
        @rm -f addstream$(EXEEXT)
        $(AM_V_CCLD)$(addstream_LINK) $(addstream_OBJECTS) $(addstream_LDADD) $(LIBS)
-codec-select$(EXEEXT): $(codec_select_OBJECTS) $(codec_select_DEPENDENCIES) 
+codec-select$(EXEEXT): $(codec_select_OBJECTS) $(codec_select_DEPENDENCIES) $(EXTRA_codec_select_DEPENDENCIES) 
        @rm -f codec-select$(EXEEXT)
        $(AM_V_CCLD)$(codec_select_LINK) $(codec_select_OBJECTS) $(codec_select_LDADD) $(LIBS)
-sprinkle$(EXEEXT): $(sprinkle_OBJECTS) $(sprinkle_DEPENDENCIES) 
+sprinkle$(EXEEXT): $(sprinkle_OBJECTS) $(sprinkle_DEPENDENCIES) $(EXTRA_sprinkle_DEPENDENCIES) 
        @rm -f sprinkle$(EXEEXT)
        $(AM_V_CCLD)$(sprinkle_LINK) $(sprinkle_OBJECTS) $(sprinkle_LDADD) $(LIBS)
-sprinkle2$(EXEEXT): $(sprinkle2_OBJECTS) $(sprinkle2_DEPENDENCIES) 
+sprinkle2$(EXEEXT): $(sprinkle2_OBJECTS) $(sprinkle2_DEPENDENCIES) $(EXTRA_sprinkle2_DEPENDENCIES) 
        @rm -f sprinkle2$(EXEEXT)
        $(AM_V_CCLD)$(sprinkle2_LINK) $(sprinkle2_OBJECTS) $(sprinkle2_LDADD) $(LIBS)
-sprinkle3$(EXEEXT): $(sprinkle3_OBJECTS) $(sprinkle3_DEPENDENCIES) 
+sprinkle3$(EXEEXT): $(sprinkle3_OBJECTS) $(sprinkle3_DEPENDENCIES) $(EXTRA_sprinkle3_DEPENDENCIES) 
        @rm -f sprinkle3$(EXEEXT)
        $(AM_V_CCLD)$(sprinkle3_LINK) $(sprinkle3_OBJECTS) $(sprinkle3_LDADD) $(LIBS)
 
@@ -522,106 +531,93 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 addstream-addstream.o: addstream.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -MT addstream-addstream.o -MD -MP -MF $(DEPDIR)/addstream-addstream.Tpo -c -o addstream-addstream.o `test -f 'addstream.c' || echo '$(srcdir)/'`addstream.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/addstream-addstream.Tpo $(DEPDIR)/addstream-addstream.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='addstream.c' object='addstream-addstream.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='addstream.c' object='addstream-addstream.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.o `test -f 'addstream.c' || echo '$(srcdir)/'`addstream.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.o `test -f 'addstream.c' || echo '$(srcdir)/'`addstream.c
 
 addstream-addstream.obj: addstream.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -MT addstream-addstream.obj -MD -MP -MF $(DEPDIR)/addstream-addstream.Tpo -c -o addstream-addstream.obj `if test -f 'addstream.c'; then $(CYGPATH_W) 'addstream.c'; else $(CYGPATH_W) '$(srcdir)/addstream.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/addstream-addstream.Tpo $(DEPDIR)/addstream-addstream.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='addstream.c' object='addstream-addstream.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='addstream.c' object='addstream-addstream.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.obj `if test -f 'addstream.c'; then $(CYGPATH_W) 'addstream.c'; else $(CYGPATH_W) '$(srcdir)/addstream.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.obj `if test -f 'addstream.c'; then $(CYGPATH_W) 'addstream.c'; else $(CYGPATH_W) '$(srcdir)/addstream.c'; fi`
 
 codec_select-codec-select.o: codec-select.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -MT codec_select-codec-select.o -MD -MP -MF $(DEPDIR)/codec_select-codec-select.Tpo -c -o codec_select-codec-select.o `test -f 'codec-select.c' || echo '$(srcdir)/'`codec-select.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/codec_select-codec-select.Tpo $(DEPDIR)/codec_select-codec-select.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='codec-select.c' object='codec_select-codec-select.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='codec-select.c' object='codec_select-codec-select.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.o `test -f 'codec-select.c' || echo '$(srcdir)/'`codec-select.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.o `test -f 'codec-select.c' || echo '$(srcdir)/'`codec-select.c
 
 codec_select-codec-select.obj: codec-select.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -MT codec_select-codec-select.obj -MD -MP -MF $(DEPDIR)/codec_select-codec-select.Tpo -c -o codec_select-codec-select.obj `if test -f 'codec-select.c'; then $(CYGPATH_W) 'codec-select.c'; else $(CYGPATH_W) '$(srcdir)/codec-select.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/codec_select-codec-select.Tpo $(DEPDIR)/codec_select-codec-select.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='codec-select.c' object='codec_select-codec-select.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='codec-select.c' object='codec_select-codec-select.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.obj `if test -f 'codec-select.c'; then $(CYGPATH_W) 'codec-select.c'; else $(CYGPATH_W) '$(srcdir)/codec-select.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.obj `if test -f 'codec-select.c'; then $(CYGPATH_W) 'codec-select.c'; else $(CYGPATH_W) '$(srcdir)/codec-select.c'; fi`
 
 sprinkle-sprinkle.o: sprinkle.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -MT sprinkle-sprinkle.o -MD -MP -MF $(DEPDIR)/sprinkle-sprinkle.Tpo -c -o sprinkle-sprinkle.o `test -f 'sprinkle.c' || echo '$(srcdir)/'`sprinkle.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle-sprinkle.Tpo $(DEPDIR)/sprinkle-sprinkle.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sprinkle.c' object='sprinkle-sprinkle.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sprinkle.c' object='sprinkle-sprinkle.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.o `test -f 'sprinkle.c' || echo '$(srcdir)/'`sprinkle.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.o `test -f 'sprinkle.c' || echo '$(srcdir)/'`sprinkle.c
 
 sprinkle-sprinkle.obj: sprinkle.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -MT sprinkle-sprinkle.obj -MD -MP -MF $(DEPDIR)/sprinkle-sprinkle.Tpo -c -o sprinkle-sprinkle.obj `if test -f 'sprinkle.c'; then $(CYGPATH_W) 'sprinkle.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle-sprinkle.Tpo $(DEPDIR)/sprinkle-sprinkle.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sprinkle.c' object='sprinkle-sprinkle.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sprinkle.c' object='sprinkle-sprinkle.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.obj `if test -f 'sprinkle.c'; then $(CYGPATH_W) 'sprinkle.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.obj `if test -f 'sprinkle.c'; then $(CYGPATH_W) 'sprinkle.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle.c'; fi`
 
 sprinkle2-sprinkle2.o: sprinkle2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -MT sprinkle2-sprinkle2.o -MD -MP -MF $(DEPDIR)/sprinkle2-sprinkle2.Tpo -c -o sprinkle2-sprinkle2.o `test -f 'sprinkle2.c' || echo '$(srcdir)/'`sprinkle2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle2-sprinkle2.Tpo $(DEPDIR)/sprinkle2-sprinkle2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sprinkle2.c' object='sprinkle2-sprinkle2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sprinkle2.c' object='sprinkle2-sprinkle2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.o `test -f 'sprinkle2.c' || echo '$(srcdir)/'`sprinkle2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.o `test -f 'sprinkle2.c' || echo '$(srcdir)/'`sprinkle2.c
 
 sprinkle2-sprinkle2.obj: sprinkle2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -MT sprinkle2-sprinkle2.obj -MD -MP -MF $(DEPDIR)/sprinkle2-sprinkle2.Tpo -c -o sprinkle2-sprinkle2.obj `if test -f 'sprinkle2.c'; then $(CYGPATH_W) 'sprinkle2.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle2.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle2-sprinkle2.Tpo $(DEPDIR)/sprinkle2-sprinkle2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sprinkle2.c' object='sprinkle2-sprinkle2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sprinkle2.c' object='sprinkle2-sprinkle2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.obj `if test -f 'sprinkle2.c'; then $(CYGPATH_W) 'sprinkle2.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle2.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.obj `if test -f 'sprinkle2.c'; then $(CYGPATH_W) 'sprinkle2.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle2.c'; fi`
 
 sprinkle3-sprinkle3.o: sprinkle3.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -MT sprinkle3-sprinkle3.o -MD -MP -MF $(DEPDIR)/sprinkle3-sprinkle3.Tpo -c -o sprinkle3-sprinkle3.o `test -f 'sprinkle3.c' || echo '$(srcdir)/'`sprinkle3.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle3-sprinkle3.Tpo $(DEPDIR)/sprinkle3-sprinkle3.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sprinkle3.c' object='sprinkle3-sprinkle3.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sprinkle3.c' object='sprinkle3-sprinkle3.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.o `test -f 'sprinkle3.c' || echo '$(srcdir)/'`sprinkle3.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.o `test -f 'sprinkle3.c' || echo '$(srcdir)/'`sprinkle3.c
 
 sprinkle3-sprinkle3.obj: sprinkle3.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -MT sprinkle3-sprinkle3.obj -MD -MP -MF $(DEPDIR)/sprinkle3-sprinkle3.Tpo -c -o sprinkle3-sprinkle3.obj `if test -f 'sprinkle3.c'; then $(CYGPATH_W) 'sprinkle3.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle3.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle3-sprinkle3.Tpo $(DEPDIR)/sprinkle3-sprinkle3.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sprinkle3.c' object='sprinkle3-sprinkle3.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='sprinkle3.c' object='sprinkle3-sprinkle3.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.obj `if test -f 'sprinkle3.c'; then $(CYGPATH_W) 'sprinkle3.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle3.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.obj `if test -f 'sprinkle3.c'; then $(CYGPATH_W) 'sprinkle3.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle3.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -725,10 +721,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 2bcc902..820a608 100644 (file)
@@ -6,7 +6,9 @@ EXTRA_DIST = gstcapslist.h
 noinst_PROGRAMS = $(examples)
 
 LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+       $(GST_BASE_LIBS) \
        $(GST_LIBS)
 AM_CFLAGS = -I$(top_builddir)/gst-libs \
        $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_BASE_CFLAGS) \
        $(GST_CFLAGS)
index ff48da8..a5a84a6 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -87,9 +88,9 @@ encoding_OBJECTS = $(am_encoding_OBJECTS)
 encoding_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 encoding_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
-       $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+       $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -101,21 +102,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(encoding_SOURCES)
 DIST_SOURCES = $(encoding_SOURCES)
@@ -182,6 +183,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -242,6 +244,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -251,9 +254,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -276,6 +282,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -348,10 +355,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -385,7 +395,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -410,10 +419,12 @@ examples = encoding
 encoding_SOURCES = gstcapslist.c encoding.c
 EXTRA_DIST = gstcapslist.h
 LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+       $(GST_BASE_LIBS) \
        $(GST_LIBS)
 
 AM_CFLAGS = -I$(top_builddir)/gst-libs \
        $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_BASE_CFLAGS) \
        $(GST_CFLAGS)
 
 all: all-am
@@ -459,7 +470,7 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-encoding$(EXEEXT): $(encoding_OBJECTS) $(encoding_DEPENDENCIES) 
+encoding$(EXEEXT): $(encoding_OBJECTS) $(encoding_DEPENDENCIES) $(EXTRA_encoding_DEPENDENCIES) 
        @rm -f encoding$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(encoding_OBJECTS) $(encoding_LDADD) $(LIBS)
 
@@ -475,26 +486,23 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -598,10 +606,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 89674ce..4c4865c 100644 (file)
@@ -395,8 +395,10 @@ main (int argc, char **argv)
   GstEncodingProfile *prof;
   gchar *inputuri;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   ctx = g_option_context_new ("- encode URIs with GstProfile and encodebin");
   g_option_context_add_main_entries (ctx, options, NULL);
@@ -501,7 +503,7 @@ main (int argc, char **argv)
       return 1;
     }
 
-    /* Trancode file */
+    /* Transcode file */
     transcode_file (inputuri, outputuri, prof);
 
     /* cleanup */
diff --git a/tests/examples/fft/Makefile.am b/tests/examples/fft/Makefile.am
new file mode 100644 (file)
index 0000000..c5a2d96
--- /dev/null
@@ -0,0 +1,8 @@
+
+noinst_PROGRAMS = fftrange
+fftrange_SOURCES = fftrange.c
+fftrange_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+fftrange_LDADD = \
+       $(top_builddir)/gst-libs/gst/fft/libgstfft-$(GST_MAJORMINOR).la \
+       $(GST_LIBS)
+
similarity index 82%
rename from tests/examples/volume/Makefile.in
rename to tests/examples/fft/Makefile.in
index 5167c40..777c336 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,8 +34,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-@HAVE_GTK_TRUE@noinst_PROGRAMS = volume$(EXEEXT)
-subdir = tests/examples/volume
+noinst_PROGRAMS = fftrange$(EXEEXT)
+subdir = tests/examples/fft
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -81,18 +82,17 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
-am__volume_SOURCES_DIST = volume.c
-@HAVE_GTK_TRUE@am_volume_OBJECTS = volume-volume.$(OBJEXT)
-volume_OBJECTS = $(am_volume_OBJECTS)
+am_fftrange_OBJECTS = fftrange-fftrange.$(OBJEXT)
+fftrange_OBJECTS = $(am_fftrange_OBJECTS)
 am__DEPENDENCIES_1 =
-@HAVE_GTK_TRUE@volume_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-@HAVE_GTK_TRUE@        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+fftrange_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-$(GST_MAJORMINOR).la \
+       $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-volume_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(volume_CFLAGS) $(CFLAGS) \
-       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+fftrange_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(fftrange_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -103,24 +103,24 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(volume_SOURCES)
-DIST_SOURCES = $(am__volume_SOURCES_DIST)
+SOURCES = $(fftrange_SOURCES)
+DIST_SOURCES = $(fftrange_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -184,6 +184,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -244,6 +245,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -253,9 +255,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -278,6 +283,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -350,10 +356,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -387,7 +396,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -408,9 +416,12 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-@HAVE_GTK_TRUE@volume_SOURCES = volume.c
-@HAVE_GTK_TRUE@volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
-@HAVE_GTK_TRUE@volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+fftrange_SOURCES = fftrange.c
+fftrange_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+fftrange_LDADD = \
+       $(top_builddir)/gst-libs/gst/fft/libgstfft-$(GST_MAJORMINOR).la \
+       $(GST_LIBS)
+
 all: all-am
 
 .SUFFIXES:
@@ -424,9 +435,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/volume/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/fft/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu tests/examples/volume/Makefile
+         $(AUTOMAKE) --gnu tests/examples/fft/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -454,9 +465,9 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-volume$(EXEEXT): $(volume_OBJECTS) $(volume_DEPENDENCIES) 
-       @rm -f volume$(EXEEXT)
-       $(AM_V_CCLD)$(volume_LINK) $(volume_OBJECTS) $(volume_LDADD) $(LIBS)
+fftrange$(EXEEXT): $(fftrange_OBJECTS) $(fftrange_DEPENDENCIES) $(EXTRA_fftrange_DEPENDENCIES) 
+       @rm -f fftrange$(EXEEXT)
+       $(AM_V_CCLD)$(fftrange_LINK) $(fftrange_OBJECTS) $(fftrange_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -464,47 +475,42 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volume-volume.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fftrange-fftrange.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-volume-volume.o: volume.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.o -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='volume.c' object='volume-volume.o' libtool=no @AMDEPBACKSLASH@
+fftrange-fftrange.o: fftrange.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -MT fftrange-fftrange.o -MD -MP -MF $(DEPDIR)/fftrange-fftrange.Tpo -c -o fftrange-fftrange.o `test -f 'fftrange.c' || echo '$(srcdir)/'`fftrange.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/fftrange-fftrange.Tpo $(DEPDIR)/fftrange-fftrange.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fftrange.c' object='fftrange-fftrange.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -c -o fftrange-fftrange.o `test -f 'fftrange.c' || echo '$(srcdir)/'`fftrange.c
 
-volume-volume.obj: volume.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.obj -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='volume.c' object='volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+fftrange-fftrange.obj: fftrange.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -MT fftrange-fftrange.obj -MD -MP -MF $(DEPDIR)/fftrange-fftrange.Tpo -c -o fftrange-fftrange.obj `if test -f 'fftrange.c'; then $(CYGPATH_W) 'fftrange.c'; else $(CYGPATH_W) '$(srcdir)/fftrange.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/fftrange-fftrange.Tpo $(DEPDIR)/fftrange-fftrange.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fftrange.c' object='fftrange-fftrange.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -c -o fftrange-fftrange.obj `if test -f 'fftrange.c'; then $(CYGPATH_W) 'fftrange.c'; else $(CYGPATH_W) '$(srcdir)/fftrange.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -608,10 +614,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/fft/fftrange.c b/tests/examples/fft/fftrange.c
new file mode 100644 (file)
index 0000000..956f4a3
--- /dev/null
@@ -0,0 +1,184 @@
+/* GStreamer
+ * (c) 2011 Stefan Kost <ensonic@users.sf.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <stdio.h>
+#include <gst/fft/gstffts16.h>
+#include <gst/fft/gstffts32.h>
+#include <gst/fft/gstfftf32.h>
+#include <gst/fft/gstfftf64.h>
+
+/* effectively max range seems to be 1/4 of what it should be */
+
+#define MAKE_I_TEST(_g_,_G_,_t_,_T_,_f_)                        \
+static void                                                     \
+test_##_t_ (const gchar *test_name, gint num_freq, gint window) \
+{                                                               \
+  GstFFT ##_T_ *ctx;                                            \
+  GstFFT ##_T_ ##Complex *fdata;                                \
+  _g_ *adata;                                                   \
+  _g_ maxfr = 0, maxfi = 0;                                     \
+  gint num_samples = num_freq * 2 - 2;                          \
+  gint s, f;                                                    \
+                                                                \
+  ctx = gst_fft_ ##_t_ ##_new (num_samples, FALSE);             \
+  fdata = g_new (GstFFT ##_T_ ##Complex, num_freq);             \
+  adata = g_new (_g_, num_samples);                             \
+                                                                \
+  for (s = 0; s < num_samples;) {                               \
+    adata[s++]=G_MIN##_G_;                                      \
+    adata[s++]=G_MAX##_G_;                                      \
+  }                                                             \
+                                                                \
+  gst_fft_ ##_t_ ##_window (ctx, adata, window);                \
+  gst_fft_ ##_t_ ##_fft (ctx, adata, fdata);                    \
+                                                                \
+  for (f = 0; f < num_freq; f++) {                              \
+    if (fdata[1+f].r > maxfr)                                   \
+      maxfr = fdata[1+f].r;                                     \
+    if (fdata[1+f].i > maxfi)                                   \
+      maxfi = fdata[1+f].i;                                     \
+  }                                                             \
+                                                                \
+  printf (#_t_" %-15s: maxfr: %"_f_" %10.5f maxfi: %"_f_" %10.5f\n",\
+    test_name,                                                  \
+    maxfr, (gfloat)G_MAX##_G_/maxfr,                            \
+    maxfi, (gfloat)G_MAX##_G_/maxfi);                           \
+                                                                \
+  gst_fft_ ##_t_ ##_free (ctx);                                 \
+  g_free (fdata);                                               \
+  g_free (adata);                                               \
+}
+
+MAKE_I_TEST (gint16, INT16, s16, S16, "6d");
+MAKE_I_TEST (gint32, INT32, s32, S32, "9d");
+
+#define MAKE_F_TEST(_g_,_G_,_t_,_T_,_f_)                        \
+static void                                                     \
+test_##_t_ (const gchar *test_name, gint num_freq, gint window) \
+{                                                               \
+  GstFFT ##_T_ *ctx;                                            \
+  GstFFT ##_T_ ##Complex *fdata;                                \
+  _g_ *adata;                                                   \
+  _g_ maxfr = 0, maxfi = 0;                                     \
+  gint num_samples = num_freq * 2 - 2;                          \
+  gint s, f;                                                    \
+                                                                \
+  ctx = gst_fft_ ##_t_ ##_new (num_samples, FALSE);             \
+  fdata = g_new (GstFFT ##_T_ ##Complex, num_freq);             \
+  adata = g_new (_g_, num_samples);                             \
+                                                                \
+  for (s = 0; s < num_samples;) {                               \
+    adata[s++]=-1.0;                                            \
+    adata[s++]=+1.0;                                            \
+  }                                                             \
+                                                                \
+  gst_fft_ ##_t_ ##_window (ctx, adata, window);                \
+  gst_fft_ ##_t_ ##_fft (ctx, adata, fdata);                    \
+                                                                \
+  for (f = 0; f < num_freq; f++) {                              \
+    if (fdata[1+f].r > maxfr)                                   \
+      maxfr = fdata[1+f].r;                                     \
+    if (fdata[1+f].i > maxfi)                                   \
+      maxfi = fdata[1+f].i;                                     \
+  }                                                             \
+                                                                \
+  printf (#_t_" %-15s: maxfr: %"_f_" %10.5f maxfi: %"_f_" %10.5f\n",\
+    test_name,                                                  \
+    maxfr, (gfloat)1.0/maxfr,                                   \
+    maxfi, (gfloat)1.0/maxfi);                                  \
+                                                                \
+  gst_fft_ ##_t_ ##_free (ctx);                                 \
+  g_free (fdata);                                               \
+  g_free (adata);                                               \
+}
+
+MAKE_F_TEST (gfloat, FLOAT, f32, F32, "10.5f");
+MAKE_F_TEST (gdouble, DOUBLE, f64, F64, "10.5f");
+
+gint
+main (gint argc, gchar * argv[])
+{
+  gint num_bands;
+
+  gst_init (&argc, &argv);
+
+  num_bands = 200;
+  test_s16 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_s16 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_s16 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_s16 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_s16 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("");
+
+  num_bands = 300;
+  test_s16 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_s16 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_s16 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_s16 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_s16 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("\n");
+
+  num_bands = 200;
+  test_s32 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_s32 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_s32 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_s32 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_s32 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("");
+
+  num_bands = 300;
+  test_s32 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_s32 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_s32 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_s32 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_s32 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("\n");
+
+  num_bands = 200;
+  test_f32 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_f32 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_f32 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_f32 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_f32 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("");
+
+  num_bands = 300;
+  test_f32 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_f32 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_f32 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_f32 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_f32 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("\n");
+
+  num_bands = 200;
+  test_f64 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_f64 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_f64 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_f64 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_f64 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("");
+
+  num_bands = 300;
+  test_f64 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+  test_f64 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+  test_f64 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+  test_f64 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+  test_f64 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+  puts ("\n");
+}
index fb72052..28c5d6f 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -90,8 +91,8 @@ am__DEPENDENCIES_1 =
 @HAVE_GTK_TRUE@@USE_GIO_TRUE@  $(am__DEPENDENCIES_1) \
 @HAVE_GTK_TRUE@@USE_GIO_TRUE@  $(am__DEPENDENCIES_1) \
 @HAVE_GTK_TRUE@@USE_GIO_TRUE@  $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 giosrc_mounting_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -107,21 +108,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(giosrc_mounting_SOURCES)
 DIST_SOURCES = $(am__giosrc_mounting_SOURCES_DIST)
@@ -188,6 +189,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -248,6 +250,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -257,9 +260,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -282,6 +288,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -354,10 +361,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -391,7 +401,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -458,7 +467,7 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-giosrc-mounting$(EXEEXT): $(giosrc_mounting_OBJECTS) $(giosrc_mounting_DEPENDENCIES) 
+giosrc-mounting$(EXEEXT): $(giosrc_mounting_OBJECTS) $(giosrc_mounting_DEPENDENCIES) $(EXTRA_giosrc_mounting_DEPENDENCIES) 
        @rm -f giosrc-mounting$(EXEEXT)
        $(AM_V_CCLD)$(giosrc_mounting_LINK) $(giosrc_mounting_OBJECTS) $(giosrc_mounting_LDADD) $(LIBS)
 
@@ -473,42 +482,37 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 giosrc_mounting-giosrc-mounting.o: giosrc-mounting.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -MT giosrc_mounting-giosrc-mounting.o -MD -MP -MF $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo -c -o giosrc_mounting-giosrc-mounting.o `test -f 'giosrc-mounting.c' || echo '$(srcdir)/'`giosrc-mounting.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo $(DEPDIR)/giosrc_mounting-giosrc-mounting.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.o `test -f 'giosrc-mounting.c' || echo '$(srcdir)/'`giosrc-mounting.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.o `test -f 'giosrc-mounting.c' || echo '$(srcdir)/'`giosrc-mounting.c
 
 giosrc_mounting-giosrc-mounting.obj: giosrc-mounting.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -MT giosrc_mounting-giosrc-mounting.obj -MD -MP -MF $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo -c -o giosrc_mounting-giosrc-mounting.obj `if test -f 'giosrc-mounting.c'; then $(CYGPATH_W) 'giosrc-mounting.c'; else $(CYGPATH_W) '$(srcdir)/giosrc-mounting.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo $(DEPDIR)/giosrc_mounting-giosrc-mounting.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.obj `if test -f 'giosrc-mounting.c'; then $(CYGPATH_W) 'giosrc-mounting.c'; else $(CYGPATH_W) '$(srcdir)/giosrc-mounting.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.obj `if test -f 'giosrc-mounting.c'; then $(CYGPATH_W) 'giosrc-mounting.c'; else $(CYGPATH_W) '$(srcdir)/giosrc-mounting.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -612,10 +616,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c72ee1f..e299e25 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -59,6 +59,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -98,8 +99,8 @@ am__DEPENDENCIES_1 =
 @HAVE_GTK_X11_TRUE@@USE_X_TRUE@        $(am__DEPENDENCIES_1) \
 @HAVE_GTK_X11_TRUE@@USE_X_TRUE@        $(am__DEPENDENCIES_1) \
 @HAVE_GTK_X11_TRUE@@USE_X_TRUE@        $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_MAJORMINOR).la
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 gtk_xoverlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(gtk_xoverlay_CFLAGS) \
@@ -142,18 +143,18 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
        $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
@@ -161,18 +162,18 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_$(V))
-am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
 am__v_CXX_0 = @echo "  CXX   " $@;
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
        $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_$(V))
-am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
 am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(gtk_xoverlay_SOURCES) $(qt_xoverlay_SOURCES) \
        $(qtgv_xoverlay_SOURCES) $(nodist_qtgv_xoverlay_SOURCES)
@@ -242,6 +243,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -302,6 +304,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -311,9 +314,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -336,6 +342,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -408,10 +415,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -445,7 +455,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -530,13 +539,13 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-gtk-xoverlay$(EXEEXT): $(gtk_xoverlay_OBJECTS) $(gtk_xoverlay_DEPENDENCIES) 
+gtk-xoverlay$(EXEEXT): $(gtk_xoverlay_OBJECTS) $(gtk_xoverlay_DEPENDENCIES) $(EXTRA_gtk_xoverlay_DEPENDENCIES) 
        @rm -f gtk-xoverlay$(EXEEXT)
        $(AM_V_CCLD)$(gtk_xoverlay_LINK) $(gtk_xoverlay_OBJECTS) $(gtk_xoverlay_LDADD) $(LIBS)
-qt-xoverlay$(EXEEXT): $(qt_xoverlay_OBJECTS) $(qt_xoverlay_DEPENDENCIES) 
+qt-xoverlay$(EXEEXT): $(qt_xoverlay_OBJECTS) $(qt_xoverlay_DEPENDENCIES) $(EXTRA_qt_xoverlay_DEPENDENCIES) 
        @rm -f qt-xoverlay$(EXEEXT)
        $(AM_V_CXXLD)$(qt_xoverlay_LINK) $(qt_xoverlay_OBJECTS) $(qt_xoverlay_LDADD) $(LIBS)
-qtgv-xoverlay$(EXEEXT): $(qtgv_xoverlay_OBJECTS) $(qtgv_xoverlay_DEPENDENCIES) 
+qtgv-xoverlay$(EXEEXT): $(qtgv_xoverlay_OBJECTS) $(qtgv_xoverlay_DEPENDENCIES) $(EXTRA_qtgv_xoverlay_DEPENDENCIES) 
        @rm -f qtgv-xoverlay$(EXEEXT)
        $(AM_V_CXXLD)$(qtgv_xoverlay_LINK) $(qtgv_xoverlay_OBJECTS) $(qtgv_xoverlay_LDADD) $(LIBS)
 
@@ -554,114 +563,100 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 gtk_xoverlay-gtk-xoverlay.o: gtk-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -MT gtk_xoverlay-gtk-xoverlay.o -MD -MP -MF $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo -c -o gtk_xoverlay-gtk-xoverlay.o `test -f 'gtk-xoverlay.c' || echo '$(srcdir)/'`gtk-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.o `test -f 'gtk-xoverlay.c' || echo '$(srcdir)/'`gtk-xoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.o `test -f 'gtk-xoverlay.c' || echo '$(srcdir)/'`gtk-xoverlay.c
 
 gtk_xoverlay-gtk-xoverlay.obj: gtk-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -MT gtk_xoverlay-gtk-xoverlay.obj -MD -MP -MF $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo -c -o gtk_xoverlay-gtk-xoverlay.obj `if test -f 'gtk-xoverlay.c'; then $(CYGPATH_W) 'gtk-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-xoverlay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.obj `if test -f 'gtk-xoverlay.c'; then $(CYGPATH_W) 'gtk-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-xoverlay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.obj `if test -f 'gtk-xoverlay.c'; then $(CYGPATH_W) 'gtk-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-xoverlay.c'; fi`
 
 .cpp.o:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
 
 .cpp.obj:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .cpp.lo:
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
 qt_xoverlay-qt-xoverlay.o: qt-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qt_xoverlay-qt-xoverlay.o -MD -MP -MF $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo -c -o qt_xoverlay-qt-xoverlay.o `test -f 'qt-xoverlay.cpp' || echo '$(srcdir)/'`qt-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo $(DEPDIR)/qt_xoverlay-qt-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.o `test -f 'qt-xoverlay.cpp' || echo '$(srcdir)/'`qt-xoverlay.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.o `test -f 'qt-xoverlay.cpp' || echo '$(srcdir)/'`qt-xoverlay.cpp
 
 qt_xoverlay-qt-xoverlay.obj: qt-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qt_xoverlay-qt-xoverlay.obj -MD -MP -MF $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo -c -o qt_xoverlay-qt-xoverlay.obj `if test -f 'qt-xoverlay.cpp'; then $(CYGPATH_W) 'qt-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qt-xoverlay.cpp'; fi`
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo $(DEPDIR)/qt_xoverlay-qt-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.obj `if test -f 'qt-xoverlay.cpp'; then $(CYGPATH_W) 'qt-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qt-xoverlay.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.obj `if test -f 'qt-xoverlay.cpp'; then $(CYGPATH_W) 'qt-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qt-xoverlay.cpp'; fi`
 
 qtgv_xoverlay-qtgv-xoverlay.o: qtgv-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-qtgv-xoverlay.o -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-qtgv-xoverlay.o `test -f 'qtgv-xoverlay.cpp' || echo '$(srcdir)/'`qtgv-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.o `test -f 'qtgv-xoverlay.cpp' || echo '$(srcdir)/'`qtgv-xoverlay.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.o `test -f 'qtgv-xoverlay.cpp' || echo '$(srcdir)/'`qtgv-xoverlay.cpp
 
 qtgv_xoverlay-qtgv-xoverlay.obj: qtgv-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-qtgv-xoverlay.obj -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-qtgv-xoverlay.obj `if test -f 'qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qtgv-xoverlay.cpp'; fi`
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.obj `if test -f 'qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qtgv-xoverlay.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.obj `if test -f 'qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qtgv-xoverlay.cpp'; fi`
 
 qtgv_xoverlay-moc_qtgv-xoverlay.o: moc_qtgv-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-moc_qtgv-xoverlay.o -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-moc_qtgv-xoverlay.o `test -f 'moc_qtgv-xoverlay.cpp' || echo '$(srcdir)/'`moc_qtgv-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.o `test -f 'moc_qtgv-xoverlay.cpp' || echo '$(srcdir)/'`moc_qtgv-xoverlay.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.o `test -f 'moc_qtgv-xoverlay.cpp' || echo '$(srcdir)/'`moc_qtgv-xoverlay.cpp
 
 qtgv_xoverlay-moc_qtgv-xoverlay.obj: moc_qtgv-xoverlay.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-moc_qtgv-xoverlay.obj -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-moc_qtgv-xoverlay.obj `if test -f 'moc_qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'moc_qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_qtgv-xoverlay.cpp'; fi`
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.obj `if test -f 'moc_qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'moc_qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_qtgv-xoverlay.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.obj `if test -f 'moc_qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'moc_qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_qtgv-xoverlay.cpp'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -765,10 +760,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c05685c..3050bd7 100644 (file)
@@ -98,8 +98,10 @@ main (int argc, char **argv)
   gulong embed_xid;
   GstStateChangeReturn sret;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   gst_init (&argc, &argv);
   gtk_init (&argc, &argv);
index aa483a7..cf8840f 100644 (file)
@@ -80,8 +80,10 @@ find_video_sink (void)
 
 int main(int argc, char *argv[])
 {
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   gst_init (&argc, &argv);
   QApplication app(argc, argv);
index d4c3c37..5dc9f17 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -85,8 +86,8 @@ am_playrec_OBJECTS = playrec-playrec.$(OBJEXT)
 playrec_OBJECTS = $(am_playrec_OBJECTS)
 am__DEPENDENCIES_1 =
 playrec_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 playrec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(playrec_CFLAGS) \
@@ -101,21 +102,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(playrec_SOURCES)
 DIST_SOURCES = $(playrec_SOURCES)
@@ -182,6 +183,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -242,6 +244,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -251,9 +254,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -276,6 +282,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -348,10 +355,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -385,7 +395,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -452,7 +461,7 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-playrec$(EXEEXT): $(playrec_OBJECTS) $(playrec_DEPENDENCIES) 
+playrec$(EXEEXT): $(playrec_OBJECTS) $(playrec_DEPENDENCIES) $(EXTRA_playrec_DEPENDENCIES) 
        @rm -f playrec$(EXEEXT)
        $(AM_V_CCLD)$(playrec_LINK) $(playrec_OBJECTS) $(playrec_LDADD) $(LIBS)
 
@@ -467,42 +476,37 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 playrec-playrec.o: playrec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -MT playrec-playrec.o -MD -MP -MF $(DEPDIR)/playrec-playrec.Tpo -c -o playrec-playrec.o `test -f 'playrec.c' || echo '$(srcdir)/'`playrec.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/playrec-playrec.Tpo $(DEPDIR)/playrec-playrec.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='playrec.c' object='playrec-playrec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='playrec.c' object='playrec-playrec.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.o `test -f 'playrec.c' || echo '$(srcdir)/'`playrec.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.o `test -f 'playrec.c' || echo '$(srcdir)/'`playrec.c
 
 playrec-playrec.obj: playrec.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -MT playrec-playrec.obj -MD -MP -MF $(DEPDIR)/playrec-playrec.Tpo -c -o playrec-playrec.obj `if test -f 'playrec.c'; then $(CYGPATH_W) 'playrec.c'; else $(CYGPATH_W) '$(srcdir)/playrec.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/playrec-playrec.Tpo $(DEPDIR)/playrec-playrec.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='playrec.c' object='playrec-playrec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='playrec.c' object='playrec-playrec.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.obj `if test -f 'playrec.c'; then $(CYGPATH_W) 'playrec.c'; else $(CYGPATH_W) '$(srcdir)/playrec.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.obj `if test -f 'playrec.c'; then $(CYGPATH_W) 'playrec.c'; else $(CYGPATH_W) '$(srcdir)/playrec.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -606,10 +610,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index c2758f5..8e5bee7 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -94,8 +95,8 @@ am__DEPENDENCIES_1 =
 jsseek_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 scrubby_SOURCES = scrubby.c
 scrubby_OBJECTS = scrubby.$(OBJEXT)
@@ -131,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = jsseek.c scrubby.c seek.c stepping.c stepping2.c
 DIST_SOURCES = jsseek.c scrubby.c seek.c stepping.c stepping2.c
@@ -212,6 +213,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -272,6 +274,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -281,9 +284,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -306,6 +312,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -378,10 +385,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -415,7 +425,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -487,19 +496,19 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-jsseek$(EXEEXT): $(jsseek_OBJECTS) $(jsseek_DEPENDENCIES) 
+jsseek$(EXEEXT): $(jsseek_OBJECTS) $(jsseek_DEPENDENCIES) $(EXTRA_jsseek_DEPENDENCIES) 
        @rm -f jsseek$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(jsseek_OBJECTS) $(jsseek_LDADD) $(LIBS)
-scrubby$(EXEEXT): $(scrubby_OBJECTS) $(scrubby_DEPENDENCIES) 
+scrubby$(EXEEXT): $(scrubby_OBJECTS) $(scrubby_DEPENDENCIES) $(EXTRA_scrubby_DEPENDENCIES) 
        @rm -f scrubby$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(scrubby_OBJECTS) $(scrubby_LDADD) $(LIBS)
-seek$(EXEEXT): $(seek_OBJECTS) $(seek_DEPENDENCIES) 
+seek$(EXEEXT): $(seek_OBJECTS) $(seek_DEPENDENCIES) $(EXTRA_seek_DEPENDENCIES) 
        @rm -f seek$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(seek_OBJECTS) $(seek_LDADD) $(LIBS)
-stepping$(EXEEXT): $(stepping_OBJECTS) $(stepping_DEPENDENCIES) 
+stepping$(EXEEXT): $(stepping_OBJECTS) $(stepping_DEPENDENCIES) $(EXTRA_stepping_DEPENDENCIES) 
        @rm -f stepping$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(stepping_OBJECTS) $(stepping_LDADD) $(LIBS)
-stepping2$(EXEEXT): $(stepping2_OBJECTS) $(stepping2_DEPENDENCIES) 
+stepping2$(EXEEXT): $(stepping2_OBJECTS) $(stepping2_DEPENDENCIES) $(EXTRA_stepping2_DEPENDENCIES) 
        @rm -f stepping2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(stepping2_OBJECTS) $(stepping2_LDADD) $(LIBS)
 
@@ -518,26 +527,23 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -641,10 +647,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index ec74cc8..fd16c54 100644 (file)
 GST_DEBUG_CATEGORY_STATIC (seek_debug);
 #define GST_CAT_DEFAULT (seek_debug)
 
-#if (!GTK_CHECK_VERSION(2, 23, 0) || GTK_CHECK_VERSION(2, 90, 0)) && !GTK_CHECK_VERSION(2, 91, 1)
-#define gtk_combo_box_text_new gtk_combo_box_new_text
-#define gtk_combo_box_text_append_text gtk_combo_box_append_text
-#define gtk_combo_box_text_remove gtk_combo_box_remove_text
-#define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX
-#endif
-
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
-  *a = w->allocation;
-}
-#endif
-
 /* configuration */
 
 //#define SOURCE "filesrc"
@@ -1574,6 +1559,7 @@ stop_cb (GtkButton * button, gpointer data)
 
     state = STOP_STATE;
     gtk_statusbar_push (GTK_STATUSBAR (statusbar), status_id, "Stopped");
+    gtk_widget_queue_draw (video_window);
 
     is_live = FALSE;
     buffering = FALSE;
@@ -2469,19 +2455,17 @@ bus_sync_handler (GstBus * bus, GstMessage * message, GstPipeline * data)
 #endif
 
 static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
+draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
 {
   if (state < GST_STATE_PAUSED) {
-    GtkAllocation allocation;
-    GdkWindow *window = gtk_widget_get_window (widget);
-    cairo_t *cr;
+    int width, height;
 
-    gtk_widget_get_allocation (widget, &allocation);
-    cr = gdk_cairo_create (window);
+    width = gtk_widget_get_allocated_width (widget);
+    height = gtk_widget_get_allocated_height (widget);
     cairo_set_source_rgb (cr, 0, 0, 0);
-    cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
+    cairo_rectangle (cr, 0, 0, width, height);
     cairo_fill (cr);
-    cairo_destroy (cr);
+    return TRUE;
   }
   return FALSE;
 }
@@ -2489,24 +2473,16 @@ handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
 static void
 realize_cb (GtkWidget * widget, gpointer data)
 {
-#if GTK_CHECK_VERSION(2,18,0)
-  {
-    GdkWindow *window = gtk_widget_get_window (widget);
+  GdkWindow *window = gtk_widget_get_window (widget);
 
-    /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
-     * as well */
-    if (!gdk_window_ensure_native (window))
-      g_error ("Couldn't create native window needed for GstXOverlay!");
-  }
-#endif
+  /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
+   * as well */
+  if (!gdk_window_ensure_native (window))
+    g_error ("Couldn't create native window needed for GstXOverlay!");
 
 #ifdef HAVE_X
-  {
-    GdkWindow *window = gtk_widget_get_window (video_window);
-
-    embed_xid = GDK_WINDOW_XID (window);
-    g_print ("Window realize: video window XID = %lu\n", embed_xid);
-  }
+  embed_xid = GDK_WINDOW_XID (window);
+  g_print ("Window realize: video window XID = %lu\n", embed_xid);
 #endif
 }
 
@@ -2696,8 +2672,10 @@ main (int argc, char **argv)
   GOptionContext *ctx;
   GError *err = NULL;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   ctx = g_option_context_new ("- test seeking in gsteamer");
   g_option_context_add_main_entries (ctx, options, NULL);
@@ -2754,8 +2732,7 @@ main (int argc, char **argv)
   /* initialize gui elements ... */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   video_window = gtk_drawing_area_new ();
-  g_signal_connect (video_window, "expose-event",
-      G_CALLBACK (handle_expose_cb), NULL);
+  g_signal_connect (video_window, "draw", G_CALLBACK (draw_cb), NULL);
   g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), NULL);
   gtk_widget_set_double_buffered (video_window, FALSE);
 
index c9a02f4..501d559 100644 (file)
@@ -463,8 +463,10 @@ main (int argc, char **argv)
   GOptionContext *ctx;
   GError *err = NULL;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   ctx = g_option_context_new ("seek");
   g_option_context_add_main_entries (ctx, options, NULL);
index 8bf0818..60c0997 100644 (file)
 #include <gst/gst.h>
 #include <string.h>
 
-#ifdef HAVE_X
+#include <gdk/gdk.h>
+#if defined (GDK_WINDOWING_X11)
 #include <gdk/gdkx.h>
+#elif defined (GDK_WINDOWING_WIN32)
+#include <gdk/gdkwin32.h>
 #endif
-#include <gst/interfaces/xoverlay.h>
 
-#if (!GTK_CHECK_VERSION(2, 23, 0) || GTK_CHECK_VERSION(2, 90, 0)) && !GTK_CHECK_VERSION(2, 91, 1)
-#define gtk_combo_box_text_new gtk_combo_box_new_text
-#define gtk_combo_box_text_append_text gtk_combo_box_append_text
-#define gtk_combo_box_text_remove gtk_combo_box_remove_text
-#define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX
-#endif
+#include <gst/interfaces/xoverlay.h>
 
 GST_DEBUG_CATEGORY_STATIC (seek_debug);
 #define GST_CAT_DEFAULT (seek_debug)
 
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
-  *a = w->allocation;
-}
-#endif
-
 /* configuration */
 
-//#define SOURCE "filesrc"
-#define SOURCE "gnomevfssrc"
+#define SOURCE "filesrc"
 
-#define ASINK "alsasink"
-//#define ASINK "osssink"
-
-#define VSINK "xvimagesink"
-//#define VSINK "sdlvideosink"
-//#define VSINK "ximagesink"
-//#define VSINK "aasink"
-//#define VSINK "cacasink"
+static gchar *opt_audiosink_str;        /* NULL */
+static gchar *opt_videosink_str;        /* NULL */
 
 #define FILL_INTERVAL 100
 //#define UPDATE_INTERVAL 500
@@ -167,6 +149,16 @@ gst_element_factory_make_or_warn (const gchar * type, const gchar * name)
 {
   GstElement *element = gst_element_factory_make (type, name);
 
+#ifndef GST_DISABLE_PARSE
+  if (!element) {
+    /* Try parsing it as a pipeline description */
+    element = gst_parse_bin_from_description (type, TRUE, NULL);
+    if (element) {
+      gst_element_set_name (element, name);
+    }
+  }
+#endif
+
   if (!element) {
     g_warning ("Failed to create element %s of type %s", name, type);
   }
@@ -219,7 +211,7 @@ make_mod_pipeline (const gchar * location)
 
   src = gst_element_factory_make_or_warn (SOURCE, "src");
   decoder = gst_element_factory_make_or_warn ("modplug", "decoder");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
   //g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
 
   g_object_set (G_OBJECT (src), "location", location, NULL);
@@ -254,7 +246,7 @@ make_dv_pipeline (const gchar * location)
   demux = gst_element_factory_make_or_warn ("dvdemux", "demuxer");
   v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
   decoder = gst_element_factory_make_or_warn ("ffdec_dvvideo", "decoder");
-  videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
   a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
   audiosink = gst_element_factory_make_or_warn ("alsasink", "a_sink");
 
@@ -295,7 +287,7 @@ make_wav_pipeline (const gchar * location)
 
   src = gst_element_factory_make_or_warn (SOURCE, "src");
   decoder = gst_element_factory_make_or_warn ("wavparse", "decoder");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
 
   g_object_set (G_OBJECT (src), "location", location, NULL);
 
@@ -327,7 +319,7 @@ make_flac_pipeline (const gchar * location)
 
   src = gst_element_factory_make_or_warn (SOURCE, "src");
   decoder = gst_element_factory_make_or_warn ("flacdec", "decoder");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
   g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
 
   g_object_set (G_OBJECT (src), "location", location, NULL);
@@ -359,7 +351,7 @@ make_sid_pipeline (const gchar * location)
 
   src = gst_element_factory_make_or_warn (SOURCE, "src");
   decoder = gst_element_factory_make_or_warn ("siddec", "decoder");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
   //g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
 
   g_object_set (G_OBJECT (src), "location", location, NULL);
@@ -426,7 +418,7 @@ make_vorbis_pipeline (const gchar * location)
   demux = gst_element_factory_make_or_warn ("oggdemux", "demux");
   decoder = gst_element_factory_make_or_warn ("vorbisdec", "decoder");
   convert = gst_element_factory_make_or_warn ("audioconvert", "convert");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
   g_object_set (G_OBJECT (audiosink), "sync", TRUE, NULL);
 
   g_object_set (G_OBJECT (src), "location", location, NULL);
@@ -473,7 +465,7 @@ make_theora_pipeline (const gchar * location)
   demux = gst_element_factory_make_or_warn ("oggdemux", "demux");
   decoder = gst_element_factory_make_or_warn ("theoradec", "decoder");
   convert = gst_element_factory_make_or_warn ("ffmpegcolorspace", "convert");
-  videosink = gst_element_factory_make_or_warn (VSINK, "sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "sink");
 
   g_object_set (G_OBJECT (src), "location", location, NULL);
 
@@ -531,7 +523,7 @@ make_vorbis_theora_pipeline (const gchar * location)
   a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
   a_decoder = gst_element_factory_make_or_warn ("vorbisdec", "a_dec");
   a_convert = gst_element_factory_make_or_warn ("audioconvert", "a_convert");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
 
   gst_bin_add (GST_BIN (pipeline), audio_bin);
 
@@ -557,7 +549,7 @@ make_vorbis_theora_pipeline (const gchar * location)
   v_convert =
       gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_convert");
   v_scale = gst_element_factory_make_or_warn ("videoscale", "v_scale");
-  videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
 
   gst_bin_add (GST_BIN (pipeline), video_bin);
 
@@ -611,7 +603,7 @@ make_avi_msmpeg4v3_mp3_pipeline (const gchar * location)
   a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
   a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
   a_convert = gst_element_factory_make_or_warn ("audioconvert", "a_convert");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
 
   gst_bin_add (GST_BIN (audio_bin), a_queue);
   gst_bin_add (GST_BIN (audio_bin), a_decoder);
@@ -636,7 +628,7 @@ make_avi_msmpeg4v3_mp3_pipeline (const gchar * location)
   v_decoder = gst_element_factory_make_or_warn ("ffdec_msmpeg4", "v_dec");
   v_convert =
       gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_convert");
-  videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
 
   gst_bin_add (GST_BIN (video_bin), v_queue);
   gst_bin_add (GST_BIN (video_bin), v_decoder);
@@ -677,7 +669,7 @@ make_mp3_pipeline (const gchar * location)
   parser = gst_element_factory_make_or_warn ("mp3parse", "parse");
   decoder = gst_element_factory_make_or_warn ("mad", "dec");
   queue = gst_element_factory_make_or_warn ("queue", "queue");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
 
   seekable_elements = g_list_prepend (seekable_elements, audiosink);
 
@@ -726,7 +718,7 @@ make_avi_pipeline (const gchar * location)
 
   audio_bin = gst_bin_new ("a_decoder_bin");
   a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
   a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
   gst_element_link (a_decoder, a_queue);
   gst_element_link (a_queue, audiosink);
@@ -747,7 +739,7 @@ make_avi_pipeline (const gchar * location)
 
   video_bin = gst_bin_new ("v_decoder_bin");
   v_decoder = gst_element_factory_make_or_warn ("ffmpegdecall", "v_dec");
-  videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
   v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
   gst_element_link (v_decoder, v_queue);
   gst_element_link (v_queue, videosink);
@@ -795,7 +787,7 @@ make_mpeg_pipeline (const gchar * location)
   audio_bin = gst_bin_new ("a_decoder_bin");
   a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
   a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
   gst_bin_add (GST_BIN (audio_bin), a_decoder);
   gst_bin_add (GST_BIN (audio_bin), a_queue);
   gst_bin_add (GST_BIN (audio_bin), audiosink);
@@ -816,7 +808,7 @@ make_mpeg_pipeline (const gchar * location)
   v_decoder = gst_element_factory_make_or_warn ("mpeg2dec", "v_dec");
   v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
   v_filter = gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_filter");
-  videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
 
   gst_bin_add (GST_BIN (video_bin), v_decoder);
   gst_bin_add (GST_BIN (video_bin), v_queue);
@@ -872,7 +864,7 @@ make_mpegnt_pipeline (const gchar * location)
   audio_bin = gst_bin_new ("a_decoder_bin");
   a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
   a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
-  audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+  audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
   //g_object_set (G_OBJECT (audiosink), "fragment", 0x00180008, NULL);
   g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
   gst_element_link (a_decoder, a_queue);
@@ -894,7 +886,7 @@ make_mpegnt_pipeline (const gchar * location)
   video_bin = gst_bin_new ("v_decoder_bin");
   v_decoder = gst_element_factory_make_or_warn ("mpeg2dec", "v_dec");
   v_filter = gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_filter");
-  videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+  videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
   gst_element_link_many (v_decoder, v_filter, videosink, NULL);
 
   gst_bin_add_many (GST_BIN (video_bin), v_decoder, v_filter, videosink, NULL);
@@ -918,11 +910,13 @@ playerbin_set_uri (GstElement * player, const gchar * location)
   gchar *uri;
 
   /* Add "file://" prefix for convenience */
-  if (g_str_has_prefix (location, "/")) {
-    uri = g_strconcat ("file://", location, NULL);
+  if (g_str_has_prefix (location, "/") || !gst_uri_is_valid (location)) {
+    uri = gst_filename_to_uri (location, NULL);
+    g_print ("Setting URI: %s\n", uri);
     g_object_set (G_OBJECT (player), "uri", uri, NULL);
     g_free (uri);
   } else {
+    g_print ("Setting URI: %s\n", location);
     g_object_set (G_OBJECT (player), "uri", location, NULL);
   }
 }
@@ -931,6 +925,7 @@ static GstElement *
 construct_playerbin (const gchar * name, const gchar * location)
 {
   GstElement *player;
+  GstElement *avsink;
 
   player = gst_element_factory_make (name, "player");
   g_assert (player);
@@ -942,6 +937,14 @@ construct_playerbin (const gchar * name, const gchar * location)
   /* force element seeking on this pipeline */
   elem_seek = TRUE;
 
+  avsink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
+  if (avsink)
+    g_object_set (player, "audio-sink", avsink, NULL);
+
+  avsink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
+  if (avsink)
+    g_object_set (player, "video-sink", avsink, NULL);
+
   return player;
 }
 
@@ -1564,6 +1567,7 @@ stop_cb (GtkButton * button, gpointer data)
 
     state = STOP_STATE;
     gtk_statusbar_push (GTK_STATUSBAR (statusbar), status_id, "Stopped");
+    gtk_widget_queue_draw (video_window);
 
     is_live = FALSE;
     buffering = FALSE;
@@ -2113,6 +2117,19 @@ message_received (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
 {
   const GstStructure *s;
 
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_ERROR:
+      GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline),
+          GST_DEBUG_GRAPH_SHOW_ALL, "seek.error");
+      break;
+    case GST_MESSAGE_WARNING:
+      GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline),
+          GST_DEBUG_GRAPH_SHOW_ALL, "seek.warning");
+      break;
+    default:
+      break;
+  }
+
   s = gst_message_get_structure (message);
   g_print ("message from \"%s\" (%s): ",
       GST_STR_NULL (GST_ELEMENT_NAME (GST_MESSAGE_SRC (message))),
@@ -2293,6 +2310,19 @@ msg_state_changed (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
     } else {
       set_update_scale (FALSE);
     }
+
+    /* dump graph for (some) pipeline state changes */
+    {
+      gchar *dump_name;
+
+      dump_name = g_strdup_printf ("seek.%s_%s",
+          gst_element_state_get_name (old), gst_element_state_get_name (new));
+
+      GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline),
+          GST_DEBUG_GRAPH_SHOW_ALL, dump_name);
+
+      g_free (dump_name);
+    }
   }
 }
 
@@ -2424,7 +2454,7 @@ msg_clock_lost (GstBus * bus, GstMessage * message, GstPipeline * data)
   }
 }
 
-#ifdef HAVE_X
+#if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
 
 static gulong embed_xid = 0;
 
@@ -2461,19 +2491,17 @@ bus_sync_handler (GstBus * bus, GstMessage * message, GstPipeline * data)
 #endif
 
 static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
+draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
 {
   if (state < GST_STATE_PAUSED) {
-    GtkAllocation allocation;
-    GdkWindow *window = gtk_widget_get_window (widget);
-    cairo_t *cr;
+    int width, height;
 
-    gtk_widget_get_allocation (widget, &allocation);
-    cr = gdk_cairo_create (window);
+    width = gtk_widget_get_allocated_width (widget);
+    height = gtk_widget_get_allocated_height (widget);
     cairo_set_source_rgb (cr, 0, 0, 0);
-    cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
+    cairo_rectangle (cr, 0, 0, width, height);
     cairo_fill (cr);
-    cairo_destroy (cr);
+    return TRUE;
   }
   return FALSE;
 }
@@ -2481,24 +2509,19 @@ handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
 static void
 realize_cb (GtkWidget * widget, gpointer data)
 {
-#if GTK_CHECK_VERSION(2,18,0)
-  {
-    GdkWindow *window = gtk_widget_get_window (widget);
+  GdkWindow *window = gtk_widget_get_window (widget);
 
-    /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
-     * as well */
-    if (!gdk_window_ensure_native (window))
-      g_error ("Couldn't create native window needed for GstXOverlay!");
-  }
-#endif
-
-#ifdef HAVE_X
-  {
-    GdkWindow *window = gtk_widget_get_window (video_window);
+  /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
+   * as well */
+  if (!gdk_window_ensure_native (window))
+    g_error ("Couldn't create native window needed for GstXOverlay!");
 
-    embed_xid = GDK_WINDOW_XID (window);
-    g_print ("Window realize: video window XID = %lu\n", embed_xid);
-  }
+#if defined (GDK_WINDOWING_WIN32)
+  embed_xid = GDK_WINDOW_HWND (window);
+  g_print ("Window realize: video window HWND = %lu\n", embed_xid);
+#else
+  embed_xid = GDK_WINDOW_XID (window);
+  g_print ("Window realize: video window XID = %lu\n", embed_xid);
 #endif
 }
 
@@ -2530,7 +2553,7 @@ connect_bus_signals (GstElement * pipeline)
 {
   GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
 
-#ifdef HAVE_X
+#if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
   /* handle prepare-xwindow-id element message synchronously */
   gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler,
       pipeline);
@@ -2637,19 +2660,25 @@ main (int argc, char **argv)
   GtkWidget *scrub_checkbox, *play_scrub_checkbox;
   GtkWidget *rate_label, *volume_label;
   GOptionEntry options[] = {
+    {"audiosink", '\0', 0, G_OPTION_ARG_STRING, &opt_audiosink_str,
+        "audio sink to use (default: " DEFAULT_AUDIOSINK ")", NULL},
     {"stats", 's', 0, G_OPTION_ARG_NONE, &stats,
         "Show pad stats", NULL},
     {"elem", 'e', 0, G_OPTION_ARG_NONE, &elem_seek,
         "Seek on elements instead of pads", NULL},
     {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
         "Verbose properties", NULL},
+    {"videosink", '\0', 0, G_OPTION_ARG_STRING, &opt_videosink_str,
+        "video sink to use (default: " DEFAULT_VIDEOSINK ")", NULL},
     {NULL}
   };
   GOptionContext *ctx;
   GError *err = NULL;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   ctx = g_option_context_new ("- test seeking in gsteamer");
   g_option_context_add_main_entries (ctx, options, NULL);
@@ -2661,6 +2690,12 @@ main (int argc, char **argv)
     exit (1);
   }
 
+  if (opt_audiosink_str == NULL)
+    opt_audiosink_str = g_strdup (DEFAULT_AUDIOSINK);
+
+  if (opt_videosink_str == NULL)
+    opt_videosink_str = g_strdup (DEFAULT_VIDEOSINK);
+
   GST_DEBUG_CATEGORY_INIT (seek_debug, "seek", 0, "seek example");
 
   if (argc != 3) {
@@ -2698,8 +2733,7 @@ main (int argc, char **argv)
   /* initialize gui elements ... */
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   video_window = gtk_drawing_area_new ();
-  g_signal_connect (video_window, "expose-event",
-      G_CALLBACK (handle_expose_cb), NULL);
+  g_signal_connect (video_window, "draw", G_CALLBACK (draw_cb), NULL);
   g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), NULL);
   gtk_widget_set_double_buffered (video_window, FALSE);
 
@@ -2970,7 +3004,7 @@ main (int argc, char **argv)
    * asks for the XID of the window to render onto */
   gtk_widget_realize (window);
 
-#ifdef HAVE_X
+#if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
   /* we should have the XID now */
   g_assert (embed_xid != 0);
 #endif
index 94614d1..cfdc1c0 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -86,8 +87,8 @@ PROGRAMS = $(noinst_PROGRAMS)
 snapshot_SOURCES = snapshot.c
 snapshot_OBJECTS = snapshot.$(OBJEXT)
 snapshot_LDADD = $(LDADD)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -99,21 +100,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = snapshot.c
 DIST_SOURCES = snapshot.c
@@ -180,6 +181,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -240,6 +242,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -249,9 +252,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -274,6 +280,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -346,10 +353,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -383,7 +393,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -450,7 +459,7 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-snapshot$(EXEEXT): $(snapshot_OBJECTS) $(snapshot_DEPENDENCIES) 
+snapshot$(EXEEXT): $(snapshot_OBJECTS) $(snapshot_DEPENDENCIES) $(EXTRA_snapshot_DEPENDENCIES) 
        @rm -f snapshot$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(snapshot_OBJECTS) $(snapshot_LDADD) $(LIBS)
 
@@ -465,26 +474,23 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -588,10 +594,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 6132cdc..14d6d7d 100644 (file)
@@ -5,6 +5,5 @@ probe_CFLAGS  = $(GST_PLUGINS_BASE_CFLAGS) \
                $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 probe_LDFLAGS = \
                $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
-               $(GST_PLUGINS_BASE_LIBS) \
                $(GST_BASE_LIBS) $(GST_LIBS)
 
index 1fdc2ea..28a1854 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -56,6 +56,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -84,8 +85,8 @@ PROGRAMS = $(noinst_PROGRAMS)
 am_probe_OBJECTS = probe-probe.$(OBJEXT)
 probe_OBJECTS = $(am_probe_OBJECTS)
 probe_LDADD = $(LDADD)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 probe_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(probe_CFLAGS) $(CFLAGS) \
@@ -100,21 +101,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(probe_SOURCES)
 DIST_SOURCES = $(probe_SOURCES)
@@ -181,6 +182,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -241,6 +243,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -250,9 +253,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -275,6 +281,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -347,10 +354,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -384,7 +394,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -411,7 +420,6 @@ probe_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 
 probe_LDFLAGS = \
                $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
-               $(GST_PLUGINS_BASE_LIBS) \
                $(GST_BASE_LIBS) $(GST_LIBS)
 
 all: all-am
@@ -457,7 +465,7 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-probe$(EXEEXT): $(probe_OBJECTS) $(probe_DEPENDENCIES) 
+probe$(EXEEXT): $(probe_OBJECTS) $(probe_DEPENDENCIES) $(EXTRA_probe_DEPENDENCIES) 
        @rm -f probe$(EXEEXT)
        $(AM_V_CCLD)$(probe_LINK) $(probe_OBJECTS) $(probe_LDADD) $(LIBS)
 
@@ -472,42 +480,37 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 probe-probe.o: probe.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -MT probe-probe.o -MD -MP -MF $(DEPDIR)/probe-probe.Tpo -c -o probe-probe.o `test -f 'probe.c' || echo '$(srcdir)/'`probe.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/probe-probe.Tpo $(DEPDIR)/probe-probe.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='probe.c' object='probe-probe.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='probe.c' object='probe-probe.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.o `test -f 'probe.c' || echo '$(srcdir)/'`probe.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.o `test -f 'probe.c' || echo '$(srcdir)/'`probe.c
 
 probe-probe.obj: probe.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -MT probe-probe.obj -MD -MP -MF $(DEPDIR)/probe-probe.Tpo -c -o probe-probe.obj `if test -f 'probe.c'; then $(CYGPATH_W) 'probe.c'; else $(CYGPATH_W) '$(srcdir)/probe.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/probe-probe.Tpo $(DEPDIR)/probe-probe.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='probe.c' object='probe-probe.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='probe.c' object='probe-probe.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.obj `if test -f 'probe.c'; then $(CYGPATH_W) 'probe.c'; else $(CYGPATH_W) '$(srcdir)/probe.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.obj `if test -f 'probe.c'; then $(CYGPATH_W) 'probe.c'; else $(CYGPATH_W) '$(srcdir)/probe.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -611,10 +614,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/volume/Makefile.am b/tests/examples/volume/Makefile.am
deleted file mode 100644 (file)
index 7b2f067..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-if HAVE_GTK
-noinst_PROGRAMS = volume
-volume_SOURCES = volume.c
-volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
-volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
-endif
index ca997a2..9556f5e 100644 (file)
@@ -1,4 +1,6 @@
 EXTRA_DIST = \
        623663.mts \
        hls.m3u8 \
-       partialframe.mjpeg
+       license-uris \
+       partialframe.mjpeg \
+       test.mp3
index 3502681..4cc136e 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -54,6 +54,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -78,11 +79,11 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -147,6 +148,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -207,6 +209,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -216,9 +219,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -241,6 +247,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -313,10 +320,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -350,7 +360,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -374,7 +383,9 @@ top_srcdir = @top_srcdir@
 EXTRA_DIST = \
        623663.mts \
        hls.m3u8 \
-       partialframe.mjpeg
+       license-uris \
+       partialframe.mjpeg \
+       test.mp3
 
 all: all-am
 
@@ -466,10 +477,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/files/license-uris b/tests/files/license-uris
new file mode 100644 (file)
index 0000000..651a447
--- /dev/null
@@ -0,0 +1,376 @@
+http://creativecommons.org/licenses/by/1.0/fi/
+http://creativecommons.org/licenses/by/1.0/il/
+http://creativecommons.org/licenses/by/1.0/nl/
+http://creativecommons.org/licenses/by/1.0/
+http://creativecommons.org/licenses/by/2.0/at/
+http://creativecommons.org/licenses/by/2.0/au/
+http://creativecommons.org/licenses/by/2.0/be/
+http://creativecommons.org/licenses/by/2.0/br/
+http://creativecommons.org/licenses/by/2.0/ca/
+http://creativecommons.org/licenses/by/2.0/cl/
+http://creativecommons.org/licenses/by/2.0/de/
+http://creativecommons.org/licenses/by/2.0/es/
+http://creativecommons.org/licenses/by/2.0/fr/
+http://creativecommons.org/licenses/by/2.0/hr/
+http://creativecommons.org/licenses/by/2.0/it/
+http://creativecommons.org/licenses/by/2.0/jp/
+http://creativecommons.org/licenses/by/2.0/kr/
+http://creativecommons.org/licenses/by/2.0/nl/
+http://creativecommons.org/licenses/by/2.0/pl/
+http://creativecommons.org/licenses/by/2.0/
+http://creativecommons.org/licenses/by/2.0/tw/
+http://creativecommons.org/licenses/by/2.0/uk/
+http://creativecommons.org/licenses/by/2.0/za/
+http://creativecommons.org/licenses/by/2.1/au/
+http://creativecommons.org/licenses/by/2.1/es/
+http://creativecommons.org/licenses/by/2.1/jp/
+http://creativecommons.org/licenses/by/2.5/ar/
+http://creativecommons.org/licenses/by/2.5/au/
+http://creativecommons.org/licenses/by/2.5/bg/
+http://creativecommons.org/licenses/by/2.5/br/
+http://creativecommons.org/licenses/by/2.5/ca/
+http://creativecommons.org/licenses/by/2.5/ch/
+http://creativecommons.org/licenses/by/2.5/cn/
+http://creativecommons.org/licenses/by/2.5/co/
+http://creativecommons.org/licenses/by/2.5/dk/
+http://creativecommons.org/licenses/by/2.5/es/
+http://creativecommons.org/licenses/by/2.5/hr/
+http://creativecommons.org/licenses/by/2.5/hu/
+http://creativecommons.org/licenses/by/2.5/il/
+http://creativecommons.org/licenses/by/2.5/in/
+http://creativecommons.org/licenses/by/2.5/it/
+http://creativecommons.org/licenses/by/2.5/mk/
+http://creativecommons.org/licenses/by/2.5/mt/
+http://creativecommons.org/licenses/by/2.5/mx/
+http://creativecommons.org/licenses/by/2.5/my/
+http://creativecommons.org/licenses/by/2.5/nl/
+http://creativecommons.org/licenses/by/2.5/pe/
+http://creativecommons.org/licenses/by/2.5/pl/
+http://creativecommons.org/licenses/by/2.5/pt/
+http://creativecommons.org/licenses/by/2.5/
+http://creativecommons.org/licenses/by/2.5/scotland/
+http://creativecommons.org/licenses/by/2.5/se/
+http://creativecommons.org/licenses/by/2.5/si/
+http://creativecommons.org/licenses/by/2.5/tw/
+http://creativecommons.org/licenses/by/2.5/za/
+http://creativecommons.org/licenses/by/3.0/
+http://creativecommons.org/licenses/by/3.0/us/
+http://creativecommons.org/licenses/by-nc/1.0/fi/
+http://creativecommons.org/licenses/by-nc/1.0/il/
+http://creativecommons.org/licenses/by-nc/1.0/nl/
+http://creativecommons.org/licenses/by-nc/1.0/
+http://creativecommons.org/licenses/by-nc/2.0/at/
+http://creativecommons.org/licenses/by-nc/2.0/au/
+http://creativecommons.org/licenses/by-nc/2.0/be/
+http://creativecommons.org/licenses/by-nc/2.0/br/
+http://creativecommons.org/licenses/by-nc/2.0/ca/
+http://creativecommons.org/licenses/by-nc/2.0/cl/
+http://creativecommons.org/licenses/by-nc/2.0/de/
+http://creativecommons.org/licenses/by-nc/2.0/es/
+http://creativecommons.org/licenses/by-nc/2.0/fr/
+http://creativecommons.org/licenses/by-nc/2.0/hr/
+http://creativecommons.org/licenses/by-nc/2.0/it/
+http://creativecommons.org/licenses/by-nc/2.0/jp/
+http://creativecommons.org/licenses/by-nc/2.0/kr/
+http://creativecommons.org/licenses/by-nc/2.0/nl/
+http://creativecommons.org/licenses/by-nc/2.0/pl/
+http://creativecommons.org/licenses/by-nc/2.0/
+http://creativecommons.org/licenses/by-nc/2.0/tw/
+http://creativecommons.org/licenses/by-nc/2.0/uk/
+http://creativecommons.org/licenses/by-nc/2.0/za/
+http://creativecommons.org/licenses/by-nc/2.1/au/
+http://creativecommons.org/licenses/by-nc/2.1/es/
+http://creativecommons.org/licenses/by-nc/2.1/jp/
+http://creativecommons.org/licenses/by-nc/2.5/ar/
+http://creativecommons.org/licenses/by-nc/2.5/au/
+http://creativecommons.org/licenses/by-nc/2.5/bg/
+http://creativecommons.org/licenses/by-nc/2.5/br/
+http://creativecommons.org/licenses/by-nc/2.5/ca/
+http://creativecommons.org/licenses/by-nc/2.5/ch/
+http://creativecommons.org/licenses/by-nc/2.5/cn/
+http://creativecommons.org/licenses/by-nc/2.5/co/
+http://creativecommons.org/licenses/by-nc/2.5/dk/
+http://creativecommons.org/licenses/by-nc/2.5/es/
+http://creativecommons.org/licenses/by-nc/2.5/hr/
+http://creativecommons.org/licenses/by-nc/2.5/hu/
+http://creativecommons.org/licenses/by-nc/2.5/il/
+http://creativecommons.org/licenses/by-nc/2.5/in/
+http://creativecommons.org/licenses/by-nc/2.5/it/
+http://creativecommons.org/licenses/by-nc/2.5/mk/
+http://creativecommons.org/licenses/by-nc/2.5/mt/
+http://creativecommons.org/licenses/by-nc/2.5/mx/
+http://creativecommons.org/licenses/by-nc/2.5/my/
+http://creativecommons.org/licenses/by-nc/2.5/nl/
+http://creativecommons.org/licenses/by-nc/2.5/pe/
+http://creativecommons.org/licenses/by-nc/2.5/pl/
+http://creativecommons.org/licenses/by-nc/2.5/pt/
+http://creativecommons.org/licenses/by-nc/2.5/
+http://creativecommons.org/licenses/by-nc/2.5/scotland/
+http://creativecommons.org/licenses/by-nc/2.5/se/
+http://creativecommons.org/licenses/by-nc/2.5/si/
+http://creativecommons.org/licenses/by-nc/2.5/tw/
+http://creativecommons.org/licenses/by-nc/2.5/za/
+http://creativecommons.org/licenses/by-nc/3.0/
+http://creativecommons.org/licenses/by-nc/3.0/us/
+http://creativecommons.org/licenses/by-nc-nd/2.0/at/
+http://creativecommons.org/licenses/by-nc-nd/2.0/au/
+http://creativecommons.org/licenses/by-nc-nd/2.0/be/
+http://creativecommons.org/licenses/by-nc-nd/2.0/br/
+http://creativecommons.org/licenses/by-nc-nd/2.0/ca/
+http://creativecommons.org/licenses/by-nc-nd/2.0/cl/
+http://creativecommons.org/licenses/by-nc-nd/2.0/de/
+http://creativecommons.org/licenses/by-nc-nd/2.0/es/
+http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
+http://creativecommons.org/licenses/by-nc-nd/2.0/hr/
+http://creativecommons.org/licenses/by-nc-nd/2.0/it/
+http://creativecommons.org/licenses/by-nc-nd/2.0/jp/
+http://creativecommons.org/licenses/by-nc-nd/2.0/kr/
+http://creativecommons.org/licenses/by-nc-nd/2.0/nl/
+http://creativecommons.org/licenses/by-nc-nd/2.0/pl/
+http://creativecommons.org/licenses/by-nc-nd/2.0/
+http://creativecommons.org/licenses/by-nc-nd/2.0/tw/
+http://creativecommons.org/licenses/by-nc-nd/2.0/uk/
+http://creativecommons.org/licenses/by-nc-nd/2.0/za/
+http://creativecommons.org/licenses/by-nc-nd/2.1/au/
+http://creativecommons.org/licenses/by-nc-nd/2.1/es/
+http://creativecommons.org/licenses/by-nc-nd/2.1/jp/
+http://creativecommons.org/licenses/by-nc-nd/2.5/ar/
+http://creativecommons.org/licenses/by-nc-nd/2.5/au/
+http://creativecommons.org/licenses/by-nc-nd/2.5/bg/
+http://creativecommons.org/licenses/by-nc-nd/2.5/br/
+http://creativecommons.org/licenses/by-nc-nd/2.5/ca/
+http://creativecommons.org/licenses/by-nc-nd/2.5/ch/
+http://creativecommons.org/licenses/by-nc-nd/2.5/cn/
+http://creativecommons.org/licenses/by-nc-nd/2.5/co/
+http://creativecommons.org/licenses/by-nc-nd/2.5/dk/
+http://creativecommons.org/licenses/by-nc-nd/2.5/es/
+http://creativecommons.org/licenses/by-nc-nd/2.5/hr/
+http://creativecommons.org/licenses/by-nc-nd/2.5/hu/
+http://creativecommons.org/licenses/by-nc-nd/2.5/il/
+http://creativecommons.org/licenses/by-nc-nd/2.5/in/
+http://creativecommons.org/licenses/by-nc-nd/2.5/it/
+http://creativecommons.org/licenses/by-nc-nd/2.5/mk/
+http://creativecommons.org/licenses/by-nc-nd/2.5/mt/
+http://creativecommons.org/licenses/by-nc-nd/2.5/mx/
+http://creativecommons.org/licenses/by-nc-nd/2.5/my/
+http://creativecommons.org/licenses/by-nc-nd/2.5/nl/
+http://creativecommons.org/licenses/by-nc-nd/2.5/pe/
+http://creativecommons.org/licenses/by-nc-nd/2.5/pl/
+http://creativecommons.org/licenses/by-nc-nd/2.5/pt/
+http://creativecommons.org/licenses/by-nc-nd/2.5/
+http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/
+http://creativecommons.org/licenses/by-nc-nd/2.5/se/
+http://creativecommons.org/licenses/by-nc-nd/2.5/si/
+http://creativecommons.org/licenses/by-nc-nd/2.5/tw/
+http://creativecommons.org/licenses/by-nc-nd/2.5/za/
+http://creativecommons.org/licenses/by-nc-nd/3.0/
+http://creativecommons.org/licenses/by-nc-nd/3.0/us/
+http://creativecommons.org/licenses/by-nc-sa/1.0/fi/
+http://creativecommons.org/licenses/by-nc-sa/1.0/il/
+http://creativecommons.org/licenses/by-nc-sa/1.0/nl/
+http://creativecommons.org/licenses/by-nc-sa/1.0/
+http://creativecommons.org/licenses/by-nc-sa/2.0/at/
+http://creativecommons.org/licenses/by-nc-sa/2.0/au/
+http://creativecommons.org/licenses/by-nc-sa/2.0/be/
+http://creativecommons.org/licenses/by-nc-sa/2.0/br/
+http://creativecommons.org/licenses/by-nc-sa/2.0/ca/
+http://creativecommons.org/licenses/by-nc-sa/2.0/cl/
+http://creativecommons.org/licenses/by-nc-sa/2.0/de/
+http://creativecommons.org/licenses/by-nc-sa/2.0/es/
+http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
+http://creativecommons.org/licenses/by-nc-sa/2.0/hr/
+http://creativecommons.org/licenses/by-nc-sa/2.0/it/
+http://creativecommons.org/licenses/by-nc-sa/2.0/jp/
+http://creativecommons.org/licenses/by-nc-sa/2.0/kr/
+http://creativecommons.org/licenses/by-nc-sa/2.0/nl/
+http://creativecommons.org/licenses/by-nc-sa/2.0/pl/
+http://creativecommons.org/licenses/by-nc-sa/2.0/
+http://creativecommons.org/licenses/by-nc-sa/2.0/tw/
+http://creativecommons.org/licenses/by-nc-sa/2.0/uk/
+http://creativecommons.org/licenses/by-nc-sa/2.0/za/
+http://creativecommons.org/licenses/by-nc-sa/2.1/au/
+http://creativecommons.org/licenses/by-nc-sa/2.1/es/
+http://creativecommons.org/licenses/by-nc-sa/2.1/jp/
+http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
+http://creativecommons.org/licenses/by-nc-sa/2.5/au/
+http://creativecommons.org/licenses/by-nc-sa/2.5/bg/
+http://creativecommons.org/licenses/by-nc-sa/2.5/br/
+http://creativecommons.org/licenses/by-nc-sa/2.5/ca/
+http://creativecommons.org/licenses/by-nc-sa/2.5/ch/
+http://creativecommons.org/licenses/by-nc-sa/2.5/cn/
+http://creativecommons.org/licenses/by-nc-sa/2.5/co/
+http://creativecommons.org/licenses/by-nc-sa/2.5/dk/
+http://creativecommons.org/licenses/by-nc-sa/2.5/es/
+http://creativecommons.org/licenses/by-nc-sa/2.5/hr/
+http://creativecommons.org/licenses/by-nc-sa/2.5/hu/
+http://creativecommons.org/licenses/by-nc-sa/2.5/il/
+http://creativecommons.org/licenses/by-nc-sa/2.5/in/
+http://creativecommons.org/licenses/by-nc-sa/2.5/it/
+http://creativecommons.org/licenses/by-nc-sa/2.5/mk/
+http://creativecommons.org/licenses/by-nc-sa/2.5/mt/
+http://creativecommons.org/licenses/by-nc-sa/2.5/mx/
+http://creativecommons.org/licenses/by-nc-sa/2.5/my/
+http://creativecommons.org/licenses/by-nc-sa/2.5/nl/
+http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
+http://creativecommons.org/licenses/by-nc-sa/2.5/pl/
+http://creativecommons.org/licenses/by-nc-sa/2.5/pt/
+http://creativecommons.org/licenses/by-nc-sa/2.5/
+http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/
+http://creativecommons.org/licenses/by-nc-sa/2.5/se/
+http://creativecommons.org/licenses/by-nc-sa/2.5/si/
+http://creativecommons.org/licenses/by-nc-sa/2.5/tw/
+http://creativecommons.org/licenses/by-nc-sa/2.5/za/
+http://creativecommons.org/licenses/by-nc-sa/3.0/
+http://creativecommons.org/licenses/by-nc-sa/3.0/us/
+http://creativecommons.org/licenses/by-nd/1.0/fi/
+http://creativecommons.org/licenses/by-nd/1.0/il/
+http://creativecommons.org/licenses/by-nd/1.0/nl/
+http://creativecommons.org/licenses/by-nd/1.0/
+http://creativecommons.org/licenses/by-nd/2.0/at/
+http://creativecommons.org/licenses/by-nd/2.0/au/
+http://creativecommons.org/licenses/by-nd/2.0/be/
+http://creativecommons.org/licenses/by-nd/2.0/br/
+http://creativecommons.org/licenses/by-nd/2.0/ca/
+http://creativecommons.org/licenses/by-nd/2.0/cl/
+http://creativecommons.org/licenses/by-nd/2.0/de/
+http://creativecommons.org/licenses/by-nd/2.0/es/
+http://creativecommons.org/licenses/by-nd/2.0/fr/
+http://creativecommons.org/licenses/by-nd/2.0/hr/
+http://creativecommons.org/licenses/by-nd/2.0/it/
+http://creativecommons.org/licenses/by-nd/2.0/jp/
+http://creativecommons.org/licenses/by-nd/2.0/kr/
+http://creativecommons.org/licenses/by-nd/2.0/nl/
+http://creativecommons.org/licenses/by-nd/2.0/pl/
+http://creativecommons.org/licenses/by-nd/2.0/
+http://creativecommons.org/licenses/by-nd/2.0/tw/
+http://creativecommons.org/licenses/by-nd/2.0/uk/
+http://creativecommons.org/licenses/by-nd/2.0/za/
+http://creativecommons.org/licenses/by-nd/2.1/au/
+http://creativecommons.org/licenses/by-nd/2.1/es/
+http://creativecommons.org/licenses/by-nd/2.1/jp/
+http://creativecommons.org/licenses/by-nd/2.5/ar/
+http://creativecommons.org/licenses/by-nd/2.5/au/
+http://creativecommons.org/licenses/by-nd/2.5/bg/
+http://creativecommons.org/licenses/by-nd/2.5/br/
+http://creativecommons.org/licenses/by-nd/2.5/ca/
+http://creativecommons.org/licenses/by-nd/2.5/ch/
+http://creativecommons.org/licenses/by-nd/2.5/cn/
+http://creativecommons.org/licenses/by-nd/2.5/co/
+http://creativecommons.org/licenses/by-nd/2.5/dk/
+http://creativecommons.org/licenses/by-nd/2.5/es/
+http://creativecommons.org/licenses/by-nd/2.5/hr/
+http://creativecommons.org/licenses/by-nd/2.5/hu/
+http://creativecommons.org/licenses/by-nd/2.5/il/
+http://creativecommons.org/licenses/by-nd/2.5/in/
+http://creativecommons.org/licenses/by-nd/2.5/it/
+http://creativecommons.org/licenses/by-nd/2.5/mk/
+http://creativecommons.org/licenses/by-nd/2.5/mt/
+http://creativecommons.org/licenses/by-nd/2.5/mx/
+http://creativecommons.org/licenses/by-nd/2.5/my/
+http://creativecommons.org/licenses/by-nd/2.5/nl/
+http://creativecommons.org/licenses/by-nd/2.5/pe/
+http://creativecommons.org/licenses/by-nd/2.5/pl/
+http://creativecommons.org/licenses/by-nd/2.5/pt/
+http://creativecommons.org/licenses/by-nd/2.5/
+http://creativecommons.org/licenses/by-nd/2.5/scotland/
+http://creativecommons.org/licenses/by-nd/2.5/se/
+http://creativecommons.org/licenses/by-nd/2.5/si/
+http://creativecommons.org/licenses/by-nd/2.5/tw/
+http://creativecommons.org/licenses/by-nd/2.5/za/
+http://creativecommons.org/licenses/by-nd/3.0/
+http://creativecommons.org/licenses/by-nd/3.0/us/
+http://creativecommons.org/licenses/by-nd-nc/1.0/fi/
+http://creativecommons.org/licenses/by-nd-nc/1.0/il/
+http://creativecommons.org/licenses/by-nd-nc/1.0/nl/
+http://creativecommons.org/licenses/by-nd-nc/1.0/
+http://creativecommons.org/licenses/by-nd-nc/2.0/jp/
+http://creativecommons.org/licenses/by-sa/1.0/fi/
+http://creativecommons.org/licenses/by-sa/1.0/il/
+http://creativecommons.org/licenses/by-sa/1.0/nl/
+http://creativecommons.org/licenses/by-sa/1.0/
+http://creativecommons.org/licenses/by-sa/2.0/at/
+http://creativecommons.org/licenses/by-sa/2.0/au/
+http://creativecommons.org/licenses/by-sa/2.0/be/
+http://creativecommons.org/licenses/by-sa/2.0/br/
+http://creativecommons.org/licenses/by-sa/2.0/ca/
+http://creativecommons.org/licenses/by-sa/2.0/cl/
+http://creativecommons.org/licenses/by-sa/2.0/de/
+http://creativecommons.org/licenses/by-sa/2.0/es/
+http://creativecommons.org/licenses/by-sa/2.0/fr/
+http://creativecommons.org/licenses/by-sa/2.0/hr/
+http://creativecommons.org/licenses/by-sa/2.0/it/
+http://creativecommons.org/licenses/by-sa/2.0/jp/
+http://creativecommons.org/licenses/by-sa/2.0/kr/
+http://creativecommons.org/licenses/by-sa/2.0/nl/
+http://creativecommons.org/licenses/by-sa/2.0/pl/
+http://creativecommons.org/licenses/by-sa/2.0/
+http://creativecommons.org/licenses/by-sa/2.0/tw/
+http://creativecommons.org/licenses/by-sa/2.0/uk/
+http://creativecommons.org/licenses/by-sa/2.0/za/
+http://creativecommons.org/licenses/by-sa/2.1/au/
+http://creativecommons.org/licenses/by-sa/2.1/es/
+http://creativecommons.org/licenses/by-sa/2.1/jp/
+http://creativecommons.org/licenses/by-sa/2.5/ar/
+http://creativecommons.org/licenses/by-sa/2.5/au/
+http://creativecommons.org/licenses/by-sa/2.5/bg/
+http://creativecommons.org/licenses/by-sa/2.5/br/
+http://creativecommons.org/licenses/by-sa/2.5/ca/
+http://creativecommons.org/licenses/by-sa/2.5/ch/
+http://creativecommons.org/licenses/by-sa/2.5/cn/
+http://creativecommons.org/licenses/by-sa/2.5/co/
+http://creativecommons.org/licenses/by-sa/2.5/dk/
+http://creativecommons.org/licenses/by-sa/2.5/es/
+http://creativecommons.org/licenses/by-sa/2.5/hr/
+http://creativecommons.org/licenses/by-sa/2.5/hu/
+http://creativecommons.org/licenses/by-sa/2.5/il/
+http://creativecommons.org/licenses/by-sa/2.5/in/
+http://creativecommons.org/licenses/by-sa/2.5/it/
+http://creativecommons.org/licenses/by-sa/2.5/mk/
+http://creativecommons.org/licenses/by-sa/2.5/mt/
+http://creativecommons.org/licenses/by-sa/2.5/mx/
+http://creativecommons.org/licenses/by-sa/2.5/my/
+http://creativecommons.org/licenses/by-sa/2.5/nl/
+http://creativecommons.org/licenses/by-sa/2.5/pe/
+http://creativecommons.org/licenses/by-sa/2.5/pl/
+http://creativecommons.org/licenses/by-sa/2.5/pt/
+http://creativecommons.org/licenses/by-sa/2.5/
+http://creativecommons.org/licenses/by-sa/2.5/scotland/
+http://creativecommons.org/licenses/by-sa/2.5/se/
+http://creativecommons.org/licenses/by-sa/2.5/si/
+http://creativecommons.org/licenses/by-sa/2.5/tw/
+http://creativecommons.org/licenses/by-sa/2.5/za/
+http://creativecommons.org/licenses/by-sa/3.0/
+http://creativecommons.org/licenses/by-sa/3.0/us/
+http://creativecommons.org/licenses/devnations/2.0/
+http://creativecommons.org/licenses/GPL/2.0/
+http://creativecommons.org/licenses/LGPL/2.1/
+http://creativecommons.org/licenses/nc/1.0/fi/
+http://creativecommons.org/licenses/nc/1.0/nl/
+http://creativecommons.org/licenses/nc/1.0/
+http://creativecommons.org/licenses/nc/2.0/jp/
+http://creativecommons.org/licenses/nc-sa/1.0/fi/
+http://creativecommons.org/licenses/nc-sa/1.0/nl/
+http://creativecommons.org/licenses/nc-sa/1.0/
+http://creativecommons.org/licenses/nc-sa/2.0/jp/
+http://creativecommons.org/licenses/nc-sampling+/1.0/
+http://creativecommons.org/licenses/nc-sampling+/1.0/tw/
+http://creativecommons.org/licenses/nd/1.0/fi/
+http://creativecommons.org/licenses/nd/1.0/nl/
+http://creativecommons.org/licenses/nd/1.0/
+http://creativecommons.org/licenses/nd/2.0/jp/
+http://creativecommons.org/licenses/nd-nc/1.0/fi/
+http://creativecommons.org/licenses/nd-nc/1.0/nl/
+http://creativecommons.org/licenses/nd-nc/1.0/
+http://creativecommons.org/licenses/nd-nc/2.0/jp/
+http://creativecommons.org/licenses/publicdomain/
+http://creativecommons.org/licenses/sa/1.0/fi/
+http://creativecommons.org/licenses/sa/1.0/nl/
+http://creativecommons.org/licenses/sa/1.0/
+http://creativecommons.org/licenses/sa/2.0/jp/
+http://creativecommons.org/licenses/sampling/1.0/br/
+http://creativecommons.org/licenses/sampling+/1.0/br/
+http://creativecommons.org/licenses/sampling+/1.0/de/
+http://creativecommons.org/licenses/sampling/1.0/
+http://creativecommons.org/licenses/sampling+/1.0/
+http://creativecommons.org/licenses/sampling/1.0/tw/
+http://creativecommons.org/licenses/sampling+/1.0/tw/
diff --git a/tests/files/test.mp3 b/tests/files/test.mp3
new file mode 100644 (file)
index 0000000..304892c
Binary files /dev/null and b/tests/files/test.mp3 differ
index 63fd0e8..08d80f2 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -60,6 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -97,8 +98,8 @@ audio_trickplay_OBJECTS = $(am_audio_trickplay_OBJECTS)
 am__DEPENDENCIES_1 =
 audio_trickplay_DEPENDENCIES = $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 audio_trickplay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -212,21 +213,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(audio_trickplay_SOURCES) $(input_selector_test_SOURCES) \
        $(output_selector_test_SOURCES) $(playbin_text_SOURCES) \
@@ -342,6 +343,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -402,6 +404,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -411,9 +414,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -436,6 +442,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -508,10 +515,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -545,7 +555,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -666,40 +675,40 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-audio-trickplay$(EXEEXT): $(audio_trickplay_OBJECTS) $(audio_trickplay_DEPENDENCIES) 
+audio-trickplay$(EXEEXT): $(audio_trickplay_OBJECTS) $(audio_trickplay_DEPENDENCIES) $(EXTRA_audio_trickplay_DEPENDENCIES) 
        @rm -f audio-trickplay$(EXEEXT)
        $(AM_V_CCLD)$(audio_trickplay_LINK) $(audio_trickplay_OBJECTS) $(audio_trickplay_LDADD) $(LIBS)
-input-selector-test$(EXEEXT): $(input_selector_test_OBJECTS) $(input_selector_test_DEPENDENCIES) 
+input-selector-test$(EXEEXT): $(input_selector_test_OBJECTS) $(input_selector_test_DEPENDENCIES) $(EXTRA_input_selector_test_DEPENDENCIES) 
        @rm -f input-selector-test$(EXEEXT)
        $(AM_V_CCLD)$(input_selector_test_LINK) $(input_selector_test_OBJECTS) $(input_selector_test_LDADD) $(LIBS)
-output-selector-test$(EXEEXT): $(output_selector_test_OBJECTS) $(output_selector_test_DEPENDENCIES) 
+output-selector-test$(EXEEXT): $(output_selector_test_OBJECTS) $(output_selector_test_DEPENDENCIES) $(EXTRA_output_selector_test_DEPENDENCIES) 
        @rm -f output-selector-test$(EXEEXT)
        $(AM_V_CCLD)$(output_selector_test_LINK) $(output_selector_test_OBJECTS) $(output_selector_test_LDADD) $(LIBS)
-playbin-text$(EXEEXT): $(playbin_text_OBJECTS) $(playbin_text_DEPENDENCIES) 
+playbin-text$(EXEEXT): $(playbin_text_OBJECTS) $(playbin_text_DEPENDENCIES) $(EXTRA_playbin_text_DEPENDENCIES) 
        @rm -f playbin-text$(EXEEXT)
        $(AM_V_CCLD)$(playbin_text_LINK) $(playbin_text_OBJECTS) $(playbin_text_LDADD) $(LIBS)
-position-formats$(EXEEXT): $(position_formats_OBJECTS) $(position_formats_DEPENDENCIES) 
+position-formats$(EXEEXT): $(position_formats_OBJECTS) $(position_formats_DEPENDENCIES) $(EXTRA_position_formats_DEPENDENCIES) 
        @rm -f position-formats$(EXEEXT)
        $(AM_V_CCLD)$(position_formats_LINK) $(position_formats_OBJECTS) $(position_formats_LDADD) $(LIBS)
-stress-playbin$(EXEEXT): $(stress_playbin_OBJECTS) $(stress_playbin_DEPENDENCIES) 
+stress-playbin$(EXEEXT): $(stress_playbin_OBJECTS) $(stress_playbin_DEPENDENCIES) $(EXTRA_stress_playbin_DEPENDENCIES) 
        @rm -f stress-playbin$(EXEEXT)
        $(AM_V_CCLD)$(stress_playbin_LINK) $(stress_playbin_OBJECTS) $(stress_playbin_LDADD) $(LIBS)
-stress-xoverlay$(EXEEXT): $(stress_xoverlay_OBJECTS) $(stress_xoverlay_DEPENDENCIES) 
+stress-xoverlay$(EXEEXT): $(stress_xoverlay_OBJECTS) $(stress_xoverlay_DEPENDENCIES) $(EXTRA_stress_xoverlay_DEPENDENCIES) 
        @rm -f stress-xoverlay$(EXEEXT)
        $(AM_V_CCLD)$(stress_xoverlay_LINK) $(stress_xoverlay_OBJECTS) $(stress_xoverlay_LDADD) $(LIBS)
-test-box$(EXEEXT): $(test_box_OBJECTS) $(test_box_DEPENDENCIES) 
+test-box$(EXEEXT): $(test_box_OBJECTS) $(test_box_DEPENDENCIES) $(EXTRA_test_box_DEPENDENCIES) 
        @rm -f test-box$(EXEEXT)
        $(AM_V_CCLD)$(test_box_LINK) $(test_box_OBJECTS) $(test_box_LDADD) $(LIBS)
-test-colorkey$(EXEEXT): $(test_colorkey_OBJECTS) $(test_colorkey_DEPENDENCIES) 
+test-colorkey$(EXEEXT): $(test_colorkey_OBJECTS) $(test_colorkey_DEPENDENCIES) $(EXTRA_test_colorkey_DEPENDENCIES) 
        @rm -f test-colorkey$(EXEEXT)
        $(AM_V_CCLD)$(test_colorkey_LINK) $(test_colorkey_OBJECTS) $(test_colorkey_LDADD) $(LIBS)
-test-scale$(EXEEXT): $(test_scale_OBJECTS) $(test_scale_DEPENDENCIES) 
+test-scale$(EXEEXT): $(test_scale_OBJECTS) $(test_scale_DEPENDENCIES) $(EXTRA_test_scale_DEPENDENCIES) 
        @rm -f test-scale$(EXEEXT)
        $(AM_V_CCLD)$(test_scale_LINK) $(test_scale_OBJECTS) $(test_scale_LDADD) $(LIBS)
-test-textoverlay$(EXEEXT): $(test_textoverlay_OBJECTS) $(test_textoverlay_DEPENDENCIES) 
+test-textoverlay$(EXEEXT): $(test_textoverlay_OBJECTS) $(test_textoverlay_DEPENDENCIES) $(EXTRA_test_textoverlay_DEPENDENCIES) 
        @rm -f test-textoverlay$(EXEEXT)
        $(AM_V_CCLD)$(test_textoverlay_LINK) $(test_textoverlay_OBJECTS) $(test_textoverlay_LDADD) $(LIBS)
-test-xoverlay$(EXEEXT): $(test_xoverlay_OBJECTS) $(test_xoverlay_DEPENDENCIES) 
+test-xoverlay$(EXEEXT): $(test_xoverlay_OBJECTS) $(test_xoverlay_DEPENDENCIES) $(EXTRA_test_xoverlay_DEPENDENCIES) 
        @rm -f test-xoverlay$(EXEEXT)
        $(AM_V_CCLD)$(test_xoverlay_LINK) $(test_xoverlay_OBJECTS) $(test_xoverlay_LDADD) $(LIBS)
 
@@ -725,218 +734,191 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 audio_trickplay-audio-trickplay.o: audio-trickplay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -MT audio_trickplay-audio-trickplay.o -MD -MP -MF $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo -c -o audio_trickplay-audio-trickplay.o `test -f 'audio-trickplay.c' || echo '$(srcdir)/'`audio-trickplay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo $(DEPDIR)/audio_trickplay-audio-trickplay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.o `test -f 'audio-trickplay.c' || echo '$(srcdir)/'`audio-trickplay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.o `test -f 'audio-trickplay.c' || echo '$(srcdir)/'`audio-trickplay.c
 
 audio_trickplay-audio-trickplay.obj: audio-trickplay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -MT audio_trickplay-audio-trickplay.obj -MD -MP -MF $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo -c -o audio_trickplay-audio-trickplay.obj `if test -f 'audio-trickplay.c'; then $(CYGPATH_W) 'audio-trickplay.c'; else $(CYGPATH_W) '$(srcdir)/audio-trickplay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo $(DEPDIR)/audio_trickplay-audio-trickplay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.obj `if test -f 'audio-trickplay.c'; then $(CYGPATH_W) 'audio-trickplay.c'; else $(CYGPATH_W) '$(srcdir)/audio-trickplay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.obj `if test -f 'audio-trickplay.c'; then $(CYGPATH_W) 'audio-trickplay.c'; else $(CYGPATH_W) '$(srcdir)/audio-trickplay.c'; fi`
 
 input_selector_test-input-selector-test.o: input-selector-test.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -MT input_selector_test-input-selector-test.o -MD -MP -MF $(DEPDIR)/input_selector_test-input-selector-test.Tpo -c -o input_selector_test-input-selector-test.o `test -f 'input-selector-test.c' || echo '$(srcdir)/'`input-selector-test.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/input_selector_test-input-selector-test.Tpo $(DEPDIR)/input_selector_test-input-selector-test.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='input-selector-test.c' object='input_selector_test-input-selector-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='input-selector-test.c' object='input_selector_test-input-selector-test.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.o `test -f 'input-selector-test.c' || echo '$(srcdir)/'`input-selector-test.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.o `test -f 'input-selector-test.c' || echo '$(srcdir)/'`input-selector-test.c
 
 input_selector_test-input-selector-test.obj: input-selector-test.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -MT input_selector_test-input-selector-test.obj -MD -MP -MF $(DEPDIR)/input_selector_test-input-selector-test.Tpo -c -o input_selector_test-input-selector-test.obj `if test -f 'input-selector-test.c'; then $(CYGPATH_W) 'input-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/input-selector-test.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/input_selector_test-input-selector-test.Tpo $(DEPDIR)/input_selector_test-input-selector-test.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='input-selector-test.c' object='input_selector_test-input-selector-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='input-selector-test.c' object='input_selector_test-input-selector-test.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.obj `if test -f 'input-selector-test.c'; then $(CYGPATH_W) 'input-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/input-selector-test.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.obj `if test -f 'input-selector-test.c'; then $(CYGPATH_W) 'input-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/input-selector-test.c'; fi`
 
 output_selector_test-output-selector-test.o: output-selector-test.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -MT output_selector_test-output-selector-test.o -MD -MP -MF $(DEPDIR)/output_selector_test-output-selector-test.Tpo -c -o output_selector_test-output-selector-test.o `test -f 'output-selector-test.c' || echo '$(srcdir)/'`output-selector-test.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/output_selector_test-output-selector-test.Tpo $(DEPDIR)/output_selector_test-output-selector-test.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='output-selector-test.c' object='output_selector_test-output-selector-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='output-selector-test.c' object='output_selector_test-output-selector-test.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.o `test -f 'output-selector-test.c' || echo '$(srcdir)/'`output-selector-test.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.o `test -f 'output-selector-test.c' || echo '$(srcdir)/'`output-selector-test.c
 
 output_selector_test-output-selector-test.obj: output-selector-test.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -MT output_selector_test-output-selector-test.obj -MD -MP -MF $(DEPDIR)/output_selector_test-output-selector-test.Tpo -c -o output_selector_test-output-selector-test.obj `if test -f 'output-selector-test.c'; then $(CYGPATH_W) 'output-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/output-selector-test.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/output_selector_test-output-selector-test.Tpo $(DEPDIR)/output_selector_test-output-selector-test.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='output-selector-test.c' object='output_selector_test-output-selector-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='output-selector-test.c' object='output_selector_test-output-selector-test.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.obj `if test -f 'output-selector-test.c'; then $(CYGPATH_W) 'output-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/output-selector-test.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.obj `if test -f 'output-selector-test.c'; then $(CYGPATH_W) 'output-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/output-selector-test.c'; fi`
 
 playbin_text-playbin-text.o: playbin-text.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -MT playbin_text-playbin-text.o -MD -MP -MF $(DEPDIR)/playbin_text-playbin-text.Tpo -c -o playbin_text-playbin-text.o `test -f 'playbin-text.c' || echo '$(srcdir)/'`playbin-text.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/playbin_text-playbin-text.Tpo $(DEPDIR)/playbin_text-playbin-text.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='playbin-text.c' object='playbin_text-playbin-text.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='playbin-text.c' object='playbin_text-playbin-text.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.o `test -f 'playbin-text.c' || echo '$(srcdir)/'`playbin-text.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.o `test -f 'playbin-text.c' || echo '$(srcdir)/'`playbin-text.c
 
 playbin_text-playbin-text.obj: playbin-text.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -MT playbin_text-playbin-text.obj -MD -MP -MF $(DEPDIR)/playbin_text-playbin-text.Tpo -c -o playbin_text-playbin-text.obj `if test -f 'playbin-text.c'; then $(CYGPATH_W) 'playbin-text.c'; else $(CYGPATH_W) '$(srcdir)/playbin-text.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/playbin_text-playbin-text.Tpo $(DEPDIR)/playbin_text-playbin-text.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='playbin-text.c' object='playbin_text-playbin-text.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='playbin-text.c' object='playbin_text-playbin-text.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.obj `if test -f 'playbin-text.c'; then $(CYGPATH_W) 'playbin-text.c'; else $(CYGPATH_W) '$(srcdir)/playbin-text.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.obj `if test -f 'playbin-text.c'; then $(CYGPATH_W) 'playbin-text.c'; else $(CYGPATH_W) '$(srcdir)/playbin-text.c'; fi`
 
 position_formats-position-formats.o: position-formats.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -MT position_formats-position-formats.o -MD -MP -MF $(DEPDIR)/position_formats-position-formats.Tpo -c -o position_formats-position-formats.o `test -f 'position-formats.c' || echo '$(srcdir)/'`position-formats.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/position_formats-position-formats.Tpo $(DEPDIR)/position_formats-position-formats.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='position-formats.c' object='position_formats-position-formats.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='position-formats.c' object='position_formats-position-formats.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.o `test -f 'position-formats.c' || echo '$(srcdir)/'`position-formats.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.o `test -f 'position-formats.c' || echo '$(srcdir)/'`position-formats.c
 
 position_formats-position-formats.obj: position-formats.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -MT position_formats-position-formats.obj -MD -MP -MF $(DEPDIR)/position_formats-position-formats.Tpo -c -o position_formats-position-formats.obj `if test -f 'position-formats.c'; then $(CYGPATH_W) 'position-formats.c'; else $(CYGPATH_W) '$(srcdir)/position-formats.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/position_formats-position-formats.Tpo $(DEPDIR)/position_formats-position-formats.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='position-formats.c' object='position_formats-position-formats.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='position-formats.c' object='position_formats-position-formats.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.obj `if test -f 'position-formats.c'; then $(CYGPATH_W) 'position-formats.c'; else $(CYGPATH_W) '$(srcdir)/position-formats.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.obj `if test -f 'position-formats.c'; then $(CYGPATH_W) 'position-formats.c'; else $(CYGPATH_W) '$(srcdir)/position-formats.c'; fi`
 
 stress_playbin-stress-playbin.o: stress-playbin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -MT stress_playbin-stress-playbin.o -MD -MP -MF $(DEPDIR)/stress_playbin-stress-playbin.Tpo -c -o stress_playbin-stress-playbin.o `test -f 'stress-playbin.c' || echo '$(srcdir)/'`stress-playbin.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/stress_playbin-stress-playbin.Tpo $(DEPDIR)/stress_playbin-stress-playbin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='stress-playbin.c' object='stress_playbin-stress-playbin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stress-playbin.c' object='stress_playbin-stress-playbin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.o `test -f 'stress-playbin.c' || echo '$(srcdir)/'`stress-playbin.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.o `test -f 'stress-playbin.c' || echo '$(srcdir)/'`stress-playbin.c
 
 stress_playbin-stress-playbin.obj: stress-playbin.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -MT stress_playbin-stress-playbin.obj -MD -MP -MF $(DEPDIR)/stress_playbin-stress-playbin.Tpo -c -o stress_playbin-stress-playbin.obj `if test -f 'stress-playbin.c'; then $(CYGPATH_W) 'stress-playbin.c'; else $(CYGPATH_W) '$(srcdir)/stress-playbin.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/stress_playbin-stress-playbin.Tpo $(DEPDIR)/stress_playbin-stress-playbin.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='stress-playbin.c' object='stress_playbin-stress-playbin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stress-playbin.c' object='stress_playbin-stress-playbin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.obj `if test -f 'stress-playbin.c'; then $(CYGPATH_W) 'stress-playbin.c'; else $(CYGPATH_W) '$(srcdir)/stress-playbin.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.obj `if test -f 'stress-playbin.c'; then $(CYGPATH_W) 'stress-playbin.c'; else $(CYGPATH_W) '$(srcdir)/stress-playbin.c'; fi`
 
 stress_xoverlay-stress-xoverlay.o: stress-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -MT stress_xoverlay-stress-xoverlay.o -MD -MP -MF $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo -c -o stress_xoverlay-stress-xoverlay.o `test -f 'stress-xoverlay.c' || echo '$(srcdir)/'`stress-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo $(DEPDIR)/stress_xoverlay-stress-xoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.o `test -f 'stress-xoverlay.c' || echo '$(srcdir)/'`stress-xoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.o `test -f 'stress-xoverlay.c' || echo '$(srcdir)/'`stress-xoverlay.c
 
 stress_xoverlay-stress-xoverlay.obj: stress-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -MT stress_xoverlay-stress-xoverlay.obj -MD -MP -MF $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo -c -o stress_xoverlay-stress-xoverlay.obj `if test -f 'stress-xoverlay.c'; then $(CYGPATH_W) 'stress-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/stress-xoverlay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo $(DEPDIR)/stress_xoverlay-stress-xoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.obj `if test -f 'stress-xoverlay.c'; then $(CYGPATH_W) 'stress-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/stress-xoverlay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.obj `if test -f 'stress-xoverlay.c'; then $(CYGPATH_W) 'stress-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/stress-xoverlay.c'; fi`
 
 test_box-test-box.o: test-box.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -MT test_box-test-box.o -MD -MP -MF $(DEPDIR)/test_box-test-box.Tpo -c -o test_box-test-box.o `test -f 'test-box.c' || echo '$(srcdir)/'`test-box.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_box-test-box.Tpo $(DEPDIR)/test_box-test-box.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-box.c' object='test_box-test-box.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-box.c' object='test_box-test-box.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.o `test -f 'test-box.c' || echo '$(srcdir)/'`test-box.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.o `test -f 'test-box.c' || echo '$(srcdir)/'`test-box.c
 
 test_box-test-box.obj: test-box.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -MT test_box-test-box.obj -MD -MP -MF $(DEPDIR)/test_box-test-box.Tpo -c -o test_box-test-box.obj `if test -f 'test-box.c'; then $(CYGPATH_W) 'test-box.c'; else $(CYGPATH_W) '$(srcdir)/test-box.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_box-test-box.Tpo $(DEPDIR)/test_box-test-box.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-box.c' object='test_box-test-box.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-box.c' object='test_box-test-box.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.obj `if test -f 'test-box.c'; then $(CYGPATH_W) 'test-box.c'; else $(CYGPATH_W) '$(srcdir)/test-box.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.obj `if test -f 'test-box.c'; then $(CYGPATH_W) 'test-box.c'; else $(CYGPATH_W) '$(srcdir)/test-box.c'; fi`
 
 test_colorkey-test-colorkey.o: test-colorkey.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -MT test_colorkey-test-colorkey.o -MD -MP -MF $(DEPDIR)/test_colorkey-test-colorkey.Tpo -c -o test_colorkey-test-colorkey.o `test -f 'test-colorkey.c' || echo '$(srcdir)/'`test-colorkey.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_colorkey-test-colorkey.Tpo $(DEPDIR)/test_colorkey-test-colorkey.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-colorkey.c' object='test_colorkey-test-colorkey.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-colorkey.c' object='test_colorkey-test-colorkey.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.o `test -f 'test-colorkey.c' || echo '$(srcdir)/'`test-colorkey.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.o `test -f 'test-colorkey.c' || echo '$(srcdir)/'`test-colorkey.c
 
 test_colorkey-test-colorkey.obj: test-colorkey.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -MT test_colorkey-test-colorkey.obj -MD -MP -MF $(DEPDIR)/test_colorkey-test-colorkey.Tpo -c -o test_colorkey-test-colorkey.obj `if test -f 'test-colorkey.c'; then $(CYGPATH_W) 'test-colorkey.c'; else $(CYGPATH_W) '$(srcdir)/test-colorkey.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_colorkey-test-colorkey.Tpo $(DEPDIR)/test_colorkey-test-colorkey.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-colorkey.c' object='test_colorkey-test-colorkey.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-colorkey.c' object='test_colorkey-test-colorkey.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.obj `if test -f 'test-colorkey.c'; then $(CYGPATH_W) 'test-colorkey.c'; else $(CYGPATH_W) '$(srcdir)/test-colorkey.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.obj `if test -f 'test-colorkey.c'; then $(CYGPATH_W) 'test-colorkey.c'; else $(CYGPATH_W) '$(srcdir)/test-colorkey.c'; fi`
 
 test_scale-test-scale.o: test-scale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -MT test_scale-test-scale.o -MD -MP -MF $(DEPDIR)/test_scale-test-scale.Tpo -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_scale-test-scale.Tpo $(DEPDIR)/test_scale-test-scale.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-scale.c' object='test_scale-test-scale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-scale.c' object='test_scale-test-scale.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
 
 test_scale-test-scale.obj: test-scale.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -MT test_scale-test-scale.obj -MD -MP -MF $(DEPDIR)/test_scale-test-scale.Tpo -c -o test_scale-test-scale.obj `if test -f 'test-scale.c'; then $(CYGPATH_W) 'test-scale.c'; else $(CYGPATH_W) '$(srcdir)/test-scale.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_scale-test-scale.Tpo $(DEPDIR)/test_scale-test-scale.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-scale.c' object='test_scale-test-scale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-scale.c' object='test_scale-test-scale.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.obj `if test -f 'test-scale.c'; then $(CYGPATH_W) 'test-scale.c'; else $(CYGPATH_W) '$(srcdir)/test-scale.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.obj `if test -f 'test-scale.c'; then $(CYGPATH_W) 'test-scale.c'; else $(CYGPATH_W) '$(srcdir)/test-scale.c'; fi`
 
 test_textoverlay-test-textoverlay.o: test-textoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -MT test_textoverlay-test-textoverlay.o -MD -MP -MF $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo -c -o test_textoverlay-test-textoverlay.o `test -f 'test-textoverlay.c' || echo '$(srcdir)/'`test-textoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo $(DEPDIR)/test_textoverlay-test-textoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.o `test -f 'test-textoverlay.c' || echo '$(srcdir)/'`test-textoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.o `test -f 'test-textoverlay.c' || echo '$(srcdir)/'`test-textoverlay.c
 
 test_textoverlay-test-textoverlay.obj: test-textoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -MT test_textoverlay-test-textoverlay.obj -MD -MP -MF $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo -c -o test_textoverlay-test-textoverlay.obj `if test -f 'test-textoverlay.c'; then $(CYGPATH_W) 'test-textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-textoverlay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo $(DEPDIR)/test_textoverlay-test-textoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.obj `if test -f 'test-textoverlay.c'; then $(CYGPATH_W) 'test-textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-textoverlay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.obj `if test -f 'test-textoverlay.c'; then $(CYGPATH_W) 'test-textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-textoverlay.c'; fi`
 
 test_xoverlay-test-xoverlay.o: test-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -MT test_xoverlay-test-xoverlay.o -MD -MP -MF $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo -c -o test_xoverlay-test-xoverlay.o `test -f 'test-xoverlay.c' || echo '$(srcdir)/'`test-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo $(DEPDIR)/test_xoverlay-test-xoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.o `test -f 'test-xoverlay.c' || echo '$(srcdir)/'`test-xoverlay.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.o `test -f 'test-xoverlay.c' || echo '$(srcdir)/'`test-xoverlay.c
 
 test_xoverlay-test-xoverlay.obj: test-xoverlay.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -MT test_xoverlay-test-xoverlay.obj -MD -MP -MF $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo -c -o test_xoverlay-test-xoverlay.obj `if test -f 'test-xoverlay.c'; then $(CYGPATH_W) 'test-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-xoverlay.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo $(DEPDIR)/test_xoverlay-test-xoverlay.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.obj `if test -f 'test-xoverlay.c'; then $(CYGPATH_W) 'test-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-xoverlay.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.obj `if test -f 'test-xoverlay.c'; then $(CYGPATH_W) 'test-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-xoverlay.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -1152,10 +1134,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 4119854..f670bbc 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -58,6 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -87,8 +88,8 @@ decodetest_SOURCES = decodetest.c
 decodetest_OBJECTS = decodetest-decodetest.$(OBJEXT)
 am__DEPENDENCIES_1 =
 decodetest_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 decodetest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(decodetest_CFLAGS) \
@@ -145,21 +146,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = decodetest.c test.c test2.c test3.c test4.c test5.c test6.c \
        test7.c
@@ -228,6 +229,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -288,6 +290,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -297,9 +300,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -322,6 +328,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -394,10 +401,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -431,7 +441,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -511,28 +520,28 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-decodetest$(EXEEXT): $(decodetest_OBJECTS) $(decodetest_DEPENDENCIES) 
+decodetest$(EXEEXT): $(decodetest_OBJECTS) $(decodetest_DEPENDENCIES) $(EXTRA_decodetest_DEPENDENCIES) 
        @rm -f decodetest$(EXEEXT)
        $(AM_V_CCLD)$(decodetest_LINK) $(decodetest_OBJECTS) $(decodetest_LDADD) $(LIBS)
-test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) 
+test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) $(EXTRA_test_DEPENDENCIES) 
        @rm -f test$(EXEEXT)
        $(AM_V_CCLD)$(test_LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
-test2$(EXEEXT): $(test2_OBJECTS) $(test2_DEPENDENCIES) 
+test2$(EXEEXT): $(test2_OBJECTS) $(test2_DEPENDENCIES) $(EXTRA_test2_DEPENDENCIES) 
        @rm -f test2$(EXEEXT)
        $(AM_V_CCLD)$(test2_LINK) $(test2_OBJECTS) $(test2_LDADD) $(LIBS)
-test3$(EXEEXT): $(test3_OBJECTS) $(test3_DEPENDENCIES) 
+test3$(EXEEXT): $(test3_OBJECTS) $(test3_DEPENDENCIES) $(EXTRA_test3_DEPENDENCIES) 
        @rm -f test3$(EXEEXT)
        $(AM_V_CCLD)$(test3_LINK) $(test3_OBJECTS) $(test3_LDADD) $(LIBS)
-test4$(EXEEXT): $(test4_OBJECTS) $(test4_DEPENDENCIES) 
+test4$(EXEEXT): $(test4_OBJECTS) $(test4_DEPENDENCIES) $(EXTRA_test4_DEPENDENCIES) 
        @rm -f test4$(EXEEXT)
        $(AM_V_CCLD)$(test4_LINK) $(test4_OBJECTS) $(test4_LDADD) $(LIBS)
-test5$(EXEEXT): $(test5_OBJECTS) $(test5_DEPENDENCIES) 
+test5$(EXEEXT): $(test5_OBJECTS) $(test5_DEPENDENCIES) $(EXTRA_test5_DEPENDENCIES) 
        @rm -f test5$(EXEEXT)
        $(AM_V_CCLD)$(test5_LINK) $(test5_OBJECTS) $(test5_LDADD) $(LIBS)
-test6$(EXEEXT): $(test6_OBJECTS) $(test6_DEPENDENCIES) 
+test6$(EXEEXT): $(test6_OBJECTS) $(test6_DEPENDENCIES) $(EXTRA_test6_DEPENDENCIES) 
        @rm -f test6$(EXEEXT)
        $(AM_V_CCLD)$(test6_LINK) $(test6_OBJECTS) $(test6_LDADD) $(LIBS)
-test7$(EXEEXT): $(test7_OBJECTS) $(test7_DEPENDENCIES) 
+test7$(EXEEXT): $(test7_OBJECTS) $(test7_DEPENDENCIES) $(EXTRA_test7_DEPENDENCIES) 
        @rm -f test7$(EXEEXT)
        $(AM_V_CCLD)$(test7_LINK) $(test7_OBJECTS) $(test7_LDADD) $(LIBS)
 
@@ -554,154 +563,135 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 decodetest-decodetest.o: decodetest.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -MT decodetest-decodetest.o -MD -MP -MF $(DEPDIR)/decodetest-decodetest.Tpo -c -o decodetest-decodetest.o `test -f 'decodetest.c' || echo '$(srcdir)/'`decodetest.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/decodetest-decodetest.Tpo $(DEPDIR)/decodetest-decodetest.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='decodetest.c' object='decodetest-decodetest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='decodetest.c' object='decodetest-decodetest.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.o `test -f 'decodetest.c' || echo '$(srcdir)/'`decodetest.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.o `test -f 'decodetest.c' || echo '$(srcdir)/'`decodetest.c
 
 decodetest-decodetest.obj: decodetest.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -MT decodetest-decodetest.obj -MD -MP -MF $(DEPDIR)/decodetest-decodetest.Tpo -c -o decodetest-decodetest.obj `if test -f 'decodetest.c'; then $(CYGPATH_W) 'decodetest.c'; else $(CYGPATH_W) '$(srcdir)/decodetest.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/decodetest-decodetest.Tpo $(DEPDIR)/decodetest-decodetest.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='decodetest.c' object='decodetest-decodetest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='decodetest.c' object='decodetest-decodetest.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.obj `if test -f 'decodetest.c'; then $(CYGPATH_W) 'decodetest.c'; else $(CYGPATH_W) '$(srcdir)/decodetest.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.obj `if test -f 'decodetest.c'; then $(CYGPATH_W) 'decodetest.c'; else $(CYGPATH_W) '$(srcdir)/decodetest.c'; fi`
 
 test-test.o: test.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -MT test-test.o -MD -MP -MF $(DEPDIR)/test-test.Tpo -c -o test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test-test.Tpo $(DEPDIR)/test-test.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test.c' object='test-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test.c' object='test-test.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -c -o test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -c -o test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
 
 test-test.obj: test.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -MT test-test.obj -MD -MP -MF $(DEPDIR)/test-test.Tpo -c -o test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test-test.Tpo $(DEPDIR)/test-test.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test.c' object='test-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test.c' object='test-test.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -c -o test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -c -o test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
 
 test2-test2.o: test2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -MT test2-test2.o -MD -MP -MF $(DEPDIR)/test2-test2.Tpo -c -o test2-test2.o `test -f 'test2.c' || echo '$(srcdir)/'`test2.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test2-test2.Tpo $(DEPDIR)/test2-test2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test2.c' object='test2-test2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test2.c' object='test2-test2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.o `test -f 'test2.c' || echo '$(srcdir)/'`test2.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.o `test -f 'test2.c' || echo '$(srcdir)/'`test2.c
 
 test2-test2.obj: test2.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -MT test2-test2.obj -MD -MP -MF $(DEPDIR)/test2-test2.Tpo -c -o test2-test2.obj `if test -f 'test2.c'; then $(CYGPATH_W) 'test2.c'; else $(CYGPATH_W) '$(srcdir)/test2.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test2-test2.Tpo $(DEPDIR)/test2-test2.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test2.c' object='test2-test2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test2.c' object='test2-test2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.obj `if test -f 'test2.c'; then $(CYGPATH_W) 'test2.c'; else $(CYGPATH_W) '$(srcdir)/test2.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.obj `if test -f 'test2.c'; then $(CYGPATH_W) 'test2.c'; else $(CYGPATH_W) '$(srcdir)/test2.c'; fi`
 
 test3-test3.o: test3.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -MT test3-test3.o -MD -MP -MF $(DEPDIR)/test3-test3.Tpo -c -o test3-test3.o `test -f 'test3.c' || echo '$(srcdir)/'`test3.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test3-test3.Tpo $(DEPDIR)/test3-test3.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test3.c' object='test3-test3.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test3.c' object='test3-test3.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.o `test -f 'test3.c' || echo '$(srcdir)/'`test3.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.o `test -f 'test3.c' || echo '$(srcdir)/'`test3.c
 
 test3-test3.obj: test3.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -MT test3-test3.obj -MD -MP -MF $(DEPDIR)/test3-test3.Tpo -c -o test3-test3.obj `if test -f 'test3.c'; then $(CYGPATH_W) 'test3.c'; else $(CYGPATH_W) '$(srcdir)/test3.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test3-test3.Tpo $(DEPDIR)/test3-test3.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test3.c' object='test3-test3.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test3.c' object='test3-test3.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.obj `if test -f 'test3.c'; then $(CYGPATH_W) 'test3.c'; else $(CYGPATH_W) '$(srcdir)/test3.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.obj `if test -f 'test3.c'; then $(CYGPATH_W) 'test3.c'; else $(CYGPATH_W) '$(srcdir)/test3.c'; fi`
 
 test4-test4.o: test4.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -MT test4-test4.o -MD -MP -MF $(DEPDIR)/test4-test4.Tpo -c -o test4-test4.o `test -f 'test4.c' || echo '$(srcdir)/'`test4.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test4-test4.Tpo $(DEPDIR)/test4-test4.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test4.c' object='test4-test4.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test4.c' object='test4-test4.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.o `test -f 'test4.c' || echo '$(srcdir)/'`test4.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.o `test -f 'test4.c' || echo '$(srcdir)/'`test4.c
 
 test4-test4.obj: test4.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -MT test4-test4.obj -MD -MP -MF $(DEPDIR)/test4-test4.Tpo -c -o test4-test4.obj `if test -f 'test4.c'; then $(CYGPATH_W) 'test4.c'; else $(CYGPATH_W) '$(srcdir)/test4.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test4-test4.Tpo $(DEPDIR)/test4-test4.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test4.c' object='test4-test4.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test4.c' object='test4-test4.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.obj `if test -f 'test4.c'; then $(CYGPATH_W) 'test4.c'; else $(CYGPATH_W) '$(srcdir)/test4.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.obj `if test -f 'test4.c'; then $(CYGPATH_W) 'test4.c'; else $(CYGPATH_W) '$(srcdir)/test4.c'; fi`
 
 test5-test5.o: test5.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -MT test5-test5.o -MD -MP -MF $(DEPDIR)/test5-test5.Tpo -c -o test5-test5.o `test -f 'test5.c' || echo '$(srcdir)/'`test5.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test5-test5.Tpo $(DEPDIR)/test5-test5.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test5.c' object='test5-test5.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test5.c' object='test5-test5.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.o `test -f 'test5.c' || echo '$(srcdir)/'`test5.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.o `test -f 'test5.c' || echo '$(srcdir)/'`test5.c
 
 test5-test5.obj: test5.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -MT test5-test5.obj -MD -MP -MF $(DEPDIR)/test5-test5.Tpo -c -o test5-test5.obj `if test -f 'test5.c'; then $(CYGPATH_W) 'test5.c'; else $(CYGPATH_W) '$(srcdir)/test5.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test5-test5.Tpo $(DEPDIR)/test5-test5.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test5.c' object='test5-test5.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test5.c' object='test5-test5.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.obj `if test -f 'test5.c'; then $(CYGPATH_W) 'test5.c'; else $(CYGPATH_W) '$(srcdir)/test5.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.obj `if test -f 'test5.c'; then $(CYGPATH_W) 'test5.c'; else $(CYGPATH_W) '$(srcdir)/test5.c'; fi`
 
 test6-test6.o: test6.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -MT test6-test6.o -MD -MP -MF $(DEPDIR)/test6-test6.Tpo -c -o test6-test6.o `test -f 'test6.c' || echo '$(srcdir)/'`test6.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test6-test6.Tpo $(DEPDIR)/test6-test6.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test6.c' object='test6-test6.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test6.c' object='test6-test6.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.o `test -f 'test6.c' || echo '$(srcdir)/'`test6.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.o `test -f 'test6.c' || echo '$(srcdir)/'`test6.c
 
 test6-test6.obj: test6.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -MT test6-test6.obj -MD -MP -MF $(DEPDIR)/test6-test6.Tpo -c -o test6-test6.obj `if test -f 'test6.c'; then $(CYGPATH_W) 'test6.c'; else $(CYGPATH_W) '$(srcdir)/test6.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test6-test6.Tpo $(DEPDIR)/test6-test6.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test6.c' object='test6-test6.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test6.c' object='test6-test6.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.obj `if test -f 'test6.c'; then $(CYGPATH_W) 'test6.c'; else $(CYGPATH_W) '$(srcdir)/test6.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.obj `if test -f 'test6.c'; then $(CYGPATH_W) 'test6.c'; else $(CYGPATH_W) '$(srcdir)/test6.c'; fi`
 
 test7-test7.o: test7.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -MT test7-test7.o -MD -MP -MF $(DEPDIR)/test7-test7.Tpo -c -o test7-test7.o `test -f 'test7.c' || echo '$(srcdir)/'`test7.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test7-test7.Tpo $(DEPDIR)/test7-test7.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test7.c' object='test7-test7.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test7.c' object='test7-test7.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.o `test -f 'test7.c' || echo '$(srcdir)/'`test7.c
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.o `test -f 'test7.c' || echo '$(srcdir)/'`test7.c
 
 test7-test7.obj: test7.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -MT test7-test7.obj -MD -MP -MF $(DEPDIR)/test7-test7.Tpo -c -o test7-test7.obj `if test -f 'test7.c'; then $(CYGPATH_W) 'test7.c'; else $(CYGPATH_W) '$(srcdir)/test7.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test7-test7.Tpo $(DEPDIR)/test7-test7.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='test7.c' object='test7-test7.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test7.c' object='test7-test7.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.obj `if test -f 'test7.c'; then $(CYGPATH_W) 'test7.c'; else $(CYGPATH_W) '$(srcdir)/test7.c'; fi`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.obj `if test -f 'test7.c'; then $(CYGPATH_W) 'test7.c'; else $(CYGPATH_W) '$(srcdir)/test7.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -805,10 +795,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 3b90710..30970ce 100644 (file)
@@ -100,8 +100,10 @@ main (int argc, char **argv)
   };
   GTimer *timer;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   ctx = g_option_context_new ("FILES OR DIRECTORIES WITH AUDIO FILES");
   g_option_context_add_main_entries (ctx, options, NULL);
index 947363c..9d88aec 100644 (file)
 #include <gst/interfaces/xoverlay.h>
 #include <gst/interfaces/propertyprobe.h>
 
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
-  *a = w->allocation;
-}
-#endif
-
 static GtkWidget *video_window = NULL;
 static GstElement *sink = NULL;
 static gulong embed_xid = 0;
@@ -89,7 +81,7 @@ handle_resize_cb (GtkWidget * widget, GdkEventConfigure * event, gpointer data)
 }
 
 static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
+draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
 {
   redraw_overlay (widget);
   return FALSE;
@@ -98,23 +90,15 @@ handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
 static void
 realize_cb (GtkWidget * widget, gpointer data)
 {
-#if GTK_CHECK_VERSION(2,18,0)
-  {
-    GdkWindow *window = gtk_widget_get_window (widget);
-
-    /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
-     * as well */
-    if (!gdk_window_ensure_native (window))
-      g_error ("Couldn't create native window needed for GstXOverlay!");
-  }
-#endif
+  GdkWindow *window = gtk_widget_get_window (widget);
 
-  {
-    GdkWindow *window = gtk_widget_get_window (video_window);
+  /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
+   * as well */
+  if (!gdk_window_ensure_native (window))
+    g_error ("Couldn't create native window needed for GstXOverlay!");
 
-    embed_xid = GDK_WINDOW_XID (window);
-    g_print ("Window realize: video window XID = %lu\n", embed_xid);
-  }
+  embed_xid = GDK_WINDOW_XID (window);
+  g_print ("Window realize: video window XID = %lu\n", embed_xid);
 }
 
 static void
@@ -188,8 +172,10 @@ main (int argc, char **argv)
   GstPropertyProbe *probe;
   GValueArray *arr;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   gst_init (&argc, &argv);
   gtk_init (&argc, &argv);
@@ -251,8 +237,8 @@ main (int argc, char **argv)
   video_window = gtk_drawing_area_new ();
   g_signal_connect (G_OBJECT (video_window), "configure-event",
       G_CALLBACK (handle_resize_cb), NULL);
-  g_signal_connect (G_OBJECT (video_window), "expose-event",
-      G_CALLBACK (handle_expose_cb), NULL);
+  g_signal_connect (G_OBJECT (video_window), "draw",
+      G_CALLBACK (draw_cb), NULL);
   g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), NULL);
   gtk_widget_set_double_buffered (video_window, FALSE);
   gtk_container_add (GTK_CONTAINER (window), video_window);
index c129b41..c1610b6 100644 (file)
 #include <gst/interfaces/xoverlay.h>
 #include <gst/video/gstvideosink.h>
 
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
-  *a = w->allocation;
-}
-#endif
-
 static struct
 {
   gint w, h;
@@ -64,8 +56,8 @@ animate_render_rect (gpointer user_data)
     gdouble c = cos (2.0 * anim_state.a);
 
     anim_state.a += anim_state.p;
-    if (anim_state.a > (M_PI + M_PI))
-      anim_state.a -= (M_PI + M_PI);
+    if (anim_state.a > (G_PI + G_PI))
+      anim_state.a -= (G_PI + G_PI);
 
     r->w = anim_state.w / 2;
     r->x = (r->w - (r->w / 2)) + c * (r->w / 2);
@@ -99,37 +91,30 @@ handle_resize_cb (GtkWidget * widget, GdkEventConfigure * event,
 }
 
 static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event,
-    gpointer user_data)
+handle_draw_cb (GtkWidget * widget, cairo_t * cr, gpointer user_data)
 {
   GstVideoRectangle *r = &anim_state.rect;
-  GtkAllocation allocation;
-  GdkWindow *window;
   GtkStyle *style;
-  cairo_t *cr;
+  int width, height;
+
+  width = gtk_widget_get_allocated_width (widget);
+  height = gtk_widget_get_allocated_height (widget);
 
   style = gtk_widget_get_style (widget);
-  window = gtk_widget_get_window (widget);
-  gtk_widget_get_allocation (widget, &allocation);
-  cr = gdk_cairo_create (window);
 
   gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
 
   /* we should only redraw outside of the video rect! */
-  cairo_rectangle (cr, 0, event->area.y, r->x, event->area.height);
-  cairo_rectangle (cr, r->x + r->w, event->area.y,
-      allocation.width - (r->x + r->w), event->area.height);
+  cairo_rectangle (cr, 0, 0, r->x, height);
+  cairo_rectangle (cr, r->x + r->w, 0, width - (r->x + r->w), height);
 
-  cairo_rectangle (cr, event->area.x, 0, event->area.width, r->y);
-  cairo_rectangle (cr, event->area.x, r->y + r->h,
-      event->area.width, allocation.height - (r->y + r->h));
+  cairo_rectangle (cr, 0, 0, width, r->y);
+  cairo_rectangle (cr, 0, r->y + r->h, width, height - (r->y + r->h));
 
   cairo_fill (cr);
 
-  cairo_destroy (cr);
-
   if (verbose) {
-    g_print ("expose(%p)\n", widget);
+    g_print ("draw(%p)\n", widget);
   }
   gst_x_overlay_expose (anim_state.overlay);
   return FALSE;
@@ -159,8 +144,10 @@ main (gint argc, gchar ** argv)
   gulong embed_xid = 0;
   gboolean force_aspect = FALSE, draw_borders = FALSE;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   gst_init (&argc, &argv);
   gtk_init (&argc, &argv);
@@ -223,13 +210,12 @@ main (gint argc, gchar ** argv)
   anim_state.w = 320;
   anim_state.h = 240;
   anim_state.a = 0.0;
-  anim_state.p = (M_PI + M_PI) / 200.0;
+  anim_state.p = (G_PI + G_PI) / 200.0;
 
   handle_resize_cb (video_window, NULL, sink);
   g_signal_connect (video_window, "configure-event",
       G_CALLBACK (handle_resize_cb), NULL);
-  g_signal_connect (video_window, "expose-event",
-      G_CALLBACK (handle_expose_cb), NULL);
+  g_signal_connect (video_window, "draw", G_CALLBACK (handle_draw_cb), NULL);
 
   g_timeout_add (50, (GSourceFunc) animate_render_rect, NULL);
 
index 8debdbe..4d21dad 100644 (file)
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -57,6 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
        $(top_srcdir)/common/m4/gst-gettext.m4 \
        $(top_srcdir)/common/m4/gst-glib2.m4 \
        $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+       $(top_srcdir)/common/m4/gst-platform.m4 \
        $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
        $(top_srcdir)/common/m4/gst-plugindir.m4 \
        $(top_srcdir)/common/m4/gst-x11.m4 \
@@ -92,8 +93,8 @@ am__DEPENDENCIES_1 =
 gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
        $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -116,6 +117,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 SCRIPTS = $(bin_SCRIPTS)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -127,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(gst_discoverer_@GST_MAJORMINOR@_SOURCES)
 DIST_SOURCES = $(gst_discoverer_@GST_MAJORMINOR@_SOURCES)
@@ -211,6 +218,7 @@ GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
@@ -271,6 +279,7 @@ GUDEV_LIBS = @GUDEV_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
 HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
 HSTRERROR_LIBS = @HSTRERROR_LIBS@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -280,9 +289,12 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INTLLIBS = @INTLLIBS@
 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
 IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
@@ -305,6 +317,7 @@ LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -377,10 +390,13 @@ X_CFLAGS = @X_CFLAGS@
 X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -414,7 +430,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -528,7 +543,7 @@ clean-binPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-gst-discoverer-@GST_MAJORMINOR@$(EXEEXT): $(gst_discoverer_@GST_MAJORMINOR@_OBJECTS) $(gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES) 
+gst-discoverer-@GST_MAJORMINOR@$(EXEEXT): $(gst_discoverer_@GST_MAJORMINOR@_OBJECTS) $(gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES) $(EXTRA_gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES) 
        @rm -f gst-discoverer-@GST_MAJORMINOR@$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(gst_discoverer_@GST_MAJORMINOR@_OBJECTS) $(gst_discoverer_@GST_MAJORMINOR@_LDADD) $(LIBS)
 install-binSCRIPTS: $(bin_SCRIPTS)
@@ -562,9 +577,7 @@ uninstall-binSCRIPTS:
        @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
-       test -n "$$list" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+       dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -577,26 +590,23 @@ distclean-compile:
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -638,9 +648,7 @@ uninstall-man1:
          sed -n '/\.1[a-z]*$$/p'; \
        } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
              -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-       test -z "$$files" || { \
-         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
-         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+       dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -754,10 +762,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
index 00d2d0f..d7fc3ce 100644 (file)
@@ -37,8 +37,19 @@ typedef struct
   char **argv;
 } PrivStruct;
 
-#define my_g_string_append_printf(str, format, ...) \
-  g_string_append_printf (str, "%*s" format, 2*depth, " ", ##__VA_ARGS__)
+static void
+my_g_string_append_printf (GString * str, int depth, const gchar * format, ...)
+{
+  va_list args;
+
+  while (depth-- > 0) {
+    g_string_append (str, "  ");
+  }
+
+  va_start (args, format);
+  g_string_append_vprintf (str, format, args);
+  va_end (args);
+}
 
 static gchar *
 gst_stream_audio_information_to_string (GstDiscovererStreamInfo * info,
@@ -47,6 +58,7 @@ gst_stream_audio_information_to_string (GstDiscovererStreamInfo * info,
   GstDiscovererAudioInfo *audio_info;
   GString *s;
   gchar *tmp;
+  const gchar *ctmp;
   int len = 400;
   const GstTagList *tags;
   GstCaps *caps;
@@ -55,46 +67,49 @@ gst_stream_audio_information_to_string (GstDiscovererStreamInfo * info,
 
   s = g_string_sized_new (len);
 
-  my_g_string_append_printf (s, "Codec:\n");
+  my_g_string_append_printf (s, depth, "Codec:\n");
   caps = gst_discoverer_stream_info_get_caps (info);
   tmp = gst_caps_to_string (caps);
   gst_caps_unref (caps);
-  my_g_string_append_printf (s, "  %s\n", tmp);
+  my_g_string_append_printf (s, depth, "  %s\n", tmp);
   g_free (tmp);
 
-  my_g_string_append_printf (s, "Additional info:\n");
+  my_g_string_append_printf (s, depth, "Additional info:\n");
   if (gst_discoverer_stream_info_get_misc (info)) {
     tmp = gst_structure_to_string (gst_discoverer_stream_info_get_misc (info));
-    my_g_string_append_printf (s, "  %s\n", tmp);
+    my_g_string_append_printf (s, depth, "  %s\n", tmp);
     g_free (tmp);
   } else {
-    my_g_string_append_printf (s, "  None\n");
+    my_g_string_append_printf (s, depth, "  None\n");
   }
 
   audio_info = (GstDiscovererAudioInfo *) info;
-  my_g_string_append_printf (s, "Channels: %u\n",
+  ctmp = gst_discoverer_audio_info_get_language (audio_info);
+  my_g_string_append_printf (s, depth, "Language: %s\n",
+      ctmp ? ctmp : "<unknown>");
+  my_g_string_append_printf (s, depth, "Channels: %u\n",
       gst_discoverer_audio_info_get_channels (audio_info));
-  my_g_string_append_printf (s, "Sample rate: %u\n",
+  my_g_string_append_printf (s, depth, "Sample rate: %u\n",
       gst_discoverer_audio_info_get_sample_rate (audio_info));
-  my_g_string_append_printf (s, "Depth: %u\n",
+  my_g_string_append_printf (s, depth, "Depth: %u\n",
       gst_discoverer_audio_info_get_depth (audio_info));
 
-  my_g_string_append_printf (s, "Bitrate: %u\n",
+  my_g_string_append_printf (s, depth, "Bitrate: %u\n",
       gst_discoverer_audio_info_get_bitrate (audio_info));
-  my_g_string_append_printf (s, "Max bitrate: %u\n",
+  my_g_string_append_printf (s, depth, "Max bitrate: %u\n",
       gst_discoverer_audio_info_get_max_bitrate (audio_info));
 
-  my_g_string_append_printf (s, "Tags:\n");
+  my_g_string_append_printf (s, depth, "Tags:\n");
   tags = gst_discoverer_stream_info_get_tags (info);
   if (tags) {
     tmp = gst_structure_to_string ((GstStructure *) tags);
-    my_g_string_append_printf (s, "  %s\n", tmp);
+    my_g_string_append_printf (s, depth, "  %s\n", tmp);
     g_free (tmp);
   } else {
-    my_g_string_append_printf (s, "  None\n");
+    my_g_string_append_printf (s, depth, "  None\n");
   }
   if (verbose)
-    my_g_string_append_printf (s, "\n");
+    my_g_string_append_printf (s, depth, "\n");
 
   return g_string_free (s, FALSE);
 }
@@ -115,58 +130,110 @@ gst_stream_video_information_to_string (GstDiscovererStreamInfo * info,
 
   s = g_string_sized_new (len);
 
-  my_g_string_append_printf (s, "Codec:\n");
+  my_g_string_append_printf (s, depth, "Codec:\n");
   caps = gst_discoverer_stream_info_get_caps (info);
   tmp = gst_caps_to_string (caps);
   gst_caps_unref (caps);
-  my_g_string_append_printf (s, "  %s\n", tmp);
+  my_g_string_append_printf (s, depth, "  %s\n", tmp);
   g_free (tmp);
 
-  my_g_string_append_printf (s, "Additional info:\n");
+  my_g_string_append_printf (s, depth, "Additional info:\n");
   misc = gst_discoverer_stream_info_get_misc (info);
   if (misc) {
     tmp = gst_structure_to_string (misc);
-    my_g_string_append_printf (s, "  %s\n", tmp);
+    my_g_string_append_printf (s, depth, "  %s\n", tmp);
     g_free (tmp);
   } else {
-    my_g_string_append_printf (s, "  None\n");
+    my_g_string_append_printf (s, depth, "  None\n");
   }
 
   video_info = (GstDiscovererVideoInfo *) info;
-  my_g_string_append_printf (s, "Width: %u\n",
+  my_g_string_append_printf (s, depth, "Width: %u\n",
       gst_discoverer_video_info_get_width (video_info));
-  my_g_string_append_printf (s, "Height: %u\n",
+  my_g_string_append_printf (s, depth, "Height: %u\n",
       gst_discoverer_video_info_get_height (video_info));
-  my_g_string_append_printf (s, "Depth: %u\n",
+  my_g_string_append_printf (s, depth, "Depth: %u\n",
       gst_discoverer_video_info_get_depth (video_info));
 
-  my_g_string_append_printf (s, "Frame rate: %u/%u\n",
+  my_g_string_append_printf (s, depth, "Frame rate: %u/%u\n",
       gst_discoverer_video_info_get_framerate_num (video_info),
       gst_discoverer_video_info_get_framerate_denom (video_info));
 
-  my_g_string_append_printf (s, "Pixel aspect ratio: %u/%u\n",
+  my_g_string_append_printf (s, depth, "Pixel aspect ratio: %u/%u\n",
       gst_discoverer_video_info_get_par_num (video_info),
       gst_discoverer_video_info_get_par_denom (video_info));
 
-  my_g_string_append_printf (s, "Interlaced: %s\n",
+  my_g_string_append_printf (s, depth, "Interlaced: %s\n",
       gst_discoverer_video_info_is_interlaced (video_info) ? "true" : "false");
 
-  my_g_string_append_printf (s, "Bitrate: %u\n",
+  my_g_string_append_printf (s, depth, "Bitrate: %u\n",
       gst_discoverer_video_info_get_bitrate (video_info));
-  my_g_string_append_printf (s, "Max bitrate: %u\n",
+  my_g_string_append_printf (s, depth, "Max bitrate: %u\n",
       gst_discoverer_video_info_get_max_bitrate (video_info));
 
-  my_g_string_append_printf (s, "Tags:\n");
+  my_g_string_append_printf (s, depth, "Tags:\n");
+  tags = gst_discoverer_stream_info_get_tags (info);
+  if (tags) {
+    tmp = gst_structure_to_string ((GstStructure *) tags);
+    my_g_string_append_printf (s, depth, "  %s\n", tmp);
+    g_free (tmp);
+  } else {
+    my_g_string_append_printf (s, depth, "  None\n");
+  }
+  if (verbose)
+    my_g_string_append_printf (s, depth, "\n");
+
+  return g_string_free (s, FALSE);
+}
+
+static gchar *
+gst_stream_subtitle_information_to_string (GstDiscovererStreamInfo * info,
+    gint depth)
+{
+  GstDiscovererSubtitleInfo *subtitle_info;
+  GString *s;
+  gchar *tmp;
+  const gchar *ctmp;
+  int len = 400;
+  const GstTagList *tags;
+  GstCaps *caps;
+
+  g_return_val_if_fail (info != NULL, NULL);
+
+  s = g_string_sized_new (len);
+
+  my_g_string_append_printf (s, depth, "Codec:\n");
+  caps = gst_discoverer_stream_info_get_caps (info);
+  tmp = gst_caps_to_string (caps);
+  gst_caps_unref (caps);
+  my_g_string_append_printf (s, depth, "  %s\n", tmp);
+  g_free (tmp);
+
+  my_g_string_append_printf (s, depth, "Additional info:\n");
+  if (gst_discoverer_stream_info_get_misc (info)) {
+    tmp = gst_structure_to_string (gst_discoverer_stream_info_get_misc (info));
+    my_g_string_append_printf (s, depth, "  %s\n", tmp);
+    g_free (tmp);
+  } else {
+    my_g_string_append_printf (s, depth, "  None\n");
+  }
+
+  subtitle_info = (GstDiscovererSubtitleInfo *) info;
+  ctmp = gst_discoverer_subtitle_info_get_language (subtitle_info);
+  my_g_string_append_printf (s, depth, "Language: %s\n",
+      ctmp ? ctmp : "<unknown>");
+
+  my_g_string_append_printf (s, depth, "Tags:\n");
   tags = gst_discoverer_stream_info_get_tags (info);
   if (tags) {
     tmp = gst_structure_to_string ((GstStructure *) tags);
-    my_g_string_append_printf (s, "  %s\n", tmp);
+    my_g_string_append_printf (s, depth, "  %s\n", tmp);
     g_free (tmp);
   } else {
-    my_g_string_append_printf (s, "  None\n");
+    my_g_string_append_printf (s, depth, "  None\n");
   }
   if (verbose)
-    my_g_string_append_printf (s, "\n");
+    my_g_string_append_printf (s, depth, "\n");
 
   return g_string_free (s, FALSE);
 }
@@ -204,6 +271,10 @@ print_stream_info (GstDiscovererStreamInfo * info, void *depth)
       desc =
           gst_stream_video_information_to_string (info,
           GPOINTER_TO_INT (depth) + 1);
+    else if (GST_IS_DISCOVERER_SUBTITLE_INFO (info))
+      desc =
+          gst_stream_subtitle_information_to_string (info,
+          GPOINTER_TO_INT (depth) + 1);
     if (desc) {
       g_print ("%s", desc);
       g_free (desc);
@@ -340,7 +411,6 @@ process_file (GstDiscoverer * dc, const gchar * filename)
   GDir *dir;
   gchar *uri, *path;
   GstDiscovererInfo *info;
-  GstStructure *st = NULL;
 
   if (!gst_uri_is_valid (filename)) {
     /* Recurse into directories */
@@ -385,9 +455,9 @@ process_file (GstDiscoverer * dc, const gchar * filename)
     g_print ("Analyzing %s\n", uri);
     info = gst_discoverer_discover_uri (dc, uri, &err);
     print_info (info, err);
+    if (err)
+      g_error_free (err);
     gst_discoverer_info_unref (info);
-    if (st)
-      gst_structure_free (st);
   } else {
     gst_discoverer_discover_uri_async (dc, uri);
   }
@@ -439,8 +509,10 @@ main (int argc, char **argv)
   };
   GOptionContext *ctx;
 
+#if !GLIB_CHECK_VERSION (2, 31, 0)
   if (!g_thread_supported ())
     g_thread_init (NULL);
+#endif
 
   ctx =
       g_option_context_new
index 42ecf27..34887b1 100644 (file)
@@ -1,8 +1,8 @@
 #ifndef _GST_PLUGINS_BASE__STDINT_H
 #define _GST_PLUGINS_BASE__STDINT_H 1
 #ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 0.10.34"
-/* generated using gnu compiler gcc (Debian 4.5.2-8) 4.5.2 */
+#define _GENERATED_STDINT_H "gst-plugins-base 0.10.36"
+/* generated using gnu compiler gcc (Debian 4.6.2-12) 4.6.2 */
 #define _STDINT_HAVE_STDINT_H 1
 #include <stdint.h>
 #endif
index 61af357..6dfd85d 100644 (file)
@@ -109,6 +109,8 @@ gst_buffer_format_type_get_type (void)
       {GST_BUFTYPE_AC3, "GST_BUFTYPE_AC3", "ac3"},
       {GST_BUFTYPE_EAC3, "GST_BUFTYPE_EAC3", "eac3"},
       {GST_BUFTYPE_DTS, "GST_BUFTYPE_DTS", "dts"},
+      {GST_BUFTYPE_MPEG2_AAC, "GST_BUFTYPE_MPEG2_AAC", "mpeg2-aac"},
+      {GST_BUFTYPE_MPEG4_AAC, "GST_BUFTYPE_MPEG4_AAC", "mpeg4-aac"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
@@ -164,6 +166,8 @@ gst_buffer_format_get_type (void)
       {GST_AC3, "GST_AC3", "ac3"},
       {GST_EAC3, "GST_EAC3", "eac3"},
       {GST_DTS, "GST_DTS", "dts"},
+      {GST_MPEG2_AAC, "GST_MPEG2_AAC", "mpeg2-aac"},
+      {GST_MPEG4_AAC, "GST_MPEG4_AAC", "mpeg4-aac"},
       {0, NULL, NULL}
     };
     GType g_define_type_id = g_enum_register_static ("GstBufferFormat", values);
index 9b2809c..be21f96 100644 (file)
 /* system wide data directory */
 #define GST_DATADIR PREFIX "\\share"
 
+/* Extra platform specific plugin suffix */
+#undef GST_EXTRA_MODULE_SUFFIX
+
 /* macro to use to show function name */
 #undef GST_FUNCTION
 
 /* Defined if gcov is enabled to force a rebuild due to config.h changing */
 #undef GST_GCOV_ENABLED
 
+/* Defined when registry scanning through fork is unsafe */
+#undef GST_HAVE_UNSAFE_FORK
+
 /* plugin install helper script */
 #define GST_INSTALL_PLUGINS_HELPER PREFIX "\\libexec\\gst-install-plugins-helper.exe"
 
@@ -81,7 +87,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2011-05-13"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-02-20"
 
 /* I know the API is subject to change. */
 #undef G_UDEV_API_IS_SUBJECT_TO_CHANGE
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
+/* Define to 1 if you have the <emmintrin.h> header file. */
+#undef HAVE_EMMINTRIN_H
+
 /* Define to enable building of experimental plug-ins. */
 #undef HAVE_EXPERIMENTAL
 
 /* Use Orc */
 #undef HAVE_ORC
 
+/* Defined if compiling for OSX */
+#undef HAVE_OSX
+
 /* Define to enable Pango font rendering (used by pango). */
 #undef HAVE_PANGO
 
 /* defined if vorbis_synthesis_restart is present */
 #undef HAVE_VORBIS_SYNTHESIS_RESTART
 
+/* Defined if compiling for Windows */
+#define HAVE_WIN32 1
+
 /* Define to 1 if you have the <winsock2.h> header file. */
 #define HAVE_WINSOCK2_H 1
 
 /* Define to enable X libraries and plugins (used by ximagesink). */
 #undef HAVE_X
 
+/* Define to 1 if you have the <xmmintrin.h> header file. */
+#undef HAVE_XMMINTRIN_H
+
 /* Define to enable X Shared Memory extension. */
 #undef HAVE_XSHM
 
 /* Define to enable X11 XVideo extensions (used by xvimagesink). */
 #undef HAVE_XVIDEO
 
+/* Define to enable zlib support for ID3 parsing in libgsttag. */
+#undef HAVE_ZLIB
+
 /* the host CPU */
 #define HOST_CPU "i686"
 
 #define PACKAGE_NAME "GStreamer Base Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.34"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.36"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.34"
+#define PACKAGE_VERSION "0.10.36"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "0.10.34"
+#define VERSION "0.10.36"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
 
 /* Define for large files, on AIX-style hosts. */
 #undef _LARGE_FILES
+
+/* We need at least WinXP SP2 for __stat64 */
+#undef __MSVCRT_VERSION__
diff --git a/win32/common/config.h-new b/win32/common/config.h-new
deleted file mode 100644 (file)
index 2d4077b..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-/* Autogenerated config.h created for win32 Visual Studio builds */
-
-/* PREFIX -- specifically added for Windows for easier moving */
-#define PREFIX "C:\\gstreamer"
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* The implementation that should be used for integer audio resampling witll
-   be benchmarked at runtime */
-#undef AUDIORESAMPLE_FORMAT_AUTO
-
-/* The float implementation should be used for integer audio resampling */
-#undef AUDIORESAMPLE_FORMAT_FLOAT
-
-/* The int implementation should be used for integer audio resampling */
-#undef AUDIORESAMPLE_FORMAT_INT
-
-/* defined if cdda headers are in a cdda/ directory */
-#undef CDPARANOIA_HEADERS_IN_DIR
-
-/* Default audio sink */
-#define DEFAULT_AUDIOSINK "directsoundsink"
-
-/* Default audio source */
-#undef DEFAULT_AUDIOSRC
-
-/* Default video sink */
-#define DEFAULT_VIDEOSINK "directdrawsink"
-
-/* Default video source */
-#undef DEFAULT_VIDEOSRC
-
-/* Default visualizer */
-#define DEFAULT_VISUALIZER "goom"
-
-/* Disable Orc */
-#undef DISABLE_ORC
-
-/* Define to 1 if translation of program messages to the user's native
-   language is requested. */
-#undef ENABLE_NLS
-
-/* gettext package name */
-#define GETTEXT_PACKAGE "NULL"
-
-/* The GIO library directory. */
-#undef GIO_LIBDIR
-
-/* The GIO modules directory. */
-#undef GIO_MODULE_DIR
-
-/* The GnomeVFS modules directory. */
-#undef GNOME_VFS_MODULES_DIR
-
-/* system wide data directory */
-#define GST_DATADIR PREFIX "\\share"
-
-/* macro to use to show function name */
-#undef GST_FUNCTION
-
-/* Defined if gcov is enabled to force a rebuild due to config.h changing */
-#undef GST_GCOV_ENABLED
-
-/* plugin install helper script */
-#define GST_INSTALL_PLUGINS_HELPER PREFIX "\\libexec\\gst-install-plugins-helper.exe"
-
-/* Default errorlevel to use */
-#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR
-
-/* GStreamer license */
-#define GST_LICENSE "LGPL"
-
-/* major/minor version */
-#define GST_MAJORMINOR "0.10"
-
-/* package name in plugins */
-#define GST_PACKAGE_NAME "GStreamer Base Plug-ins source release"
-
-/* package origin */
-#define GST_PACKAGE_ORIGIN "Unknown package origin"
-
-/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2011-05-13"
-
-/* I know the API is subject to change. */
-#undef G_UDEV_API_IS_SUBJECT_TO_CHANGE
-
-/* Define to enable ALSA (used by alsa). */
-#undef HAVE_ALSA
-
-/* Define to enable CDParanoia (used by cdparanoia). */
-#undef HAVE_CDPARANOIA
-
-/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
-   CoreFoundation framework. */
-#undef HAVE_CFLOCALECOPYCURRENT
-
-/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
-   the CoreFoundation framework. */
-#undef HAVE_CFPREFERENCESCOPYAPPVALUE
-
-/* Define if the host CPU is an Alpha */
-#undef HAVE_CPU_ALPHA
-
-/* Define if the host CPU is an ARM */
-#undef HAVE_CPU_ARM
-
-/* Define if the host CPU is a CRIS */
-#undef HAVE_CPU_CRIS
-
-/* Define if the host CPU is a CRISv32 */
-#undef HAVE_CPU_CRISV32
-
-/* Define if the host CPU is a HPPA */
-#undef HAVE_CPU_HPPA
-
-/* Define if the host CPU is an x86 */
-#define HAVE_CPU_I386 1
-
-/* Define if the host CPU is a IA64 */
-#undef HAVE_CPU_IA64
-
-/* Define if the host CPU is a M68K */
-#undef HAVE_CPU_M68K
-
-/* Define if the host CPU is a MIPS */
-#undef HAVE_CPU_MIPS
-
-/* Define if the host CPU is a PowerPC */
-#undef HAVE_CPU_PPC
-
-/* Define if the host CPU is a 64 bit PowerPC */
-#undef HAVE_CPU_PPC64
-
-/* Define if the host CPU is a S390 */
-#undef HAVE_CPU_S390
-
-/* Define if the host CPU is a SPARC */
-#undef HAVE_CPU_SPARC
-
-/* Define if the host CPU is a x86_64 */
-#undef HAVE_CPU_X86_64
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
-   */
-#undef HAVE_DCGETTEXT
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to enable building of experimental plug-ins. */
-#undef HAVE_EXPERIMENTAL
-
-/* Define to enable building of plug-ins with external deps. */
-#undef HAVE_EXTERNAL
-
-/* FIONREAD ioctl found in sys/filio.h */
-#undef HAVE_FIONREAD_IN_SYS_FILIO
-
-/* FIONREAD ioctl found in sys/ioclt.h */
-#undef HAVE_FIONREAD_IN_SYS_IOCTL
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#undef HAVE_FSEEKO
-
-/* defined if the compiler implements __func__ */
-#undef HAVE_FUNC
-
-/* defined if the compiler implements __FUNCTION__ */
-#undef HAVE_FUNCTION
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#undef HAVE_GETTEXT
-
-/* Define to enable GIO library (used by gio). */
-#undef HAVE_GIO
-
-/* Define to 1 if you have the `gmtime_r' function. */
-#undef HAVE_GMTIME_R
-
-/* Define to enable GNOME VFS (used by gnomevfs). */
-#undef HAVE_GNOME_VFS
-
-/* Define to enable Video 4 Linux (used by video4linux). */
-#undef HAVE_GST_V4L
-
-/* Whether gudev is available for device detection */
-#undef HAVE_GUDEV
-
-/* Define if you have the iconv() function and it works. */
-#undef HAVE_ICONV
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* make use of iso-codes for ISO-639 */
-#undef HAVE_ISO_CODES
-
-/* Define to enable integer vorbis plug-in (used by ivorbisdec). */
-#undef HAVE_IVORBIS
-
-/* Define to 1 if you have the `asound' library (-lasound). */
-#undef HAVE_LIBASOUND
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to enable libvisual visualization library (used by libvisual). */
-#undef HAVE_LIBVISUAL
-
-/* Define to 1 if you have the `localtime_r' function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define to 1 if you have the `log2' function. */
-#undef HAVE_LOG2
-
-/* Define if you have C99's lrint function. */
-#undef HAVE_LRINT
-
-/* Define if you have C99's lrintf function. */
-#undef HAVE_LRINTF
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to enable Xiph Ogg library (used by ogg). */
-#undef HAVE_OGG
-
-/* Use Orc */
-#undef HAVE_ORC
-
-/* Define to enable Pango font rendering (used by pango). */
-#undef HAVE_PANGO
-
-/* defined if the compiler implements __PRETTY_FUNCTION__ */
-#undef HAVE_PRETTY_FUNCTION
-
-/* Define to 1 if you have the <process.h> header file. */
-#define HAVE_PROCESS_H 1
-
-/* Define if RDTSC is available */
-#undef HAVE_RDTSC
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/wait.h> header file. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to enable Xiph Theora video codec (used by theora). */
-#undef HAVE_THEORA
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if valgrind should be used */
-#undef HAVE_VALGRIND
-
-/* Define to enable Xiph Vorbis audio codec (used by vorbis). */
-#undef HAVE_VORBIS
-
-/* defined if vorbis_synthesis_restart is present */
-#undef HAVE_VORBIS_SYNTHESIS_RESTART
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#define HAVE_WINSOCK2_H 1
-
-/* Define to enable X libraries and plugins (used by ximagesink). */
-#undef HAVE_X
-
-/* Define to enable X Shared Memory extension. */
-#undef HAVE_XSHM
-
-/* Define to enable X11 XVideo extensions (used by xvimagesink). */
-#undef HAVE_XVIDEO
-
-/* the host CPU */
-#define HOST_CPU "i686"
-
-/* prefix */
-#undef ISO_CODES_PREFIX
-
-/* */
-#undef ISO_CODES_VERSION
-
-/* directory in which the detected libvisual's plugins are located */
-#undef LIBVISUAL_PLUGINSBASEDIR
-
-/* gettext locale dir */
-#define LOCALEDIR PREFIX "\\share\\locale"
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#undef LT_OBJDIR
-
-/* Define if you have no native hstrerror() function. */
-#undef NO_HSTRERROR
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Name of package */
-#define PACKAGE "gst-plugins-base"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "GStreamer Base Plug-ins"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.34"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "gst-plugins-base"
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.34"
-
-/* directory where plugins are located */
-#ifdef _DEBUG
-#  define PLUGINDIR PREFIX "\\debug\\lib\\gstreamer-0.10"
-#else
-#  define PLUGINDIR PREFIX "\\lib\\gstreamer-0.10"
-#endif
-
-/* The size of `char', as computed by sizeof. */
-#undef SIZEOF_CHAR
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `short', as computed by sizeof. */
-#undef SIZEOF_SHORT
-
-/* The size of `void*', as computed by sizeof. */
-#undef SIZEOF_VOIDP
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* "Define if building for android" */
-#undef USE_TREMOLO
-
-/* Version number of package */
-#define VERSION "0.10.34"
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define to 1 if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-#undef _LARGEFILE_SOURCE
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
index 15a0c4b..ea8ea4a 100644 (file)
@@ -279,6 +279,8 @@ gst_rtsp_header_field_get_type (void)
           "x-server-ip-address"},
       {GST_RTSP_HDR_X_SESSIONCOOKIE, "GST_RTSP_HDR_X_SESSIONCOOKIE",
           "x-sessioncookie"},
+      {GST_RTSP_HDR_RTCP_INTERVAL, "GST_RTSP_HDR_RTCP_INTERVAL",
+          "rtcp-interval"},
       {GST_RTSP_HDR_LAST, "GST_RTSP_HDR_LAST", "last"},
       {0, NULL, NULL}
     };
index f234847..6f47c46 100644 (file)
@@ -1,4 +1,5 @@
 EXPORTS
+       _gst_audio_decoder_error
        gst_audio_buffer_clip
        gst_audio_channel_position_get_type
        gst_audio_check_channel_positions
@@ -9,14 +10,73 @@ EXPORTS
        gst_audio_clock_new
        gst_audio_clock_new_full
        gst_audio_clock_reset
+       gst_audio_decoder_finish_frame
+       gst_audio_decoder_get_audio_info
+       gst_audio_decoder_get_byte_time
+       gst_audio_decoder_get_delay
+       gst_audio_decoder_get_drainable
+       gst_audio_decoder_get_latency
+       gst_audio_decoder_get_max_errors
+       gst_audio_decoder_get_min_latency
+       gst_audio_decoder_get_needs_format
+       gst_audio_decoder_get_parse_state
+       gst_audio_decoder_get_plc
+       gst_audio_decoder_get_plc_aware
+       gst_audio_decoder_get_tolerance
+       gst_audio_decoder_get_type
+       gst_audio_decoder_set_byte_time
+       gst_audio_decoder_set_drainable
+       gst_audio_decoder_set_latency
+       gst_audio_decoder_set_max_errors
+       gst_audio_decoder_set_min_latency
+       gst_audio_decoder_set_needs_format
+       gst_audio_decoder_set_plc
+       gst_audio_decoder_set_plc_aware
+       gst_audio_decoder_set_tolerance
        gst_audio_default_registry_mixer_filter
        gst_audio_duration_from_pad_buffer
+       gst_audio_encoder_finish_frame
+       gst_audio_encoder_get_audio_info
+       gst_audio_encoder_get_drainable
+       gst_audio_encoder_get_frame_max
+       gst_audio_encoder_get_frame_samples_max
+       gst_audio_encoder_get_frame_samples_min
+       gst_audio_encoder_get_hard_min
+       gst_audio_encoder_get_hard_resync
+       gst_audio_encoder_get_latency
+       gst_audio_encoder_get_lookahead
+       gst_audio_encoder_get_mark_granule
+       gst_audio_encoder_get_perfect_timestamp
+       gst_audio_encoder_get_tolerance
+       gst_audio_encoder_get_type
+       gst_audio_encoder_merge_tags
+       gst_audio_encoder_proxy_getcaps
+       gst_audio_encoder_set_drainable
+       gst_audio_encoder_set_frame_max
+       gst_audio_encoder_set_frame_samples_max
+       gst_audio_encoder_set_frame_samples_min
+       gst_audio_encoder_set_hard_min
+       gst_audio_encoder_set_hard_resync
+       gst_audio_encoder_set_latency
+       gst_audio_encoder_set_lookahead
+       gst_audio_encoder_set_mark_granule
+       gst_audio_encoder_set_perfect_timestamp
+       gst_audio_encoder_set_tolerance
        gst_audio_filter_class_add_pad_templates
        gst_audio_filter_get_type
        gst_audio_fixate_channel_positions
        gst_audio_frame_byte_size
        gst_audio_frame_length
        gst_audio_get_channel_positions
+       gst_audio_iec61937_frame_size
+       gst_audio_iec61937_payload
+       gst_audio_info_clear
+       gst_audio_info_convert
+       gst_audio_info_copy
+       gst_audio_info_free
+       gst_audio_info_from_caps
+       gst_audio_info_init
+       gst_audio_info_to_caps
        gst_audio_is_buffer_framed
        gst_audio_set_caps_channel_positions_list
        gst_audio_set_channel_positions
@@ -25,10 +85,14 @@ EXPORTS
        gst_audio_src_get_type
        gst_audio_structure_set_int
        gst_base_audio_sink_create_ringbuffer
+       gst_base_audio_sink_get_alignment_threshold
+       gst_base_audio_sink_get_discont_wait
        gst_base_audio_sink_get_drift_tolerance
        gst_base_audio_sink_get_provide_clock
        gst_base_audio_sink_get_slave_method
        gst_base_audio_sink_get_type
+       gst_base_audio_sink_set_alignment_threshold
+       gst_base_audio_sink_set_discont_wait
        gst_base_audio_sink_set_drift_tolerance
        gst_base_audio_sink_set_provide_clock
        gst_base_audio_sink_set_slave_method
index 083e294..0e2fcf9 100644 (file)
@@ -5,6 +5,7 @@ EXPORTS
        gst_codec_utils_aac_get_sample_rate_from_index
        gst_codec_utils_h264_caps_set_level_and_profile
        gst_codec_utils_h264_get_level
+       gst_codec_utils_h264_get_level_idc
        gst_codec_utils_h264_get_profile
        gst_codec_utils_mpeg4video_caps_set_level_and_profile
        gst_codec_utils_mpeg4video_get_level
@@ -12,6 +13,7 @@ EXPORTS
        gst_discoverer_audio_info_get_bitrate
        gst_discoverer_audio_info_get_channels
        gst_discoverer_audio_info_get_depth
+       gst_discoverer_audio_info_get_language
        gst_discoverer_audio_info_get_max_bitrate
        gst_discoverer_audio_info_get_sample_rate
        gst_discoverer_audio_info_get_type
@@ -30,6 +32,7 @@ EXPORTS
        gst_discoverer_info_get_stream_info
        gst_discoverer_info_get_stream_list
        gst_discoverer_info_get_streams
+       gst_discoverer_info_get_subtitle_streams
        gst_discoverer_info_get_tags
        gst_discoverer_info_get_type
        gst_discoverer_info_get_uri
@@ -46,6 +49,8 @@ EXPORTS
        gst_discoverer_stream_info_get_tags
        gst_discoverer_stream_info_get_type
        gst_discoverer_stream_info_list_free
+       gst_discoverer_subtitle_info_get_language
+       gst_discoverer_subtitle_info_get_type
        gst_discoverer_video_info_get_bitrate
        gst_discoverer_video_info_get_depth
        gst_discoverer_video_info_get_framerate_denom
@@ -68,6 +73,7 @@ EXPORTS
        gst_encoding_list_all_targets
        gst_encoding_list_available_categories
        gst_encoding_profile_find
+       gst_encoding_profile_from_discoverer
        gst_encoding_profile_get_description
        gst_encoding_profile_get_format
        gst_encoding_profile_get_input_caps
index bab6bbd..8fa522c 100644 (file)
@@ -5,18 +5,28 @@ EXPORTS
        gst_tag_from_id3_tag
        gst_tag_from_id3_user_tag
        gst_tag_from_vorbis_tag
+       gst_tag_get_id3v2_tag_size
        gst_tag_get_language_code_iso_639_1
        gst_tag_get_language_code_iso_639_2B
        gst_tag_get_language_code_iso_639_2T
        gst_tag_get_language_codes
        gst_tag_get_language_name
+       gst_tag_get_license_description
+       gst_tag_get_license_flags
+       gst_tag_get_license_jurisdiction
+       gst_tag_get_license_nick
+       gst_tag_get_license_title
+       gst_tag_get_license_version
+       gst_tag_get_licenses
        gst_tag_id3_genre_count
        gst_tag_id3_genre_get
        gst_tag_image_data_to_image_buffer
        gst_tag_image_type_get_type
+       gst_tag_license_flags_get_type
        gst_tag_list_add_id3_image
        gst_tag_list_from_exif_buffer
        gst_tag_list_from_exif_buffer_with_tiff_header
+       gst_tag_list_from_id3v2_tag
        gst_tag_list_from_vorbiscomment_buffer
        gst_tag_list_from_xmp_buffer
        gst_tag_list_new_from_id3v1
@@ -25,6 +35,7 @@ EXPORTS
        gst_tag_list_to_vorbiscomment_buffer
        gst_tag_list_to_xmp_buffer
        gst_tag_list_to_xmp_buffer_full
+       gst_tag_mux_get_type
        gst_tag_parse_extended_comment
        gst_tag_register_musicbrainz_tags
        gst_tag_to_id3_tag
index 0f09b80..dd6e2b0 100644 (file)
@@ -1,9 +1,16 @@
 EXPORTS
+       gst_video_buffer_get_overlay_composition
+       gst_video_buffer_set_overlay_composition
        gst_video_calculate_display_ratio
        gst_video_convert_frame
        gst_video_convert_frame_async
+       gst_video_event_is_force_key_unit
+       gst_video_event_new_downstream_force_key_unit
        gst_video_event_new_still_frame
+       gst_video_event_new_upstream_force_key_unit
+       gst_video_event_parse_downstream_force_key_unit
        gst_video_event_parse_still_frame
+       gst_video_event_parse_upstream_force_key_unit
        gst_video_filter_get_type
        gst_video_format_convert
        gst_video_format_from_fourcc
@@ -27,6 +34,24 @@ EXPORTS
        gst_video_format_to_fourcc
        gst_video_frame_rate
        gst_video_get_size
+       gst_video_get_size_from_caps
+       gst_video_overlay_composition_add_rectangle
+       gst_video_overlay_composition_blend
+       gst_video_overlay_composition_copy
+       gst_video_overlay_composition_get_rectangle
+       gst_video_overlay_composition_get_seqnum
+       gst_video_overlay_composition_get_type
+       gst_video_overlay_composition_make_writable
+       gst_video_overlay_composition_n_rectangles
+       gst_video_overlay_composition_new
+       gst_video_overlay_rectangle_copy
+       gst_video_overlay_rectangle_get_pixels_argb
+       gst_video_overlay_rectangle_get_pixels_unscaled_argb
+       gst_video_overlay_rectangle_get_render_rectangle
+       gst_video_overlay_rectangle_get_seqnum
+       gst_video_overlay_rectangle_get_type
+       gst_video_overlay_rectangle_new_argb
+       gst_video_overlay_rectangle_set_render_rectangle
        gst_video_parse_caps_chroma_site
        gst_video_parse_caps_color_matrix
        gst_video_parse_caps_framerate